おべんきょうwiki
クォータニオン
最終更新:
yahirohumpty
クォータニオン
「四元数」とも呼ばれる. 三次元回転をコンパクトに表現できる,補間がやりやすいなどの利点があるが, 結局同次座標変換行列に落とさないと使えなかったりする. 直感的でないという最大の欠点がある.
回転を表すクォータニオン
普通のクォータニオンは
とかあらわされる.は虚部.
回転を表すクォータニオンの場合,大きさが1のクォータニオンとなる. 回転量を,回転軸をとしたときこれをあらわすクォータニオンは
当然,全要素の符号を反転させても同じ回転を表現できる. なお,
これは同じ回転を意味し
これは逆回転を意味する
基本的な演算
クォータニオンの乗算の定義は
ちなみに
回転を表すクォータニオンを合成するときは単純に乗算すればよい.
クォータニオンaをbで回転させてクォータニオンcをつくる場合.
コーディングの際にはたぶん展開しても簡単にならないと思うので素直に乗算で組んでしまうのがいいと思う.
他の表現との変換
回転行列の作り方
右手座標列ベクトル形式として,
回転行列からの作り方
axis-angle
回転量を,回転軸をとしたとき
回転の合成は直接計算では得ることができない. クォータニオンとの変換は簡単なのでそこを経由するとよい.
変換
回転行列への変換はRodoriguesの公式を使う.
逆変換
対数クォータニオン:exponential map
OpenCVでは「回転ベクトル」と呼ばれている. 回転軸*回転角度で表される.三次元.
こうすることで,
ということらしい.
表現形式は文献,実装によって異なるようだが最終的に座標変換がうまくいっていれば問題はない? DirectXでは
参考文献
- 四元数で回転 入門
- F. Dunn, I. Parberry, 松田晃一:「実例で学ぶゲーム3D数学」,オライリージャパン.
- カメラキャリブレーションと3次元再構成
- 3D空間における回転の表現形式 - TMPSwiki
- クォータニオン逆運動学 - TMPSwiki