私が知る限り、var point = object.geometry.vertices[i];
は、オブジェクトのジオメトリ内の点のx
、y
およびz
の相対位置を返します。three.jsの頂点の絶対位置を取得する方法は?
オブジェクトを移動、回転、または拡大縮小した場合の絶対位置の取得方法は?
私が知る限り、var point = object.geometry.vertices[i];
は、オブジェクトのジオメトリ内の点のx
、y
およびz
の相対位置を返します。three.jsの頂点の絶対位置を取得する方法は?
オブジェクトを移動、回転、または拡大縮小した場合の絶対位置の取得方法は?
まず、オブジェクトの行列が更新されていることを確認します。
object.updateMatrixWorld();
通常、これを呼び出すループがあります。ワールド座標で
var vector = object.geometry.vertices[i].clone();
vector.applyMatrix4(object.matrixWorld);
ベクトルは、現在位置が含まれます。次に
は、これを行います。
一部のCGリファレンスブックを読むことができます。ゲームやインタラクティブなアプリケーションのためのフレッチャー・ダンとイアンParberryによってグラフィックスとゲーム開発のための
3D数学プライマー/
エッセンシャル数学:プログラマーズ・ガイド ジェームズM.ヴァンVerthとラース・M.ビショップ
three.jsのthree.js R69
最近のバージョン(V50 +)は、この機能のBUIを提供しますltをthe THREE.Object3D
classに変換します。特に、vector
というローカルTHREE.Vector3
インスタンスの世界座標を取得the localToWorld
methodを使用するには:世界を変換することは、数学的に言えば、もう少し複雑であるローカル座標、座標にするために
object.localToWorld(vector);
同様に、a worldToLocal
methodあります。 vector
をオブジェクトのローカル座標空間に変換するには:
object.worldToLocal(vector);
...そして、object.updateMatrixWorld()を実行することを忘れないでください。私はそれを試みる前に私の頭をしばらく掻いていた。 – arpo
それをやってみた...まだ0、0、0を得る:( –