(就我的目的而言,"多边形"不包括自相交多边形或带孔的多边形 - 只是简单(凹或凸)多边形.)
我找到了针对这个问题的各种建议,主要基于以下几点:
如果Polygon1的边缘与Polygon2的边缘之间没有交叉点,并且Polygon2的至少一个顶点是"内部"Polygon1,则Polygon1包含Polygon2.
(例如,请参阅此处接受的答案)
然而,魔鬼在细节:
"内部"Polygon1是否包含"Polygon1"的边缘?显然它必须,否则在图F中(参见下面链接的图像)Polygon2(红色)在Polygon1(蓝色)内部没有顶点,因此在应该通过时不能通过上述测试.
两条边的"交点"是否包含一条边(即顶点)末端的点?如果"是",则下面的图A和E具有交叉点,因此当它们通过时测试失败.但如果"不",则图B,C和D没有交叉点,因此当它们失败时通过测试.
(NB图A,B和C在Polygon1的边缘上具有Polygon2的顶点,图D和E反之亦然.)
我无法确定一个条件来测试这些不同情况之间的区别.我会感激任何指针?