※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

クォータニオン

「四元数」とも呼ばれる. 三次元回転をコンパクトに表現できる,補間がやりやすいなどの利点があるが, 結局同次座標変換行列に落とさないと使えなかったりする. 直感的でないという最大の欠点がある.

回転を表すクォータニオン

普通のクォータニオンは

とかあらわされる.は虚部.

回転を表すクォータニオンの場合,大きさが1のクォータニオンとなる. 回転量を,回転軸をとしたときこれをあらわすクォータニオンは

当然,全要素の符号を反転させても同じ回転を表現できる. なお,

これは同じ回転を意味し

これは逆回転を意味する

基本的な演算

クォータニオンの乗算の定義は

ちなみに


回転を表すクォータニオンを合成するときは単純に乗算すればよい.


クォータニオンaをbで回転させてクォータニオンcをつくる場合.

コーディングの際にはたぶん展開しても簡単にならないと思うので素直に乗算で組んでしまうのがいいと思う.


他の表現との変換

回転行列の作り方

右手座標列ベクトル形式として,


回転行列からの作り方


axis-angle

回転量を,回転軸をとしたとき

回転の合成は直接計算では得ることができない. クォータニオンとの変換は簡単なのでそこを経由するとよい.


変換

回転行列への変換はRodoriguesの公式を使う.

逆変換



対数クォータニオン:exponential map

OpenCVでは「回転ベクトル」と呼ばれている. 回転軸*回転角度で表される.三次元.

こうすることで,

ということらしい.

表現形式は文献,実装によって異なるようだが最終的に座標変換がうまくいっていれば問題はない? DirectXでは




参考文献

| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
|ログイン|