クォータニオン計算モジュール

ダウンロード

クォータニオン計算モジュール 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命令を追加。

関連記事

  1. hgimg4  HGIMG4の習得ついでに情報を整理していこうかと思います。 文体は解説の体をしていますが、解説サ...
  2. 行列計算モジュール mod_matrix Ver.1.03 (2017/08/26) ダウンロード(65.1 KB) H...