1
我正在使用Three.js使用JSONLoader加载JSON模型。我也使用TrackballControls.js进行基本的交互。如果我移动(PAN)对象,旋转的工作方式会有所不同。移动后如何将旋转更改为模型中心(PAN)?移动(平移)模型后关于模型中心的旋转
在此先感谢。
我正在使用Three.js使用JSONLoader加载JSON模型。我也使用TrackballControls.js进行基本的交互。如果我移动(PAN)对象,旋转的工作方式会有所不同。移动后如何将旋转更改为模型中心(PAN)?移动(平移)模型后关于模型中心的旋转
在此先感谢。
由于轨迹球控制旋转摄像头而不是网格。旋转后的旋转似乎很奇怪。因此,而不是使用轨迹球控制旋转基于四元数的网格。 在mousemove事件包括该代码
trackBallControls.noRotate = true;
if (isDragging === true) {
var deltaMove = {
x: event.offsetX -previousMousePosition.x,
y: event.offsetY -previousMousePosition.y
};
var deltaRotationQuaternion = new THREE.Quaternion()
.setFromEuler(new THREE.Euler(toRadians(deltaMove.y * 0.3),
toRadians(deltaMove.x * 0.3),
0,
'XYZ'
));
if (event.which === 1) {
mesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, mesh.quaternion);
}
}
previousMousePosition = {
x: event.offsetX,
y: event.offsetY
};
在鼠标向上事件集isDragging为false。 在mousedown中设置isDragging为true。
function toRadians(angle) {
return angle * (Math.PI/180);
}