javascript - ThreeJS轨迹球控制相机旋转

标签 javascript camera rotation three.js perspectivecamera

我已经使用 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/

相关文章:

javascript - Facebook 登录会启动事件吗?

javascript - 如何在 body 标签后追加元素?

ios - 在 CGContext 中旋转从 Samplebuffer 捕获的帧

wpf - 如何理解相机的属性,如位置、视线方向、向上方向?

html - 图标下显示的 CSS 旋转文本

c - 为什么这个汇编代码会失败?

javascript - Materialize CSS 在表单字段上显示错误

javascript - AWS lambda : How to Add Numbers to a NS Set in Dynamodb

ios - 如果我们在真正的预提交处理程序中,由于 CA 限制,我们实际上不能添加任何新的栅栏

JavaScript IE 旋转变换数学