我有两条平行线,可以往任何方向走。他们被保证不一样。
我有一个二维网格(非整数坐标从0.0到1.0,但我怀疑这可以通过缩放整个问题来解决),以通常的方式正交对齐。
我需要一个算法,生成一个所有正方形的列表,两条直线之间有任何面积。
我目前的算法效率很低(将这两条线表示为一个旋转的矩形,然后测试每个正方形上的多边形相交)它能工作,但速度太慢了。

最佳答案

如果您知道这两条线的方向和位置,那么您可以使用Bresenham line algorithm来计算所有将被这两条线“接触”的“正方形”。把中间的方块加起来是一项简单的工作。如果这两条线被整数个“平方”分开,那么你只需要解其中一条线的bresenham,但是如果它们有非整数分开,你就必须解这两条线的bresenham(即使这两条线不平行,后者也可以)。

关于algorithm - 平行线与正交2D网格相交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13445572/

10-11 22:01