Threejs: Distance from camera to object

Date: 2020-10-19 | threejs | distance |

problem

I'm using threejs to build out an audiovisualizer to accompany the release of an audio track. As part of this, I'm trying to figure out how to find the distance from the camera to a specfic object. How can I get the distance between my main camera and a given object I've created in Threejs?

solution

The Vector3.distanceTo function is very useful for this use case. All objects in threejs that have a 'location' will have a position property on them that stores their position in Vector3 format.

Thus to find the distance between two threejs objects with position, we can do something like:

let distance = objectA.position.distanceTo(objectB.position)

This will spit out the distance between objectA's position and objectB's position.

We can then extend this to cover the usecase of finding the distance between the camera and an object. In threejs, a camera is just another object in the scene and it, too, has a position attached to it.

So we can find the distance between the camera and another object in the same way we did it for two objects:

let distanceBetweenCameraAndObject = camera.position.distanceTo(someObject.position)

This will spit out the distance between the camera's position vector and someObject's position vector.

Want more like this?

The best / easiest way to support my work is by subscribing for future updates and sharing with your network.