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)を中心に回転するには:

  1. 移動:(px, py)を引く
  2. 回転:R(theta)を適用
  3. 逆移動:(px, py)を足す

ユースケース

2D回転行列はゲーム開発(スプライトやオブジェクトの回転)、ロボティクス(2D運動学チェーンの関節回転)、画像処理(画像の回転)、UIデザイン(キャンバスベースアプリケーションでの要素回転)、物理シミュレーション(2Dの回転力学)で使用されます。

試してみる — Matrix Calculator

フルツールを開く