Quaternion

数学では四元数といわれ、虚数のi,j,kを三つ使い表現されとても難しく感じるものですが、3Dグラフィックスの世界では、3D空間のオブジェクトの回転でなくてはならない考え方です。X,Y,Z軸それぞれで回転するのではなく、あるベクトルを軸としてその周りを回転します。天体望遠鏡を持っている人なら、赤道儀のしくみからイメージしやすいかもしれません。
前回Processingで3D空間のテストをしたつづきで、このクォータニオンのテストをしてみました。

参考: https://github.com/kynd/PQuaternion/blob/master/Quaternion.pde#L8

Processingのクォータニオンのクラスは上のものをそのまま引用させていただきました。

また、マウスドラッグ視点を変えられる便利なライブラリpeasyを使用しました。
http://mrfeinberg.com/peasycam/

プログラムは、前回作成したプログラムからZ軸をX軸を中心に15度回転されせたものを上書きしました。(紫の点)

また以前、Unityを試したブログでこのQuaternionがでてくるので、ここでちょっとだけ復習してみました。
「Unity 5 / C#」
http://crossframe.iiv.jp/201611241241/


直方体にして軸もちょっとずらして、回る様子をわかりやすくしました。

About

Categories: 未分類 タグ: