Javascript 围绕型号'旋转;移动(平移)模型后的s中心
我使用Three.js使用JSONLoader加载JSON模型。我还使用TrackballControls.js进行基本交互。如果移动(平移)对象,旋转的效果会有所不同。移动(平移)后如何将旋转更改为模型的中心Javascript 围绕型号'旋转;移动(平移)模型后的s中心,javascript,three.js,Javascript,Three.js,我使用Three.js使用JSONLoader加载JSON模型。我还使用TrackballControls.js进行基本交互。如果移动(平移)对象,旋转的效果会有所不同。移动(平移)后如何将旋转更改为模型的中心 提前感谢。因为轨迹球控件旋转相机而不是网格。平移后旋转似乎很奇怪。因此,不要使用轨迹球控件,而是基于四元数旋转网格。 在mousemove事件中包含此代码 trackBallControls.noRotate = true; if (isDragging ===
提前感谢。因为轨迹球控件旋转相机而不是网格。平移后旋转似乎很奇怪。因此,不要使用轨迹球控件,而是基于四元数旋转网格。 在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
};
在鼠标移动事件中,设置为false。
在mousedown中,设置为true
function toRadians(angle) {
return angle * (Math.PI / 180);
}
这已经是关于平移后围绕对象中心的旋转。如果可能的话,你可以在JS FIDLE中添加这一点,这将非常有用吗