我有一个用于查找阴影/光线的光线投射算法。
虽然光线是像素坐标,但地图本身是一个方形,恒定大小的瓷砖网格。网格单元可通过或不可通过(方形墙)。典型的许多2-D游戏。
我有光线投射代码,可以向前照射光线,并在光线在墙内时标记。当发生这种情况时,光线通常位于单元内,而不是位于边缘。在那一刻,我有来自光源的起始x / y对,光线行进的角度,以及墙内的x / y对。
我想找到第一次与墙壁接触的点,所以从本质上讲,我需要“备份”这条线。使用光线来自的角度,我可能只需要测试正方形的一个部分来找到交点。
如果我有一个固定的TILE_WIDTH和TILE_HEIGHT(在这种情况下,它们也是相同的);找到该线段交叉点的位置是否有更优化的特定方法?也就是说,它利用了这些关系,而且我已经拥有的信息比一般算法更简单和/或更快。