1

回転する 2x2 行列

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

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

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

opengl は内部でそのマトリックスを使用しますか、それとも 3x3 マトリックスを使用しますか?

上記のR行列でシータ度はどのように測定されますか? (0,0) から (x,y) と (0,0) から (x',y') の間の角度ですか?

4

2 に答える 2

1

やりたいことは、ポイントを 1X2 行列として見て、それを R 行列で乗算することです。これにより、 が新しい点である 2X1 行列が得られます。

[x] X [Cos(a) -Sin(a)] = [newX, newY]
[y] X [Sin(a) Cos(a)]

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

これにより、点 (x,y)aが (0,0) 点を中心に約度回転します。

a、Cos、および Sin で正しい次元 (度またはラジアン) を使用していることを確認してください。

于 2012-05-01T05:56:07.377 に答える
1

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

いいえ、2 次元空間では x 軸 (または他の軸) を中心に何も回転できないためです。2D 空間では、点を中心に回転する (および軸を中心に鏡像化する)ことしかできません。あなたが提供した行列は、ゼロ点(x = 0、y = 0)を中心に回転します。もう 1 つのことは、ピクセルではなく、頂点またはテクスチャ座標を回転させることです。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 マトリックスが必要です (つまり、2d 操作の場合は 3d ベクトルを操作し、z 座標をゼロに設定します)。

于 2012-05-01T06:46:41.933 に答える