我已经找到了各种解决此问题的建议,主要基于以下内容:
如果Polygon1的边缘与Polygon2的边缘之间没有交点,并且Polygon2的至少一个顶点“在内部”Polygon1中,则Polygon1包含Polygon2。
(例如,请参见已接受的答案here)
然而,细节是魔鬼:
“内部”多边形1是否包括“在边缘上”的多边形1?显然必须这样,否则在图F(参见下面链接的图像)中,多边形2(红色)将没有一个顶点“在内部”多边形1(蓝色)中,因此无法通过上述测试,但实际上它应该通过。
两条边的“交集”是否包括一条边端点上的点(即顶点)?如果是,“A”和“E”图中有交点,因此在应该通过测试时未能通过测试。但是,如果是“否”,则B、C和D图没有交点,因此当它们应该失败时通过了测试。
(注意:A、B和C图的Polygon2顶点位于Polygon1的边缘,而D和E图相反。)
我无法找出可以正确区分这些情况的测试条件。感谢任何指导意见!