本文へ移動

四元数計算機

四元数の積・共役・逆元・正規化と3Dベクトルの回転を計算します。

入力

ブラウザー内で処理します。

結果

値を入力して計算してください。

使い方

演算を選び、スカラー成分を先頭にしてw, x, y, zの順でqを入力します。区切りは空白またはカンマです。pは積の場合だけ、ベクトルの3成分は回転の場合だけ使います。計算で結果を確定し、編集すると以前の結果は消えます。クリアで入力を空にし、コピーで確定結果を取得できます。 薄い初期値はそのまま計算できる例です。最初の値入力欄にフォーカスするか編集すると、例の値全体を一度だけ消します。その後は別の欄に移っても入力値を保持します。クリア後は空のままです。

計算方法と結果の読み方

ハミルトン積はi² = j² = k² = ijk = −1に従います。通常q × pとp × qは異なり、回転の合成ではpが先に作用します。共役はx, y, zの符号を反転し、逆元は共役を|q|²で割ります。正規化は全成分を|q|で割ります。

計算例

右手系の能動回転では、u = q / |q|としてv′ = u (0, v) 共役(u)を使います。列ベクトルv = 1, 0, 0とq = 0.7071067811865476, 0, 0, 0.7071067811865476なら、結果は約(0, 1, 0)です。これはz軸まわりの正の90°回転です。

制限とエラー

ゼロの共役と積は計算できますが、逆元・正規化・回転は定義できません。小数点にはドットを使い、有限の数を入力してください。指数表記も使えますが絶対値は1e100以下です。浮動小数点演算の結果を最大9桁の有効数字で表示するため、小さな誤差が残ることがあります。3D編集機能はありません。 ゼロ以外の入力成分の絶対値は1e-100〜1e100です。正確なゼロは使用できます。アンダーフローを防ぐため、より小さい値は拒否します。

よくある質問

qと−qで回転が同じなのはなぜですか。

積の2つの符号反転が打ち消し合うためです。長さは変わりますか。丸め誤差を除いて保存されます。