クォータニオン計算モジュール
ダウンロード
クォータニオン計算モジュール mod_quaternion Ver.1.02 (2023/02/05)
ダウンロード (54.4 KB)
内容
本モジュールは、HSP3でクォータニオン(四元数)の計算を手軽に行えるようにするためのモジュールです。命令を呼び出せば、計算方法を知らなくても計算させることができます。
クォータニオンを使用するとHGIMG4などで、複雑な回転操作を行うことができるようになります。またX,Y,Z軸の角度(オイラー角)を指定する方法では、回転しなくなってしまう問題(ジンバルロック)がありますが、クォータニオンを使用すれば問題を回避することができます。
大変便利な一方で、計算を毎回自分で書くのは少し大変です。HSP3には専用の計算命令も用意されていないので作成してみました。
本モジュールを使用すると、クォータニオンを使った基本的な各種計算やオイラー角を使った回転、任意軸周りの回転などが可能です。
ライセンス
本モジュールと3Dモデルデータのライセンスは、NYSL Version 0.9982 です。
動作環境
Windows10で動作確認済み。
標準命令で作られているのでほとんどの環境で動くと思います。
機能
以下のような計算が可能です。
- クォータニオンをコピー
- オイラー角からクォータニオンを算出
- クォータニオンの初期化
- クォータニオンをリセット
- クォータニオンの共役
- 逆クォータニオン
- クォータニオンの乗算
- クォータニオンの内積
- ベクトルをクォータニオンで回転
- クォータニオンの正規化
- クォータニオンのノルム
- クォータニオンとオイラー角の相互変換
- クォータニオン間の球面線形補完・線形補完
- 任意軸での回転
添付データ
HGIMG4用のXYZ座標軸の3Dモデル(gpbファイル)をフリー素材として添付しています。 3D界隈ではよく見かける赤緑青の3本の直行する矢印のやつです。 矢印1本の長さが、1になるように作成してあります。 さらに、X、Y、Zの矢印を1本ずつに分けたバージョンも添付。
履歴
2023/01/23 v1.00 | ・公開開始。 |
2023/01/28 v1.01 |
・計算誤差蓄積のサンプルを追加。 ・slerpq 球面線形補間、lerpq 線形補間の命令を追加。 ・dotq 内積 を追加。 ・クォータニオンとオイラー角の相互返還命令を追加。euler2quat、quat2euler |
2023/02/05 v1.02 |
・euler2quat、quat2eulerの回転順番を全パターン追加。 ・AngleAxisQ命令を追加。 |