我一直在使用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/
基本上,如果我单击中间的画布并沿y轴移动鼠标,则相机会按预期旋转。 如果我在远离中心的点(在立方体右侧的示例)上单击画布,则摄像机将在两个方向上旋转,而不仅仅是在鼠标移动后。
我期待相机仅跟随起点(mousedown)和鼠标移动产生的终点之间的向量而不是考虑起点的位置。它似乎在一个球体周围旋转。
有什么建议吗? 最好的祝福 西蒙
答案 0 :(得分:4)
修正: 使用SymmetricTrackballControls.js,我们可以独立于画布上的鼠标位置旋转摄像机,但只考虑鼠标移动。 https://github.com/mrdoob/three.js/pull/6096