2012-07-15 48 views

答えて

33

まず、オブジェクトの行列が更新されていることを確認します。

object.updateMatrixWorld(); 

通常、これを呼び出すループがあります。ワールド座標で

var vector = object.geometry.vertices[i].clone(); 

vector.applyMatrix4(object.matrixWorld); 

ベクトルは、現在位置が含まれます。次に

は、これを行います。

一部のCGリファレンスブックを読むことができます。ゲームやインタラクティブなアプリケーションのためのフレッチャー・ダンとイアンParberryによってグラフィックスとゲーム開発のための

  1. 3D数学プライマー/

  2. エッセンシャル数学:プログラマーズ・ガイド ジェームズM.ヴァンVerthとラース・M.ビショップ

    three.jsの

three.js R69

21

最近のバージョン(V50 +)は、この機能のBUIを提供しますltをthe THREE.Object3D classに変換します。特に、vectorというローカルTHREE.Vector3インスタンスの世界座標を取得the localToWorld methodを使用するには:世界を変換することは、数学的に言えば、もう少し複雑であるローカル座標、座標にするために

object.localToWorld(vector); 

同様に、a worldToLocal methodあります。 vectorをオブジェクトのローカル座標空間に変換するには:

object.worldToLocal(vector); 
+0

...そして、object.updateMatrixWorld()を実行することを忘れないでください。私はそれを試みる前に私の頭をしばらく掻いていた。 – arpo

+0

それをやってみた...まだ0、0、0を得る:( –

関連する問題