9
A
答えて
8
クォータニオン計算全体については、Wikipedia articleを参照してください。
あなたはどの言語を使用したいのか分かりませんが、私はハスケルでいくつかのヒントを出そうとします。
data Quaternion = Q Double Double Double Double deriving (Show, Eq)
まず、四元数の乗算と加算を実装する必要があります。
instance Num Quaternion where
(+) = q_plus
(*) = q_mult
--....
q_plus (Q a b c d) (Q a' b' c' d') = Q (a + a') (b + b') (c + c') (d + d')
q_mult (Q a b c d) (Q a' b' c' d') = Q a'' b'' c'' d''
where
a'' = a * a' - b * b' - c * c' - d * d'
b'' = a * b' + b * a' + c * d' - d * c'
c'' = a * c' - b * d' + c * a' + d * b'
d'' = a * d' + b * c' - c * b' + d * a'
スカラーとの乗算は、変換を介して行われるべきである:
q_conjugate q = (scalar_to_q (negate .5)) * (q + i * q * i + j * q * j + k * q * k)
q_modulus q = sqrt $ q * (q_conjugate q)
今、逆:
scalar_to_q a = Q a 0 0 0
は、コンジュゲートおよびモジュラスを実現そして
i = Q 0 1 0 0
j = Q 0 0 1 0
k = Q 0 0 0 1
定義:
q_inverse q = (q_conjugate q) * (scalar_to_q (m * m))
where
m = q_modulus q
希望します。
PS:上記のインスタンス定義は、正常に完了した場合は少し簡単になります。私はあなたがギャップを埋めることができます。
+0
ありがとうございます。素晴らしい答え! – user346443
+10
この質問はなぜ閉じられるのですか?四元数の逆数を計算する方法を尋ねる正当な質問です。 StackOverflowが過度にモデレートされていませんか? – kaalus
1
ルック。いくつかのコードサンプルもあります。
関連する問題
- 1. 逆メッセージCRC計算
- 2. sqrt()の逆計算
- 3. 行列を転置する計算量と逆算する計算量
- 4. Matlabで逆行列を計算する
- 5. Gson:計算値を逆シリアル化する
- 6. mergesortの逆位を計算する
- 7. Javaで逆関数を計算する
- 8. 逆数の数を計算する
- 9. 手動で逆FFTを計算する
- 10. Sympy逆ラプラス変換を計算する
- 11. IMultiValueConverter + MultiBinding - データバインド値の逆算術計算?
- 12. 計算フィールドの逆計算(上書き)Javascript Jquery
- 13. Ruby:逆計算または表計算機能
- 14. 逆tanの計算方法は?
- 15. パンダを使って行列の逆行列を計算する
- 16. Javaで逆log_10を計算するには?
- 17. Matlab:行列の逆行列を計算する方法
- 18. マージソートの逆数の数を計算する
- 19. 関数の逆関数を計算する - ライブラリ
- 20. リニア計算を計算するR
- 21. モジュロnを計算する計算式
- 22. プログラム、逆計算を最適化するために遅すぎる必要
- 23. 頂点とクォータニオンが与えられたら、最初の頂点の3.0を計算します。
- 24. 逆乗算
- 25. 目的の計算で計算する
- 26. VATを逆に計算すると、常に0が返されます。
- 27. C++でイントリンシック関数を使用して逆数を計算する
- 28. Django集計合計を計算する
- 29. ディープネストされた多次元配列の値を逆に計算する
- 30. Python - リスト内の逆の位置に基づいてスコアを計算する
@TabbyCoolどのように彼は何を "試してみましょう"?彼は文字通りペンとメモ帳を手に入れ、数百年の人類を理解する数学的な作品を再発見すると期待していますか? – MaiaVictor