2012-05-01 2 views
1

2x2 matrix to rotateこの2x2マトリックスを使ってピクセルを回転することはできますか?

http://en.wikipedia.org/wiki/Rotation_matrix

iは画像のための(x、y)の2次元の画素があると、今はX軸周り、これらの画素を回転します。 上記の2x2行列を使用できますか?

2x2マトリックスはいつ使用されますか?その2x2行列はどのように使用されますか?

OpenGLはその行列を内部的に使用していますか、または3x3行列を使用していますか?

上記のRマトリックスでは、シータ度はどのように測定されますか? (0,0)から(x、y)と(0,0)から(x '、y')の間の角度ですか?

+1

X軸を中心に2Dピクセルを回転することはできません。あなたは最後に勉強しませんでしたか? –

+0

2次元の場合、軸ではなく_pointの周りを回転します。軸の周りで_reflect_することはできますが、それが後のものであるかどうかはわかりません。 – paxdiablo

+1

基本的には、画面から外に出るZ軸を中心に回転します。 –

答えて

1

あなたがしたいことは、あなたのポイントを1X2マトリックスとして見て、それにRマトリックスを掛けることです。これは新しいポイントである2X1行列を与えます。

[X] X [コス(A)-Sin(A)] = [newX、newY]
[Y] X [SIN(A)コス(A)]

数学:
newX = xCos(A)-ySin(A)
newY = xSin(A)+ yCos(A)

これは、(0,0)点の周りa度約点(x、y)を回転します。

a、Cos、Sinで正しい寸法(度またはラジアン)を使用してください。

+1

まさに私が書いていたもの。 @prime:軸に関して言えば、これは虚軸の周りに回転し、Roseeが示すように(0,0)で画面に垂直になります。 –

+0

X軸回りの回転の例はありますか? – shibly

+0

ゼロ(0,0)点の周りの回転であれば、上記のR行列ではΘをどのように測定していますか?それは(0,0)から(x、y)と(0,0)から(x '、y')直線の間の角度ですか? – shibly

1

画像に(x、y)の2Dピクセルがあると仮定して、これらのピクセルをX軸を中心に回転させたいとします。上記の2x2行列を使用できますか? 2D空間で

いいえ、あなたはは、x軸(または任意の他の軸)を中心に何かを回転させることができないため。 2dスペースでは、ポイントを中心に回転することができます(ミラー軸)。指定した行列はゼロ点(x = 0、y = 0)を中心に回転します。別のものは、ピクセルではなく頂点やテクスチャ座標を回転させることです。 3D空間でのみ軸の周りを回転することができます。

OpenGLはその行列を内部的に使用しますか、または3x3マトリックスを使用していますか?

これは、決定するのはドライバーまでです。最も可能性の高い固定機能OpenGLは内部的に4x4行列を使用します(回転+平行移動+ 3D空間での投影が可能です)。しかし、2x2行列を使用するフラグメントシェーダーの作成を止めるものはありません。

上記のRマトリックスでは、シータ度はどのように測定されますか?それは(0,0)から(x、y)と(0,0)から(x '、y')の間の角度ですか?

答えははいです。これは、0; 0→x '; y'と0; 0→x; yの間の角度です。ただし、2Dでは「X軸」を中心に回転することはできません。ある点を中心に回転することができます。また、回転行列が2x2であるため、(0; 0)点を中心に回転、拡大縮小、ミラーリング、スキューしかできません。シフト/平行移動が必要なものは、3x3の行列または4x4の行列が必要です。2次元演算のために3次元ベクトル上で動作し、z座標をゼロに設定する)。

+0

誰もが知っている、角度は直線ではありません。私は元の質問を編集しました。私はあなたが今質問を明確に理解すると思います。 「上記のR行列では、シータ度はどのように測定されますか?それは(0,0)から(x、y)と(0,0)から(x '、y')の間の角度ですか? – shibly

関連する問題