私は、ランダムな2D凸多角形を生成する方法を考案しようとしています。それは以下の特性を持たなければならない:ランダム凸多角形の生成方法は?
- 座標は整数でなければならない。
- ポリゴンは、コーナー(0,0)と(C、C)を持つ正方形の内側にある必要があります。
- 多角形が正方形の内部10個の頂点と位置を有するランダムポリゴン[0..100]×[0..100]を生成し、例えば、所与の数Nを
に近い頂点の数を有していなければなりません。
この作業を難しくしているのは、座標が整数でなければならないということです。
私が試みたアプローチは、与えられた四角形にランダムな点集合を生成し、これらの点の凸包を計算することでした。しかし、結果として得られる凸包は、Nに比べて非常に小さな頂点です。
アイデア?
凸凹テストの詳細については、次のリンクを参照してください。 http://www.gamedev.net/topic/561441-polygon-convexity-test-cant-get-it-right/ – scgrn
これは浮動小数点座標で使用できます。整数にキャストし直すと、ポリゴンが凹形にならないようにするにはどうすればよいですか?問題のある頂点を削除することはできますが、これによって頂点の数が大幅に削減される可能性があります。 – Jasiu