0

ランダムな領域を色で塗りつぶす必要があります。いくつかの座標を持ついくつかのポイントがあります(ポイント数> 2)。(マウスクリックでポイントを取得する必要があります->ランダムポイント)。色で塗りつぶすことをテストするために、いくつかのランダムポイントを使用します

glBegin(GL_POLYGON);
    glVertex2f(200.0 / WIDTH, 300.0 / HEIGHT);
    glVertex2f(300.0 / WIDTH, 100.0 / HEIGHT);
    glVertex2f(500.0 / WIDTH, 400.0 / HEIGHT);
    glVertex2f(400.0 / WIDTH, 200.0 / HEIGHT);
glEnd();

しかし、結果は本来あるべきようには見えません ここに画像の説明を入力

ポイントは特定の順序にする必要があることは知っていますが、それをランダムなポイントに適用するにはどうすればよいですか?

4

1 に答える 1

4

順序に従って凸多角形を描画できるように、すべての頂点を並べ替える必要があります。これは、実際には計算幾何学のトピックです:凸包

単純なアルゴリズムでは、最初にすべての頂点を x 座標に関して並べ替え、次に x 座標値ごとに最上部と最下部の頂点を探します。次に、左端の頂点を 1 つ選択し、時計回りに右端の頂点を 1 つ選択し (途中で常に一番上の頂点を選択します)、最初の頂点に戻ります (常に一番下の頂点を選択します)。

于 2013-09-29T19:03:21.463 に答える