回転とクォータニオン
3次元空間での回転をクォータニオンで表すことを考える。
回転軸のベクトルを 、回転角を とすると
回転を表すクォータニオンは
なら
この回転でベクトル が に写像されるとすると
ベクトル をクォータニオン と読み替えて
ただし、 は の共役クォータニオンで、
回転を表現する方法の比較
方法 | パラメータ数 | ジンバルロック | 計算量 |
---|---|---|---|
オイラー角 | 3 | ×(有) | ×(大) |
回転ベクトル(軸角度表現) | 3(4) | 〇(無) | △(中) |
回転行列 | 9 | 〇(無) | 〇(小) |
クォータニオン | 4 | 〇(無) | 〇(小) |
オイラー角は人間にとっては直感的(せやろか?)と言われるが、ジンバルロックがあるし、三角関数を多用し計算量が多いのでコンピュータでの内部表現にはあまり向かない。回転ベクトル(軸角度表現)も三角関数を使うがオイラー角よりは少ない。回転行列はもっとも単純明解な数式で回転を記述できるがパラメータ数が多い。クォータニオンはパラメータ数も少なく、計算量も少ない。(しらんけど)