基本的な三角法を使用することに満足している/好む場合は、初期化セクションでこれを行うことができます。
var cameraAngle = 0;
var orbitRange = 100;
var orbitSpeed = 2 * Math.PI/180;
var desiredAngle = 90 * Math.PI/180;
...
camera.position.set(orbitRange,0,0);
camera.lookAt(myObject.position);
次に、レンダリング/アニメーションセクションでこれを行うことができます:
if (cameraAngle == desiredAngle) { orbitSpeed = 0; }
else {
cameraAngle += orbitSpeed;
camera.position.x = Math.cos(cameraAngle) * orbitRange;
camera.position.y = Math.sin(cameraAngle) * orbitRange;
}
もちろん、ボタンを変更するとdesiredAngle
(おそらく 0°、90°、180°、または 270°)、正しい平面を中心に回転する必要があります (上記の XY 平面を中心に回転しています)。orbitRange
そしてorbitSpeed
あなたが幸せになるまで。
orbitSpeed
また、軌道パスに沿って移動する際に、さまざまな速度で速度を上げたり下げたりしcameraAngle
て、よりスムーズな乗り心地を実現することもできます。このプロセスは「トゥイーン」と呼ばれ、詳細を知りたい場合は「トゥイーン」または「トゥイーン」で検索できます。Three.js はトゥイーンをサポートしていると思いますが、調べたことはありません。
また、カメラのfar
プロパティをより大きく設定することを忘れorbitRadius
ないでください。そうしないと、オブジェクトの前半分しか表示されず、内容によっては奇妙に見える場合があります。