更改使用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/