3D座標変換の勘所メモ② - 異なる座標内での回転の変換 -
メモ第二弾です。
問題設定
- ローカル座標系Aとローカル座標系Bがあり,それぞれグローバル座標系に対しての回転を持つとする。
- グローバル座標にある点P をローカル座標系A内で回転を適用する。
- この時の点Pの回転をローカル座標系Bから見た回転[tex:R{PB}]とみなした時の[tex: R{PA},R_{PB}]の関係性は?
この問題はつまり,Aの座標系で動いた物体がBの座標系でどのように見えるかを表している。よくある問題です。
導出
まず点Pのグローバル座標ベクトルをとした時,系AとBから見た点Pのベクトルはそれぞれ
\begin{align} p_A &= R_A^\top p_G\\ p_B &= R_B^\top p_G \end{align}
です。ここで系Aのローカル座標内での回転を適用した時のベクトルは
となる。さらにこれを一旦グローバル座標にうつしその後座標Bに移した場合のベクトルは以下のようになる。
さて,これは座標系Bで見た移動後の点P'であるが最初の式を代入することでで表せる。
これが点Pを座標系Bにて回転させた
に等しくなることから,答えが導ける。
結論
との関係は,
逆の関係も
となります。Aが元からGlobal座標系だった場合は,
という式になります。
2次元回転との違い
回転まわりは2次元の図を書くとわかりやすいことが多々ありますが,今回のケースは2次元で考えると逆に混乱します。
2次元では回転の計算は可換(順番を変えても結果が同じ)であるため上記の式は2次元の場合
と同義であるからです。3次元以上での回転は非可換であるため上のようなややこしい式が登場するわけです。
参考URL
参考にした質疑
追記:以下の記事がわかりやすいですね。