Wou*_*rgh 8 javascript orbital-mechanics perspectivecamera three.js
我正在尝试制作一个用于构建模型的 3D 查看器。我们已加载模型并尝试与模型进行某种交互。因此,我们使用 OrbiControls 来旋转、平移和缩放模型。
我们希望在查看器中具有这样的行为:当用户单击并拖动(从而旋转)时,旋转中心位于用户单击的建筑物点处。
我认为我通过改变 OrbitControl 的目标是明智的:
control.target.set(newX, newY, newZ);
Run Code Online (Sandbox Code Playgroud)
然而,我在 OrbitControl.js 文件的源代码中发现,当控件更新时,
camera.lookAt()
Run Code Online (Sandbox Code Playgroud)
调用函数,这会导致相机跳转到新位置。
有什么办法可以解决这个问题吗?我已经尝试了几个小时了,但似乎没有任何效果。
尝试更改 target0,然后在控件上调用 Reset() 。还尝试将相机改回原来的位置(这可能是它的做法,但我可能尝试得不好。
小智 0
尝试这个:
首先将控件的位置设置为:
control.center.set(0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
然后执行以下操作:
camera.position.copy(control.center).add(new THREE.Vector3(x, y, z+10));
Run Code Online (Sandbox Code Playgroud)
其中 x、y 和 z 是建筑模型的位置。
请注意,我已向 z 添加了 +10,以便相机位于模型的前面。将 +10 更改为其他值以接近/远离模型。
| 归档时间: |
|
| 查看次数: |
10048 次 |
| 最近记录: |