获得子模型坐标
代码:
1 | //子模型为 obj |
通过获取obj子模型最小值和最大值来计算其质心位置,在其质心位置画个球。
子模型 obj 的坐标可以看做是 centroid.x, centroid.y, centroid.z
改变控制中心
当场景中只显示一个子模型时,可以把子模型的坐标作为中心点。
把相机视角指向子模型:
1 | camera.lookAt(new THREE.Vector3(centroid.x, centroid.y, centroid.z)) |
结果视角并没有变化。原因是受到 OrbitControls
控件的影响
改变OrbitControls.target
即可:
1 | controls.target = new THREE.Vector3(centroid.x, centroid.y, centroid.z); |
再调整相机位置,使子模型显示在场景中间:
1 | // 直接移动相机位置 |
恢复显示整个模型时,只需controls.reset()
,即可将相机位置及视角还原。