有沒有辦法讓我找到線和網格之間的所有交點? (交點圓未按彼此按比例繪製,我知道)以快速方式找到線和網格之間的交點
蠻力方法是計算非常交點爲x-y
網格線,但該算法是非常低效的(O(m*n)
,其中m
的網格數是x
而n
的網格數是y
)。
我正在尋找一個更好的算法。
有沒有辦法讓我找到線和網格之間的所有交點? (交點圓未按彼此按比例繪製,我知道)以快速方式找到線和網格之間的交點
蠻力方法是計算非常交點爲x-y
網格線,但該算法是非常低效的(O(m*n)
,其中m
的網格數是x
而n
的網格數是y
)。
我正在尋找一個更好的算法。
聽起來像你需要一個Digital Differential Analyzer或Bresenham's line algorithm。 Bresenham與用於在位圖上繪製線條的算法相同;在這種情況下,着色像素等同於檢查該方塊中的碰撞。
我相信這應該是被接受的答案。使用像Bresenham's這樣的算法可以檢查網格點,然後可以更容易地計算出各個交點 - 水平和垂直分量都是已知的。 – 2014-06-27 15:30:02
我不確定我真的明白這個問題。這是你想要的任何機會嗎?
如果網格軸線對齊:
如果網格是規則的,與每條水平線的交點之間的距離將是相同的。垂直線也是如此。在這種情況下,你可以用dx和dy做一個簡單的迭代算法。
電網應該是正常的嗎? – 2010-07-17 08:47:27
@Ignacio,是的,網格是經常的。 – Graviton 2010-07-17 09:13:00