没有边坐标的射线投射算法

时间:2012-03-05 18:17:17

标签: c++ graphics polygon raytracing

我试图定义一个点是否在多边形内。仅给出角的坐标。经过一些研究后我发现Ray casting algorithm,但看起来我需要一个填充多边形坐标的矢量。我也尝试计算这些坐标,但看起来这不是解决方案。

也许我在解释这个算法是错误的,所以如果有人能把我推向正确的方向会很好。

1 个答案:

答案 0 :(得分:1)

我假设您正尝试为任何类型的多边形执行此操作。

检查一下以了解解决复杂多边形的技巧。这实际上是你可能想要的,它是你之前提到的光线投射算法。 http://alienryderflex.com/polygon/

对此的简短解释是你有一个多边形,你知道它的要点。构造点(向量)之间的连接。通过您要测试的点在整个多边形上投射光线。

在光线与其中一个多边形矢量的每个交点处,从0开始将计数器增加1.如果您与该点相交并且该计数器是偶数,则它不在多边形中。如果计数器是奇数,则该点在多边形内。