2D回転行列 — 平面上の点の回転
2D回転行列の仕組み、任意の角度での構成方法、行列乗算を使った複数の回転の組み合わせ方を学びます。
Applications
詳細な説明
2D回転行列
2D回転行列は原点を中心にベクトルを角度 theta だけ反時計回りに回転させます:
R(theta) = | cos(theta) -sin(theta) |
| sin(theta) cos(theta) |
例:90度回転
R(90) = | cos(90) -sin(90) | = | 0 -1 |
| sin(90) cos(90) | | 1 0 |
点(3, 1)に適用:
| 0 -1 | | 3 | = | -1 |
| 1 0 | | 1 | | 3 |
点(3, 1)は(-1, 3)に回転し、90度反時計回り回転として正しい結果です。
よく使う回転行列
- 0度: 単位行列I
- 90度: [[0, -1], [1, 0]]
- 180度: [[-1, 0], [0, -1]]
- 270度: [[0, 1], [-1, 0]]
性質
- det(R) = 1: 回転は面積と向きを保存
- R^(-1) = R^T: 回転行列は直交
- R(a) * R(b) = R(a + b): 回転は角度の加算で合成
- ||Rv|| = ||v||: 回転はベクトルの長さを保存
任意の点を中心とした回転
原点の代わりに点(px, py)を中心に回転するには:
- 移動:(px, py)を引く
- 回転:R(theta)を適用
- 逆移動:(px, py)を足す
ユースケース
2D回転行列はゲーム開発(スプライトやオブジェクトの回転)、ロボティクス(2D運動学チェーンの関節回転)、画像処理(画像の回転)、UIデザイン(キャンバスベースアプリケーションでの要素回転)、物理シミュレーション(2Dの回転力学)で使用されます。