2012-12-23 2 views
2

저는 ThreeJs에서 매우 기본적인 응용 프로그램을 만들고 있는데, 가운데와 두 개의 슬라이더 (수평 회전 및 수직 회전)에 객체가 있습니다. 두 슬라이더는 0에서 360 사이의 정수를 출력합니다. 지금까지는 첫 번째 슬라이더를 사용하여 객체를 가로 질러 카메라를 움직일 수있었습니다. 하지만 두 번째 슬라이더를 사용하여 카메라를 객체 주위로 위아래로 움직일 수 있기를 원합니다. 올바른 수학을 파악할 수 없습니다. 당신은 기본으로 this example의 코드를 사용할 수 있습니다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

: 여기

내 방정식이 순간처럼 보이는 것입니다

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

미안하지만를 "위도를"무엇을 변수는? 위도? 고맙습니다. – user1574041

+0

작전, 죄송합니다. 그것을 무시하십시오. 코드가 수정되었습니다. – mrdoob

관련 문제