我试着问这个问题,找到了一个解决办法:
在每个点的右边画一条水平线并将其无限延伸
1)计算直线与多边形边相交的次数。
2)如果交叉点的计数为奇数或
点位于多边形的边上如果没有一个条件是真的,那么
点在外面。
但我认为有一个简单的解决办法:
for(所有边的顺序相同)
找到3点的向量积(每边的给定点和端点)
if all products are > or < 0 : point lies inside polygon or on boundary
else outside

我的解决方案不是更好更有效吗?
还有比这更简单的算法吗?

最佳答案

该算法只适用于凸多边形对于非凸多边形,很容易找到不起作用的示例尝试给定多边形中的任何点cde

09-10 09:25
查看更多