我想解构以下以蓝色显示的多边形,从多边形中删除所有导致凹面的点。
目前,我一直在尝试做的是:
- 从多边形中取出每个点
- 测试该点以查看它是否落在集合的其余部分创建的多边形内
- 如果为真,则删除该点
- 如果是假的,保持这一点
这在大多数情况下都有效,但在前一种情况下,(2,3) 和 (2,4) 处的点不会都被删除。在这两种情况下,其中一个点都将被删除,但另一个点将不取决于传入数组的顺序。
我想知道的是:
- 有什么方法可以测试我正在处理的多边形是否恰好有这些情况之一(即:连续 3 个故障点?)
或 - 有没有一种更有效的方法来创建凸多边形?
谢谢你。