我已经使用 Threejs 来实现基于图像的 3D 建模应用程序 ( vmtklab.orobix.com )。 对于相机旋转/平移/缩放,我使用 TrackballControls.js。
controls = new THREE.TrackballControls( camera, renderer.domElement );
controls.dynamicDampingFactor = 0.5;
controls.target.set( pos.x, pos.y, pos.z );
我习惯了在 vtk(paraview 等)中使用相机移动,但我找不到如何在 Threejs 中复制这种行为。
参见:http://jsfiddle.net/ugxbktLt/5/
基本上,如果我单击中心的 Canvas 并沿 y 轴移动鼠标,相机就会按预期旋转。 如果我单击 Canvas 上远离中心的点(例如立方体右侧),相机将向两个方向旋转,而不仅仅是跟随我的鼠标移动。
我期望相机仅跟随鼠标移动生成的起点( mousedown )和终点之间的矢量旋转,而不考虑起点的位置。它似乎绕着一个球体旋转。
有什么建议吗? 此致 西蒙娜
最佳答案
已修复: 使用 SymmetricTrackballControls.js,我们可以独立于鼠标在 Canvas 上的位置来旋转相机,但只考虑鼠标移动。 https://github.com/mrdoob/three.js/pull/6096
关于javascript - ThreeJS轨迹球控制相机旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28560130/