2014-11-19 19 views
9

Mi piacerebbe modificare la posizione di un oggetto, la rotazione e la scala dei vettori, quindi "applicarli" alla geometria, che azzererebbe quei vettori, ma manterrà la trasformazione.Three.js - Posso applicare "posizione", rotazione e scala alla geometria?

Ad esempio, supponiamo di importare un cubo con una lunghezza laterale di 1. I vertici min e max del cubo si trovano a (0, 0, 0) e (1, 1, 1). Ho impostato la scala dell'oggetto su (2, 2, 2) e poi ho applicato la trasformazione alla geometria.

Dopo l'applicazione, la scala viene reimpostata su (1, 1, 1) ei vertici min e max del cubo sono (0, 0, 0) e (2, 2, 2), rispettivamente.

C'è un modo integrato per farlo?

risposta

13

È possibile applicare un oggetto di trasformazione per la geometria dell'oggetto direttamente, e quindi reimpostare la posizione, la rotazione e la scala in questo modo:

object.updateMatrix(); 

object.geometry.applyMatrix(object.matrix); 

object.position.set(0, 0, 0); 
object.rotation.set(0, 0, 0); 
object.scale.set(1, 1, 1); 
object.updateMatrix(); 

Three.js r.69

Problemi correlati