Hi everyone!

I’ve been trying to gauge the distance between two points. As I googled it first I come up with this link.

[https://threejs.org/docs/#api/en/core/Raycaster]

However, I can only get X and Y coordinates but I also need to get Z since I try to calculate distances between 2 points in 3d model

const raycaster = new THREE.Raycaster();

const mouse = new THREE.Vector2();

function onMouseMove( event ) {

```
// calculate mouse position in normalized device coordinates
// (-1 to +1) for both components
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
```

}

I tried to create a Vector3D object but still can’t manage to get the Z value since the event object does not have a function for getting the Z

I’d be so grateful if anyone could help me with the issue

2 points in 3D space or on the screen?

in 3D space… I can only get X and Y coordinates but not Z

But distance is a number - not a vector - it doesn’t have x, y, or z.

See link @prisoner849 shared. To get distance between 2 points in 3D it’s usually enough to subtract these points:

```
const positionA = obj.position;
const positionB = obj.position;
const difference = new Three.Vector3().subVectors(positionB, positionA);
const distanceTotal = difference.length();
const distanceXAxis = Math.abs(difference.x);
const distanceYAxis = Math.abs(difference.y);
const distanceZAxis = Math.abs(difference.z);
```

1 Like

This was exactly what I’ve been looking for . I was also thinkig to add a mesh at the endpoints of the line. This is a brilliant solution. I was thinking of getting to coordinates of 2 points and calculate it by myself but thats much better! Thanks a lot!

1 Like

@prisoner849 codepen solution helped me to get the solutions. Thanks btw