search

Found

info 概要

2つのクォータニオン (w,x,y,z) を Hamilton 積で乗算し、結果のクォータニオン、ノルム、回転軸/角度を出力します。3D グラフィックスやロボティクス向け。

📘 使い方

  1. クォータニオン A の w, x, y, z を入力する
  2. クォータニオン B の w, x, y, z を入力する
  3. 結果欄で合成クォータニオン・ノルム・回転軸/角度を確認する

クォータニオン回転合成計算機

クォータニオン A

左側オペランド (w が実部、x/y/z が虚部)

クォータニオン B

右側オペランド (順序は非可換、a × b ≠ b × a)

結果 q = a × b

w
0.7071
x
0.7071
y
0.0000
z
0.0000
ノルム |q|
1.0000
回転軸-角度
90.00° @ (1.00, 0.00, 0.00)
コピーしました
Article

クォータニオン回転合成計算機|Hamilton 積で 3D 回転を合成

2 つのクォータニオン (w, x, y, z) を Hamilton 積で乗算し、合成結果のクォータニオン、ノルム |q|、回転軸と回転角を一画面で表示するツール。3D グラフィックスやロボティクスの回転計算を、紙とペンの符号ミスなしに確認できる。

💡 このツールについて

3D の回転を表す方法はいくつかあるが、ジンバルロックを避けつつ補間しやすいことから、ゲームエンジンや姿勢制御ではクォータニオンが広く使われる。複数の回転を「順番に」適用したいとき、その合成は 2 つのクォータニオンの Hamilton 積で表される。

ところが Hamilton 積は 16 個の積を符号付きで足し引きする計算で、手計算では符号を 1 つ間違えただけで結果が破綻する。しかも積は非可換、つまり a × b と b × a は別物なので、入力順を取り違えても気づきにくい。

このツールは A と B の 8 成分を入れるだけで、w = aw·bw − ax·bx − ay·by − az·bz から始まる 4 成分すべてを計算する。さらに結果を単位クォータニオンとみなして回転軸 (x, y, z) と回転角を逆算するので、「この合成回転は結局どの軸まわりに何度なのか」を直感的に把握できる。デバッグ時の答え合わせや、回転の直交性チェック (ノルムが 1 か) にも向く。

🧐 よくある質問

Q. 入力の順番 A × B と B × A はどちらが正しい? クォータニオン積は非可換なので、目的によります。回転 A を先に適用し次に B を適用する合成は、適用順とライブラリの規約次第で q = b × a と書く流儀が一般的です。本ツールは画面表記どおり q = a × b を計算するので、ご利用のエンジンの合成順に合わせて A と B を入れ替えてください。

Q. ノルムが 1 にならないのはなぜ? 入力した A・B のどちらか、または両方が単位クォータニオンでないためです。回転を表すには |q| = 1 が必要です。各成分を |q| で割って正規化すると単位クォータニオンになります。

Q. 回転軸が (1, 0, 0) と出るのは? 回転角がほぼ 0°(実部 w がほぼ 1)のとき、軸は数学的に不定になります。そのため既定で x 軸を仮の軸として表示します。実際には「ほぼ回転していない」状態です。

Q. w が実部、x/y/z が虚部とは? クォータニオンは 1 つの実部 w と 3 つの虚部 x, y, z からなる 4 次元の数です。回転表現では w = cos(θ/2)、(x, y, z) = sin(θ/2)·(回転軸) という対応になります。

Q. オイラー角や回転行列には変換できる? このツールは積の計算と軸-角度への分解に特化しています。軸と角度が分かれば、各ライブラリの関数でオイラー角や行列へ変換できます。

📚 クォータニオンと日本のものづくり

クォータニオンは 1843 年にアイルランドの数学者ハミルトンが発見した。i² = j² = k² = ijk = −1 という関係式を、ふと立ち寄った橋の石に刻んだ逸話で知られる。発見当時は実用性が疑問視されたが、20 世紀後半に 3D コンピュータグラフィックスと宇宙機の姿勢制御で一気に主役へ躍り出た。

国内でも、産業用ロボットアームの軌道計画、ドローンの姿勢安定化、VTuber のモーションキャプチャなど、回転を滑らかに繋ぎたい場面でクォータニオンは欠かせない。特に球面線形補間 (Slerp) は 2 つの姿勢の間を等速で繋ぐ手法として、アニメーションやカメラワークの現場で定番になっている。