部門 > Three.js > 回転

オイラー角で回転

Three.jsで物体を回転させるときに最もよく使われるのはオイラー角のもよう。オイラー角の定義は
にあるような感じで、ふつうはこれと同じようにz-x-zの順で回転すると思うんだが(ランダウの力学の定義もこうだったと思う)、
によるとx-y-zの順で回転するらしい。別の定義でオイラー角を計算し直すのはめんどうなので、Three.jsのほうでなんとかしてくれませんか。上のリンクからeulerOrder()というメソッドを使えばいいとわかっても引数をどうすればいいのか不明だったのだけど、そのままだった。
object.eulerOrder='XYZ';
のようにする。(例えば、Streaming data from Blender into Three.js (WebGL+Websockets)に載ってた。)

オイラー回転じゃなく、グローバルな座標に対して回転させたいとき

たぶんだけどこれ使えば任意のベクトルのまわりで回転できる。

好きな方向を向かせる

数日間、回転について色々調べてうまく行かなかったんだけど、ベクトルの方向を求めて、それにそってlookAt(position)を使ってやるのががけっきょく簡単だった。

ちなみにROOTにおける回転は、

TRotation
にあるようにz-x-zの順。よく読んだら、ランダウ-リフシッツやゴールドスタインもこれって書いてある。

参考リンク


名前:
コメント:

すべてのコメントを見る

タグ:

Three.js
最終更新:2013年02月01日 02:05