2012-01-17 27 views
2

一般的な楕円のピクセルの痕跡を見つける効率的なアルゴリズムはありますか?楕円のラスタライズ

本質的に、私がしたいことは、考えられる配列の指標の「2-D面」にわたるパラメータ化された楕円に対応する2次元配列の指標を見つけることです。 この問題は、上記の最初のQと同様に、楕円のラスタライズと比較できます。

軸配列の楕円のために必要なスキャンラインアルゴリズムがいくつか見つかりましたが、楕円に歪みや回転がある類似のものがあるかどうかは不思議です。そこにはベクトルグラフィックスSWがあるので、歪んだり回転した楕円を埋めることができます。

は私が何を意味するかclearifyするために、私は最近、ここで解決し、これに1つの同様の質問があった: Special polygonial for loop in two dimensional array

/ニック

を あなたは楕円をラスタライズするために見つけたアルゴリズムを取ると、単純に適用することができます

答えて

1

楕円の内側か外側かをテストする前に、座標への回転やスキュー変換を行います。単に変換

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.... 
     } 
    } 
} 

は、xとyの2×2の回転行列を適用し、newX、newYに結果を置きます:たとえば、楕円をテストしたい場合は、このような何かを行うことができ、45度回転。

0

標準的な三角形の塗りつぶしルーチンを使用することをお勧めします。OpenGLとDirectXは日の終わりにしか三角形を描くことができないため、大部分のグラフィックスAPIでどのように行われているかが良いです。

楕円の単純な三角形分割は、外側に縮尺されたものを除いてピザのように見えます。高品質が必要な場合は、ピザのスライス数を上げてください。