2016-12-15 61 views

回答

1

更改使用mesh.position.set(x, y, z)

我用window.innerWidthwindow.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/

相關問題