2010-11-16 76 views
2

比方說,我們有一個參數曲線,例如圓:如何優化繪製參數連續曲線?

x = r * cos(t) 
    y = r * sin(t) 

我們要繪製在一個方式在屏幕上的曲線:

  • 每個像素畫只有一次(在最佳的部分)
  • 則每個(X,Y塗漆像素),其位於曲線上(連續部分)

如果我們只是圖(X,Y)爲EAC在[t1,t2]中的小時,這些條件將不會被滿足。

我正在尋找任何參數曲線的一般解決方案。

+0

你怎麼陰謀(X,Y)=(1.5,1.5)?你畫的像素(1,1),(1,2),(2,1),(2,2)? – 2010-11-16 14:15:17

+0

四捨五入到最接近的整數,所以只需(2,2) – 2010-11-16 14:29:00

回答

2

100%滿足您的標準的一般解決方案不存在。

所以我們必須妥協。

通常,這是通過與步長(通常參數傳遞給例程)開始解決,這步長可以細分由啓發式如觸發:

  • 細分時,由段覆蓋的距離較大大於給定的距離(例如,一個像素)時的彎曲方向改變太多

或者一個combinat

  • 細分這些離子。

    通常給細分的限制也是爲了避免永久使用。

    許多提供參數化繪圖的系統都以啓發式參數和步長的一些可更改的默認設置開始。如果曲線不夠「好」或需要太長時間,用戶可以適應這些。

    問題是,總有病理曲線會打敗您的繪圖方法,使其錯過細節或花費時間過長。

  • 1
    +0

    貝塞爾樣條曲線可用於繪製點集,但是如果您有參數函數,則添加更多步驟比平滑空隙幾乎總是更好。 – 2010-11-16 14:33:12