在平面上繪製線的算法(逐點)如果不是水平或垂直的,是什麼算法?用於在平面上繪製線的算法
4
A
回答
9
4
沒有「逐點」算法 - 點無限小,所以任何基於點的算法都需要無限的時間才能完成。
取而代之的是,根據理論筆的寬度繪製線條,並計算用筆劃過線條的像素的數量和強度。
如果您只想像像1970年代那樣開啓和關閉像素,那麼請使用Brensenham算法系列之一。
大多數現代計算機圖形學使用抗鋸齒算法 - 無論是撫摸,二次採樣還是精確的像素覆蓋率 - 有時還有GPU中的並行算法(例如,通過在平面上投影薄矩形來繪製直線或執行覆蓋並行計算每像素)。
許多圖形算法都基於貝塞爾曲線;直線只是控制點在一條直線上的曲線,所以繪製它們的算法是相同的,但可能會進行一些優化。
+1
+1 - 但我已經看到大量關於使用術語「點」代替「像素」的圖形的書寫」。我同意「像素」更好,但數學家沒有任何特殊的力量來定義英語。 – Steve314 2011-05-14 10:17:21
相關問題
- 1. 繪製平面圖的算法
- 2. 用於平滑繪圖的算法(Java2d)
- 3. 線條繪製算法
- 4. 在Android上繪製一條總是與地面平行的線
- 5. 如何繪製在一個平面上
- 6. 在複雜平面上繪製圖形
- 7. 繪製平行線
- 8. 從平面邊緣繪製線Unity
- 9. 繪製法線到曲面
- 10. 用於繪製粗抗鋸齒線的算法
- 11. 用於繪製4連接線的算法
- 12. 在線算法繪製箭頭
- 13. 在v2上的chart.js上在圖表上繪製水平線
- 14. 如何在gnuplot中繪製平行於z軸的平面?
- 15. 在Octave表面圖上繪製3D線
- 16. Bresehham的線條繪製算法和PID
- 17. 繪製線C++的中點算法
- 18. 上面繪製一條線/下面plotyy
- 19. 使用pyplot在python的多個子圖上繪製水平線
- 20. 如何使用three.js在xz平面中繪製直線
- 21. 在平面上繪製一個圓,布爾減法 - OpenGL
- 22. 繪製單點線圖上的虛線垂直和水平線
- 23. 繪製3D線條,i。即一個平面達到零的線
- 24. chart.js之 - 繪製水平線
- 25. 繪製平行線與龜
- 26. 繪製平滑曲線
- 27. 用於反射線上點的算法
- 28. 計算在2D陣列上繪製的線上的最高值
- 29. 在iText的頁面底部繪製一條水平線?
- 30. 三維繪圖上的繪製水平線(2個圓周)
在現實中,當然,如果您現在很少使用這種功能,那麼您將它留給圖形API。但偶爾也值得了解其他問題的結果。例如,您需要更新每個滴答事件的整數時間變量 - 但滴答事件以非整數間隔進入。只要這個間隔是合理的,基於Bresenhams的方法可以保持這個時間沒有累積誤差。 – Steve314 2011-05-14 10:24:50
@Steve:即使在今天也有很多用途......例如在2D網格上移動播放器,通過3D網格追蹤光線(需要修改)等... – ybungalobill 2011-05-14 11:58:20