クォータニオン計算モジュール回転
ダウンロード
クォータニオン計算モジュール mod_quaternion Ver.1.01 (2023/01/28)
ダウンロード (49.4 KB)
内容
本モジュールは、HSP3でクォータニオン(四元数)の計算を手軽に行えるようにするためのモジュールです。命令を呼び出せば、計算方法を知らなくても計算させることができます。
クォータニオンを使用するとHGIMG4などで、複雑な回転操作を行うことができるようになります。またX,Y,Z軸の角度(オイラー角)を指定する方法では、回転しなくなってしまう問題(ジンバルロック)がありますが、クォータニオンを使用すれば問題を回避することができます。
大変便利な一方で、計算を毎回自分で書くのは少し大変です。HSP3には専用の計算命令も用意されていないので作成してみました。
ライセンス
本モジュールと3Dモデルデータのライセンスは、NYSL Version 0.9982 です。
動作環境
Windows10で動作確認済み。
標準命令で作られているのでほとんどの環境で動くと思います。
機能
以下のような計算が可能です。
- クォータニオンをコピー
- オイラー角からクォータニオンを算出
- クォータニオンの初期化
- クォータニオンをリセット
- クォータニオンの共役
- 逆クォータニオン
- クォータニオンの乗算
- クォータニオンの内積
- ベクトルをクォータニオンで回転
- クォータニオンの正規化
- クォータニオンのノルム
- クォータニオンとオイラー角(X→Y→Z)の相互変換
- クォータニオン間の球面線形補完・線形補完
添付データ
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 |