我希望能够检查用户输入的点是在有界点集内还是外部,我知道java中Polygon类的.contains函数,但我想知道如何对< ArrayList >进行这样的操作。
下面是我所尝试的一个例子:
多边形的点是:(-10,0) (-1,-10) (0,10) (1,-10) (10,0)
测试点:5 0
内部
测试点:8 8
外部
任何正确方向的提示都将不胜感激!
发布于 2014-09-14 00:07:34
这似乎有点家常便饭,所以我不打算详细讨论,但假设列出的多边形点总是有序的,你可以把多边形中所有点之间的线连接起来,以关闭它的边界,然后从你的样本点向外投射光线。如果光线在离开多边形所在区域之前穿过奇数条线,那就意味着样本点在多边形内部。如果它通过偶数条线,它就在多边形之外。(如果它从未穿过一条线,它也在多边形之外,假设光线足够长,可以从样本点所在的位置到达多边形的边缘。)祝你好运。
更多信息
https://stackoverflow.com/questions/25828848
复制相似问题