2012-01-13 12 views
1

これはあなたのコンピュータ科学者には少し難しい問題です。 私は100×100のエントリ、arr [i] [j]の2次元配列/行列を持っているとしましょう。ここで、iとjは0-99になります。 これは、各ドットがデータ値に対応するドットの正方形として想定することができる。二次元配列のループ用特殊ポリゴナル

ここで、4点ポリゴンを定義し、4点の指標を知っている場合: 4点の内側にある行列内の項目だけをループすることは可能です(巧妙なアルゴリズムです)ポリゴン? つまり、ループラップのiとjのすべての値は、興味深いarr [i] [j]の値に対応します(iとjは4点ポリの内側にあります)。

これは明確ですか?理解しにくいかどうか分かります。

敬具は

+3

ウェブで「スキャン変換」を検索します。膨大な数のチュートリアルとサンプルコードがあります。 –

+0

あなたは本質的に充てんアルゴリズムを探していますが、多くはそこにあります。 –

+0

ありがとう、これは本当に私の問題の大きな部分を助けました。これらのアルゴリズムがポリゴンではなくパラメータ化された楕円についても存在するかどうか知っていますか? – Nicke

答えて

2

は、三角形のラスタライゼーションに似てね。

あなたはそれを見つけることができます記事/チュートリアルの数は、この一つとして、があります。

http://joshbeam.com/articles/triangle_rasterization/

またはこの:4点ポリ

http://sol.gfxile.net/tri/index.html

それを2つの三角形に分割します。

+0

Pubbyに感謝します。アルゴリズムをリアルタイムで実装することを目的としているので、それは速くて簡単です。これはpoly(そしてあなたの例では灰色/青色)の内側にある指標を見つけるのに最も良い(計算上)方法ですか? – Nicke

+1

@Nicke 3Dグラフィックスで主に使用されるため、非常に高速です。 – Pubby

+0

ありがとう、これは本当に私の問題の大きな部分を助けました。私は上記のようにもう一つの関連する次の質問をします:これらのアルゴリズムがポリゴンではなくパラメータ化された楕円についても存在するかどうか知っていますか? – Nicke