C / C ++でのクォータニオン計算に適したライブラリはありますか?
補足:良いチュートリアル/例はありますか?私はそれをグーグルで検索して最初の数ページに行きましたが、おそらくあなたはあなたが共有できる/共有するであろう計算機科学または数学コースからのいくつかのデモ/ラボを持っていますか?
ありがとう
C / C ++でのクォータニオン計算に適したライブラリはありますか?
補足:良いチュートリアル/例はありますか?私はそれをグーグルで検索して最初の数ページに行きましたが、おそらくあなたはあなたが共有できる/共有するであろう計算機科学または数学コースからのいくつかのデモ/ラボを持っていますか?
ありがとう
私はIrrlichtクォータニオンクラスのファンです。これはzlibライセンスであり、Irrlichtから抽出するのはかなり簡単です。
Boostを試してみることができます-通常は最初から始めるのに適した場所です。そのための専用のサブライブラリがあります。
例については、Boostに付属するドキュメントと単体テストを参照してください。
DirectXには、他のいくつかの3Dライブラリと同様に、独自のクォータニオン関数があります。
私の意見では、クォータニオンがどのように機能するかを学ぶための最良の方法は、自分で数学を耕すことです。クォータニオンと変換に関するウィキペディアのページには、必要なすべての数式が含まれています。私はそこから自分のクォータニオンライブラリを作成しました:)(Haskellにあるので、わざわざ投稿することはありません。)
クォータニオンのドキュメントについては、3D グラフィックスのテキスト ブックを参照してください。これらは、計算コストの高い三角法の代わりに乗算を使用して 3D 回転の効果を生成する単純な行列です。
このウェブeuclideanspaceは、四元数を扱う場合に非常に重要です。すべての算術ステップバイステップ、同等性、単純化、さまざまな言語のコードサンプルがあります。このページに従って、ほとんどの関数を自分で作成しました。私はライブラリをダウンロードするよりもそれを好みます。関数は簡単にプログラムでき、途中で学習できます。
例として、クォータニオン乗算に関する次の C++ 関数を確認することをお勧めします: Efficient C++ quaternion multiplication using cv::Mat
3D グラフィックスで一般的なさまざまなベクトル、行列、四元数などの計算の SIMD 最適化を備えた単純な C/GObject ライブラリであるグラフェンがあります。