web-dev-qa-db-ja.com

three.jsの `THREE.OrbitControls`でカメラの位置が変わります

THREE.OrbitControls初期カメラ位置をロードすると正常に動作しますが、ボタンクリックを使用してカメラ位置とカメラ回転を変更した場合。カメラの位置は変わりますが、キャンバスをクリックして新しいビューでカメラを回転させると、カメラの位置が突然変わります

カメラ:

 Camera = new THREE.PerspectiveCamera(45, Width / Height, 0.1, 1000);
 Camera.position.set(170, 120, 400); //intial cam position
 Scene.add(Camera); 


Camera.position.set(30, 167, 81);
Camera.rotation.set(-0.149, 0.3, 0.045); //final cam position

軌道制御:

controlz = new THREE.OrbitControls(Camera, Renderer.domElement);

フィドル

8
ArUn

THREE.OrbitControlsを使用していて、カメラのターゲットまたは位置を変更する場合は、次のようにする必要があります。

位置の更新:

camera.position.set(-0.041, 1.9, -1.21);
controls.update();

デモ

ターゲットの更新:

controls.target.set(30, 167, 81);
controls.update();

デモ

カメラをリセット

カメラを初期位置にリセットするには、次の操作を実行できます。

controls.reset();
17
Wilt