2012-07-15 13 views

Odpowiedz

33

Najpierw upewnij się, że macierze obiektu zostały zaktualizowane.

object.updateMatrixWorld(); 

Pętla renderowania zwykle wywołuje to za Ciebie.

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

vector.applyMatrix4(object.matrixWorld); 

Wektor będzie teraz zawierać współrzędne położenia w świecie:

Wtedy to zrobić.

Możesz chcieć przeczytać niektóre książki referencyjne CG.

  1. 3D podkład matematyki dla grafiki i tworzenia gier/przez Dunn i Ian Fletcher Parberry

  2. Niezbędny Matematyki do gier i aplikacji interaktywnych: Podręcznik programisty James M. Van Verth i Lars M. Bishopa

Three.js R69

21

ostatnich wersjach Three.js (V50 +) zapewniają tę funkcjonalność Bui lt do the THREE.Object3D class. W szczególności, aby uzyskać współrzędne światowe lokalnej THREE.Vector3 instancji o nazwie vector użyć the localToWorld method:

object.localToWorld(vector); 

Podobnie jest a worldToLocal method przekształcania świata współrzędne układu lokalnego, który jest nieco bardziej skomplikowana, matematycznie rzecz biorąc. Aby przetłumaczyć świat vector na obiekty lokalnej przestrzeni współrzędnych:

object.worldToLocal(vector); 
+0

... i nie zapomnij uruchomić obiektu object.updateMatrixWorld(); Drapałem się przez chwilę, zanim spróbowałem. – arpo

+0

Próbowałem to zrobić ... Nadal otrzymuję 0, 0, 0 :( –

Powiązane problemy