私は2x4のマトリックスを持っています。正方形の 4 つの点を表します。回転ポイント/アンカーを正方形の中心にして、上記の正方形を x ラジアン (明らかに度に変換できます) だけ回転させる必要があります。
OpenGL ES 2.0 では変換関数 (glPush/glPop、glRotate、glTranslate、glScale など) が削除されたため、自分でローテーションを行う必要があります。誰かが回転を実行する関数を書くのを手伝ってくれますか?
私は2x4のマトリックスを持っています。正方形の 4 つの点を表します。回転ポイント/アンカーを正方形の中心にして、上記の正方形を x ラジアン (明らかに度に変換できます) だけ回転させる必要があります。
OpenGL ES 2.0 では変換関数 (glPush/glPop、glRotate、glTranslate、glScale など) が削除されたため、自分でローテーションを行う必要があります。誰かが回転を実行する関数を書くのを手伝ってくれますか?
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 パイプラインを知らない場合、これはかなり長くなる可能性があります。さらに情報が必要ですか?