我们有一条由两个点从多边形定义的线段L和一个由4个或更多点定义的多边形P,我需要一个算法来确定L是否在P内部?
编辑:线段必须完全在多边形内部,如果只是部分在内,则被认为是外部。
例如看下面的图片: 还有几个例子:
编辑:线段必须完全在多边形内部,如果只是部分在内,则被认为是外部。
例如看下面的图片: 还有几个例子:
如果一条线段完全在一个多边形内部,那么这条线段的两侧至少会有一个多边形顶点。 请参考如何判断一个点在直线的左侧还是右侧来确定一个点在哪一侧。
更新: 然而,反过来不一定成立。应该按顺序遍历所有多边形顶点,从线段的一端开始。从起点到终点遍历时遇到的所有顶点都应该在同一侧,其余的则在另一侧。
如果线段与多边形的边之一重合,则上述情况不成立。在这种情况下,线段的一侧将没有任何顶点。但是,在这种情况下,线段也不完全位于多边形内部。