【发布时间】:2012-03-05 18:17:17
【问题描述】:
我试图定义一个点是否在多边形内。只给出角的坐标。经过一番研究,我找到了Ray casting algorithm,但看起来我需要一个填充了多边形边坐标的向量。我也尝试计算这些坐标,但看起来这不是解决方案。
也许我对算法的解释是错误的,所以如果有人能把我推向正确的方向就好了。
【问题讨论】:
标签: c++ graphics polygon raytracing
我试图定义一个点是否在多边形内。只给出角的坐标。经过一番研究,我找到了Ray casting algorithm,但看起来我需要一个填充了多边形边坐标的向量。我也尝试计算这些坐标,但看起来这不是解决方案。
也许我对算法的解释是错误的,所以如果有人能把我推向正确的方向就好了。
【问题讨论】:
标签: c++ graphics polygon raytracing
我假设您正在尝试对任何类型的多边形执行此操作。
查看此内容以了解解决复杂多边形的技术。这实际上是您可能想要的,它是您之前提到的光线投射算法。 http://alienryderflex.com/polygon/
一个简短的解释是你有一个多边形,你知道它的点。构建点(向量)之间的连接。通过您要测试的点在整个多边形上投射光线。
在光线与多边形向量之一的每个交点处,计数器从 0 开始递增 1。如果与该点相交并且该计数器是偶数,则它不在多边形中。如果计数器是奇数,则该点在多边形内。
【讨论】: