2

私はThreeJsで非常に基本的なアプリケーションを作成しています。中央にオブジェクトがあり、2つのスライダー(水平回転と垂直回転)があります。どちらのスライダーも0から360までの整数を出力します。これまでのところ、最初のスライダーを使用して、カメラをオブジェクトの周りで水平に動かすことができました。しかし、2番目のスライダーを使用して、オブジェクトの周囲でカメラを上下に移動できるようにしたいので、正しい計算がわかりません。

現時点での私の方程式は次のようになります。

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);
4

1 に答える 1

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 );
于 2012-12-24T00:44:50.750 に答える