2016-10-22 86 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