Reputation: 97
Is there any way to change the distance of the camera from a fixed 3Object in threejs?
There is a "Vector3.distanceTo(Vector3)"
function that gives you the distance of two 3d objects but I couldn't find anything that changes the distance.
Upvotes: 1
Views: 114
Reputation: 31036
There is no function that can do this for you. If you want to change the position of a 3D object, you have to translate it by modifying its position
property.
Assuming you want to keep the directon between both 3D objects, you can implement the code like so:
const a = new THREE.Object3D();
a.position.set(0, 0, 0);
const b = new THREE.Object3D();
b.position.set(0, 0, 1);
console.log(a.position.distanceTo(b.position)); // 1
// move object "b" 2 additional world unit away from object "a"
const direction = new THREE.Vector3();
direction.subVectors(b.position, a.position).normalize();
const offset = new THREE.Vector3();
offset.copy(direction).multiplyScalar(2);
b.position.add(offset);
console.log(a.position.distanceTo(b.position)); // 3
body {
margin: 0;
}
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/three.min.js"></script>
Upvotes: 1