改变一个3dObject与另一个3Object在三个ejs中的距离



是否有办法改变相机的距离从一个固定的物体在三个ejs?

有一个"Vector3.distanceTo(Vector3)"函数可以给你两个3d物体的距离,但我找不到任何改变距离的东西。

没有函数可以为您做这些。如果你想改变一个3D物体的位置,你必须通过修改它的position属性来转换它。

假设您想要保持两个3D对象之间的方向,您可以这样实现代码:

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/three@0.141/build/three.min.js"></script>
此代码片段假设两个3D对象都没有祖先节点。

最新更新