As far as I know var point = object.geometry.vertices[i];
will return with the relative position for the x
, y
and z
of the point inside the geometry of the object.
How to get the absolute position, if the object was moved, rotated or scaled?
First make sure the object's matrices have been updated.
object.updateMatrixWorld();
The render loop usually calls this for you.
Then, do this:
var vector = object.geometry.vertices[i].clone();
vector.applyMatrix4( object.matrixWorld );
The vector will now contain the position in world coordinates.
You might want to read some CG reference books.
3D math primer for graphics and game development / by Fletcher Dunn and Ian Parberry
Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide James M. Van Verth and Lars M. Bishop
three.js r69
Recent versions of Three.js (v50+) provide this functionality built into the THREE.Object3D
class. In particular, to get the world coordinates of a local THREE.Vector3
instance named vector
, use the localToWorld
method:
object.localToWorld( vector );
Similarly, there is a worldToLocal
method for converting world coordinates into local coordinates, which is slightly more complicated, mathematically speaking. To translate a world vector
into the objects local coordinate space:
object.worldToLocal( vector );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With