2

一般的な楕円のピクセルの指標を見つけるための効率的なアルゴリズムはありますか?

基本的に、私がやりたいことは、可能な配列インデックスの「2-D サーフェス」にまたがるパラメーター化された楕円に対応する 2 次元配列でインデックスを見つけることです。この問題は、上記の最初の Q のように、楕円のラスタライズと比較できます。

軸に沿った楕円に対して必要な処理を行うスキャン ライン アルゴリズムをいくつか見つけましたが、歪んだり回転した楕円に対して同様のアルゴリズムがあるかどうか疑問に思っています。そこにあるベクトルグラフィックSWは、歪んだり回転したりした楕円を塗りつぶすことができるため、あるに違いありません。

私の言いたいことを明確にするために、最近、これと同様の質問が 1 つありました

/ニック

4

2 に答える 2

1

楕円をラスタライズするために見つけたアルゴリズムを使用して、座標が楕円の内側か外側かをテストする前に、座標に回転または傾斜変換を適用するだけです。たとえば、45 度回転した楕円をテストする場合は、次のようにします。

for (x = 0; x < maxX; x++)
{
    for (y = 0; y < maxY; y++)
    {
        double newX, newY;
        Transform (x, y, rotationMatrix, &newX, &newY);
        if (PointInEllipse (newX, newY, ellipse))
        {
            ...do whatever here....
        }
    }
}

Transform は単純に 2x2 回転行列を x と y に適用し、その結果を newX、newY に入れます。

于 2012-01-17T04:55:06.947 に答える
0

楕円を三角形化し、標準の三角形塗りつぶしルーチンを使用することをお勧めします。OpenGL と DirectX は一日の終わりにしか三角形を描画できない傾向があるため、ほとんどのグラフィックス API で行われる方法である可能性が高くなります。

楕円の単純な三角形分割は、外側にスケーリングされていることを除けば、ピザのように見えます。より高い品質が必要な場合は、ピザのスライスの数を増やしてください.

于 2012-01-17T05:23:01.710 に答える