3
如何讓相機在一個點上旋轉?我開始做這個,但我有一些問題,當φ= 90度,-90度,並在旋轉我不滾相機這樣的方式如何讓相機在一個點上旋轉?
theta = - ((event.clientX - lastLeft) * 360 /window.innerWidth) + onMouseDownTheta;
phi = ((event.clientY - lastTop) * 360 /window.innerHeight) + onMouseDownPhi;
var cosPhi = Math.cos(phi * Math.PI/180);
var sinPhi = Math.sin(phi * Math.PI/180);
var sinTheta = Math.sin(theta * Math.PI/180);
var cosTheta = Math.cos(theta * Math.PI/180);
camera.position.x = - radious * sinTheta * cosPhi;
camera.position.y = radious * sinPhi;
camera.position.z = radious * cosTheta * cosPhi;
camera.lookAt(new THREE.Vector3(0,0,0))
if(phi > 90){
u = u*(-1);
camera.up = new THREE.Vector3(0, u, 0);
}
camera.updateMatrix();
你的意思是說,在某些時候相機翻轉,但你希望你的旋轉更像這樣:http://braingl.de? – Roest 2012-08-02 13:33:57