青で表示されている次のポリゴンを分解して、凹面の原因となるすべてのポイントをポリゴンから削除します。
現在、私がやろうとしていることは次のとおりです。
- ポリゴンから各ポイントを取り出します
- ポイントをテストして、セットの残りの部分によって作成されたポリゴン内にあるかどうかを確認します
- trueの場合、ポイントを削除します
- falseの場合、要点を維持します
これはほとんどの場合に機能しますが、前のケースでは、(2,3)と(2,4)の両方のポイントが削除されることはありません。どちらの場合も、どちらかのポイントが削除されますが、もう一方は配列が渡される順序に依存しません。
私が疑問に思っているのはこれです:
- 私が扱っているポリゴンにこれらのケースのいずれかが発生するかどうかをテストする方法はありますか(つまり、3つの連続した障害点がありますか?)
または - 凸多角形を作成するより効果的な方法はありますか?
ありがとうございました。