2012-12-23 39 views
2

我在ThreeJs中做出了非常基本的應用,我在中心和2個滑塊(水平旋轉和垂直旋轉)中有一個對象。這兩個滑塊輸出一個0到360之間的整數。到目前爲止,我設法用第一個滑塊水平移動我的相機。但我希望能夠用第二個滑塊在物體周圍上下移動相機,並且我無法弄清楚正確的數學方法。在ThreeJs中圍繞一箇中心點上下移動3D相機

這裏是我的公式看起來像此刻:

camera.position.x = originX + radius * Math.cos(horizontal_degrees*(Math.PI/180)); 
camera.position.z = originY + radius *Math.sin(controls.horizontal_rotation(Math.PI/180)); 
camera.position.y= //??? i can't figure this out. 
camera.lookAt(scene.position); 

回答

2

您可以使用this example代碼爲基礎:

var horizontal_degrees = 0; 
var vertical_degrees = 0; 

var theta = horizontal_degrees * Math.PI/180; 
var phi = vertical_degrees * Math.PI/180; 

camera.position.x = originX + radius * Math.sin(phi) * Math.cos(theta); 
camera.position.y = originY + radius * Math.cos(phi); 
camera.position.z = originZ + radius * Math.sin(phi) * Math.sin(theta); 
+0

我很抱歉,但什麼是「LAT」變量指的是?緯度?謝謝。 – user1574041

+0

行動,抱歉。忽略這一點。修復了代碼。 – mrdoob