2012-07-15 46 views

Trả lời

33

Trước tiên hãy đảm bảo rằng ma trận của đối tượng đã được cập nhật.

object.updateMatrixWorld(); 

Vòng kết xuất thường gọi cho bạn.

Sau đó, làm điều này:

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

vector.applyMatrix4(object.matrixWorld); 

Các vector bây giờ sẽ chứa vị trí trên thế giới tọa độ.

Bạn có thể muốn đọc một số sách tham khảo CG.

  1. mồi toán 3D cho đồ họa và phát triển game/bởi Fletcher Dunn và Ian Parberry

  2. Essential Toán cho Trò chơi và các ứng dụng tương tác: Cẩm Nang Dành Cho Programmer James M. Van Verth và Lars M. ĐGM

three.js r69

21

các phiên bản gần đây của Three.js (V50 +) cung cấp chức năng này bui lt vào the THREE.Object3D class. Đặc biệt, để có được tọa độ thế giới của một THREE.Vector3 trường hợp địa phương tên là vector, sử dụng the localToWorld method:

object.localToWorld(vector); 

Tương tự như vậy, có a worldToLocal method để chuyển đổi thế giới phối vào tọa độ địa phương, đó là hơi phức tạp hơn, nói về mặt toán học. Để dịch một thế giới vector thành các đối tượng không gian tọa độ cục bộ:

object.worldToLocal(vector); 
+0

... và đừng quên chạy object.updateMatrixWorld(); Tôi đã gãi đầu một lúc trước khi tôi thử điều đó. – arpo

+0

Đã cố gắng thực hiện điều đó ... Vẫn nhận được 0, 0, 0 :( –

Các vấn đề liên quan