最初は、この問題はポリゴンが凸であるかどうかを判断するのと同じだと思っていましたが、ファン。 Consider this shape、非凸多角形。三角形のファンでこのポリゴンを描画できる中心点の一部の領域を簡単に想像することができます(他の中心点はありませんが)。固定された中心点が与えられていれば、ポリゴンを定義する2d点のセットが単一の三角形のファンで描画できるかどうかを判断できるようにしたい。2つのポリゴンを1つの三角形のファンで描画できるかどうかを調べる
キーは、中心点から任意の頂点、つまり頂点の他の稜線に描かれた線の「途中に」入ることを何も確認していないようです。しかし、これをできるだけ計算機的に安価にすることが重要です。これを行うための簡単な数学のショートカットがあるかどうかはわかりません。
最終的に、私はポリゴンの頂点を動かすつもりです。そして、残りが固定されているならば、頂点が移動することを許された "境界"を決定する必要がありますダイレクト2近傍の動きも)、ポリゴンを単一の三角形のファンで描画できるようにします。しかし、これは未来です。完全多角形のテストは、既に凸状のポリゴンを仮定して、単一の頂点の動きの境界をテストするための計算のサブセットに分割することができます。
これは興味深い質問です。おそらく、それに近づくための1つの方法は、まず凸包を例えば次のように計算することです。 a [Graham Scan](http://en.wikipedia.org/wiki/Graham_scan)。次に、すべての頂点の算術平均に最も近い頂点を中心頂点として定義します。最終的に、中心頂点から他の頂点までの線分が凸包の端と交差するかどうかを確認します。 – smocking
実際には、凸包はもちろん間違ったエッジを与えることに気付きます。あなたはすでにエッジを知っていますか? – smocking
各エッジを点(同次座標)で扱う場合、凸包アルゴリズムを使用して問題を解決できます。いずれかのポリゴンエッジが他のエッジによって形成される船体内の「マイナスポイント」に対応する場合、ポリゴンを三角ファンとして描画することはできません。 – comingstorm