四元数計算機 - 4D数学と3D回転

3Dグラフィックスやロボット工学向けに、四元数の加算、減算、乗算、共役、ノルム、逆元を計算します。

四元数の w、x、y、z 成分を入力し、演算を選択すると、結果がすぐに表示されます。

四元数計算機 - 4D数学と3D回転
3Dグラフィックスやロボット工学向けに、四元数の加算、減算、乗算、共役、ノルム、逆元を計算します。

四元数計算機について

四元数は複素数を拡張した数体系です。複素数には虚数単位 i が1つだけありますが、四元数には i、j、k の3つがあります。四元数は q = w + xi + yj + zk の形で表され、w は実部(スカラー部)、x、y、z は虚部(ベクトル成分)です。四元数は1843年にアイルランドの数学者ウィリアム・ローワン・ハミルトンによって発見され、それ以来、コンピュータグラフィックス、航空宇宙工学、ロボット工学、物理シミュレーションで欠かせないものになっています。 オイラー角などの他の回転表現に対する四元数の大きな利点は、ジンバルロックを避けられることです。ジンバルロックとは、2つの回転軸が揃ってしまい、自由度が1つ失われる現象です。四元数は 3D 回転を、単一で連続的かつ補間可能なオブジェクトとして表します。そのため、滑らかなアニメーション、ビデオゲームにおけるキャラクター移動、宇宙機の姿勢制御で好んで使われます。 この四元数計算機は6つの基本演算に対応しています。加算と減算は成分ごとに行います。つまり、4つの成分 (w, x, y, z) をそれぞれ独立に足し引きします。一方で乗算はより複雑です。四元数の乗算は非可換であり、一般に q1 × q2 ≠ q2 × q1 だからです。積はハミルトン積の規則に従います:(w1w2 - x1x2 - y1y2 - z1z2) + (w1x2 + x1w2 + y1z2 - z1y2)i + (w1y2 - x1z2 + y1w2 + z1x2)j + (w1z2 + x1y2 - y1x2 + z1w2)k。 四元数 q = w + xi + yj + zk の共役は q* = w - xi - yj - zk です。実部を変えずに、3つの虚部成分すべての符号を反転します。共役は複素共役に相当し、逆元の計算に使われます。 四元数のノルム(大きさとも呼ばれます)は |q| = √(w² + x² + y² + z²) です。単位四元数はノルムが 1 で、スケーリングを含まない純粋な回転を表すうえで特に重要です。 四元数の逆元は q⁻¹ = q* / |q|² で、q* は共役、|q|² はノルムの2乗です。単位四元数では、逆元は共役と同じです。逆元は回転を取り消すときに役立ちます。q がベクトルをある角度だけ回転させるなら、q⁻¹ はそれを元に戻します。この計算機はこれらすべての演算を即座に処理できるため、3D 変換、アニメーションシステム、高度な数学に携わる人にとって非常に有用です。

四元数計算機の例

これらの例で、一般的な四元数演算を理解しましょう。

入力結果説明
q1 = 1+2i+3j+4k, q2 = 5+6i+7j+8k(加算)6 + 8i + 10j + 12k成分ごとの加算:4つの成分をそれぞれ独立に足します。実部:1+5=6、i:2+6=8、j:3+7=10、k:4+8=12。
q1 = 0+1i+0j+0k, q2 = 0+0i+1j+0k(乗算)0 + 0i + 0j + 1k非可換なハミルトン積:i × j = k。j × i = -k であることに注意してください。これは非可換性を示しています。
q = 3 - 1i + 2j + 5k(共役)3 + 1i - 2j - 5k共役は実部(スカラー部)を変えずに、3つの虚部すべての符号を反転します。
q = 1+1i+1j+1k(ノルム)2|q| = √(1²+1²+1²+1²) = √4 = 2。ノルムは四元数の大きさを表します。

四元数計算機の使い方

  1. ドロップダウンメニューから実行したい演算(加算、減算、乗算、共役、ノルム、逆元)を選択します。
  2. 第1四元数 q1 の4つの成分 (w, x, y, z) を入力します。二項演算の場合は、第2四元数 q2 の成分も入力します。
  3. 計算をクリックして結果を表示します。二項演算は四元数、ノルムはスカラー、逆元は四元数を返します。
  4. 下に表示される結果を確認します。乗算では順序が重要で、q1 × q2 ≠ q2 × q1 です。
  5. リセットをクリックすると、すべてのフィールドをクリアして新しい計算を開始できます。

四元数計算機 FAQ

四元数とは何ですか?
四元数は q = w + xi + yj + zk の形をした4次元の数で、w はスカラー(実)部、x、y、z は i² = j² = k² = ijk = -1 に従うベクトル(虚)部です。複素数を拡張したもので、ジンバルロックなしに 3D 回転を表すために広く使われています。
なぜ四元数の乗算は非可換なのですか?
虚数単位 i、j、k は ij = k、ji = -k、jk = i、kj = -i、ki = j、ik = -j の規則に従います。乗算の順序によって一部の交差項の符号が変わるため、q1 × q2 は一般に q2 × q1 と等しくありません。これは 3D 回転行列の振る舞いとも対応しています。
四元数はどのように 3D 回転を表しますか?
単位軸 (ax, ay, az) の周りに角度 θ だけ回転する操作は、q = cos(θ/2) + sin(θ/2)·(ax·i + ay·j + az·k) として符号化されます。得られる四元数のノルムは 1(単位四元数)です。ベクトル v を回転するには q × v × q⁻¹ を計算し、このとき v は w=0 の純四元数として扱います。
単位四元数とは何で、なぜ重要ですか?
単位四元数はノルムが 1 の四元数です。単位四元数は乗算の下で群を成し、グラフィックスやロボット工学で 3D 姿勢を表す標準的な表現です。任意の四元数をそのノルムで割ると、対応する単位四元数が得られます。非単位四元数は回転にスケーリングを組み合わせます。
共役と逆元の違いは何ですか?
共役 q* = w - xi - yj - zk は虚部の符号を反転するだけです。逆元 q⁻¹ = q* / |q|² は、共役をノルムの2乗で割ります。単位四元数 (|q| = 1) では逆元と共役は同一ですが、非単位四元数では異なります。
この計算機を四元数ベースのアニメーション補間(SLERP)に使えますか?
この計算機は、SLERP(球面線形補間)を理解し実装するために必要な基本代数演算を計算します。SLERP そのものには q1 × (q1⁻¹ × q2)^t の計算が必要で、ここで提供されている乗算と逆元の演算を使って段階的に組み立てられます。