更改使用mesh.position.set(x, y, z)
我用window.innerWidth
和window.innerHeight
到对象移动到屏幕的角落立方体的位置。
这里是一个更新的fiddle与您的盒子在屏幕的左上角。
如果您不喜欢拖动时多维数据集飞行的方式,则不能再使用orbitControls
。为了使立方体旋转静态通常情况下,使用此代码(jQuery的要求):
var isDragging = false;
var previousMousePosition = {
x: 0,
y: 0
};
$(renderer.domElement).on('mousedown', function(e) {
isDragging = true;
})
.on('mousemove', function(e) {
//console.log(e);
var deltaMove = {
x: e.offsetX-previousMousePosition.x,
y: e.offsetY-previousMousePosition.y
};
if(isDragging) {
var deltaRotationQuaternion = new THREE.Quaternion()
.setFromEuler(new THREE.Euler(
toRadians(deltaMove.y * 1),
toRadians(deltaMove.x * 1),
0,
'XYZ'
));
mesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, mesh.quaternion);
}
previousMousePosition = {
x: e.offsetX,
y: e.offsetY
};
});
$(document).on('mouseup', function(e) {
isDragging = false;
});
function toRadians(angle) {
return angle * (Math.PI/180);
}
function toDegrees(angle) {
return angle * (180/Math.PI);
}
源出于此代码:使用你的代码https://jsfiddle.net/MadLittleMods/n6u6asza/
例子:https://jsfiddle.net/3eau15pv/3/