回答:
この問題には2つのケースがあります。1つ目は交差点で、2つ目はオーバーラップ(包含)です。
最初(円内の交差点/ポリゴン):
多角形のすべてのエッジで円の中心に最も近い点を見つけます。中心に最も近いポイント間の距離が半径よりも小さい場合、交差またはオーバーラップが発生しています。
2番目(円はポリゴン全体): 円の中心から右(または左/上/下)に光線を発射し、光線/セグメント(ポリゴンエッジ)の交差をカウントします。交差カウントが偶数の場合、円はポリゴンの外側にあります。奇数の円が内側にある場合。
この場合のレクチューの写真を共有します。
そして、特異なケースの世話をします。
これが役立つことを願っています。
編集:写真にクレジットを追加するのは公正だと思います。著者は、プラハのチェコ工科大学の助教授であるペトル・フェルケルです
最初のステップは、ご想像のとおり、凹多角形を複数の凸多角形に分割することです。これは、分離軸定理を使用するためです。これは、凸多角形でのみ機能します。
SAT自体は、2つの凸ポリゴンでのみ機能します。名前の「分離軸」は、ポリゴンのエッジに垂直な軸を指します。残念ながら、サークルにはこれらの無限の数があります。ただし、これらの軸のどれが関連しているのかを見つける簡単な方法があります。これは、ポリゴンの頂点と交差するように外側に突き出ているものを見るとわかります。
むしろ、ここでアルゴリズム全体にわたり行くよりも、Metanetソフトウェア(N / N +のメーカーは)持っているSAT使用して衝突検出の良いチュートリアル、オブジェクトの一つが円の場合にSATを覆うの3番目のセクションを。
これが私がやることです。