0

私は2x4のマトリックスを持っています。正方形の 4 つの点を表します。回転ポイント/アンカーを正方形の中心にして、上記の正方形を x ラジアン (明らかに度に変換できます) だけ回転させる必要があります。

OpenGL ES 2.0 では変換関数 (glPush/glPop、glRotate、glTranslate、glScale など) が削除されたため、自分でローテーションを行う必要があります。誰かが回転を実行する関数を書くのを手伝ってくれますか?

4

1 に答える 1

0

2D での回転は次のように表すことができます (thetaはラジアン):

cs = cos(theta);
sn = sin(theta);

out.x = in.x * cs - in.y * sn;
out.y = in.x * sn + in.y * cs;

上記の線形方程式は、2x2 行列として表すことができます (アメリカ式に、列に配置されます)。

|  cs  sn |
| -sn  cs |

マトリックスを拡張して、翻訳も追加できます。

|  cs  sn  tx |
| -sn  cs  ty |
|   0   0  1  |

OpengGLES 2.0 では、これらの 4 つのポイントを 2 つのコンポーネントの配列としてパックする可能性が高く、頂点シェーダーでそれらを変換する必要があります。上記の行列を計算し、uniform を使用してパイプラインに送信します。

OpenGL ES 2.0 パイプラインを知らない場合、これはかなり長くなる可能性があります。さらに情報が必要ですか?

于 2013-05-19T08:29:13.347 に答える