2016-10-22 75 views
0

我正在使用傳單繪製出我正在生成C#MVC控制器的地圖。地圖塊包含形狀

我的地圖實際上是一個由多個形狀組成的2D CAD圖。爲了簡單起見,我目前只關注線條而不考慮縮放。

因此,假設我的地圖與圖畫放大到1:1的比例。對於每個tile我需要計算一個線的一部分是否在該tile內。然後我需要知道偏移是什麼以及在哪裏繪製它。

我完全不知道如何計算這個?有什麼圖書館或算法可以推薦實現嗎?我一直在研究,但路線很冷。

+0

你想知道,什麼網格單元(矩形)被直線相交? – MBo

+0

是的..線路可以沿任何方向行進,但是直線 –

回答

0

要查找直線與矩形網格的哪些瓦片相交,可以使用文章"Fast Voxel Traversal Algorithm"中描述的Woo和Amanatides算法。它給出了細胞座標和進入和離開細胞的點。

enter image description here

一些實際的實施可以發現here