ポリゴン内の多くのポイントを接続する際に問題があります。ポイントのリストがあり、結果を次のようにしたい: http://imageshack.us/a/img818/6663/punktyx.jpg
1 に答える
そのためのコードを吐き出さない場合は申し訳ありません...
基本的に、常にそのポリゴンの一部となる少なくとも 4 つのポイントがわかっています。X の最小値と最大値、Y の最小値と最大値です。2 つ以上のポイントが同じ最小値または最大値を持つ場合、それらは接続されます。
次の計算では、各ポイントが Vector3 であり、Z が 0 であると仮定します。
MinX と MinY を使用して、それらを他のポイントと接続する必要があります。(MinX - ポイント)、(ポイント - MinY) の外積を実行し、結果のベクトルの Z が +1 の場合、ポイントは MinX と MinY に接続されたときにハル形状を作成しています。すべてのポイントを解析した後、潜在的に有効なポイントのコレクションが残り、それぞれが凸形状を作成します。それらから、MinX/MinY を再度取得し、残りのポイントを再解析します。MinX と MinY が同じポイントである場合、他のポイントに直接リンクしていることがわかります。
基本的に、4象限に対してそれを行います。(MinX/MinY、MinX/MaxY、MaxX/MinY、MaxX/MaxY)
外側の形状または凸包を定義するポイントのリストが作成されます。それから、それらを接続するのに十分簡単でなければなりません。
私がどのようにそれを行うかを言うだけで、おそらくもっと効率的なアルゴリズムがあるでしょう。