下の画像に示すように、私はTHREE.Scene
に単純な立方体を使用しています。キューブにはCANNON.Body
のPhysics(緑のワイヤフレームで表される)が添付されています。THREE.js 3D円の回転位置を計算する方法は?
CANNON.Body
は、キューブから2〜3単位オフセットされています。回転の場合、このオフセットはの半径になります。
私はキューブを回転させたとき、私はCANNON.Body
が角度と半径に基づいてキューブの周りを回転します。画像の右側に、の角度(私もラジアンがあります)の立方体を回転させました。しかし、CANNON.Body
はの周りにの周りを回転せず、その周りのみがキューブです。私は回転する必要がありますのすべての軸のキューブx、yとzです。
THREE.js
には組み込み関数がありますか、それとも自分の数式を使用する必要がありますか?もしそうなら、それは何でしょうか?
ありがとう!
P.S.私は純粋な解決策を見てきましたTHREE.js
ピボットポイントを操作するためにジオメトリが変換されるシーン。私はCANNON.Body
にジオメトリがないので、これはできません。
シーンには(そうでなければ空の) 'Object3D'を追加することもできますが、その位置を回転の中心にしておくこともできます。シーンにではなく 'Object3D'に' CANNON.Body'を追加してください。前に行ったように 'CANNON.Body'を移動し、代わりに' Object3D'を回転させます。 – Leeft
@Leeft提案していただきありがとうございます。ただし、不要なオブジェクトをシーンに追加しないようにしたいと思います。私はこれが数学的に解決できることを知っています、私はちょうど私の状況にそれを適用する方法とどのような式を使用するのか分かりません。他に提案がある場合は、教えてください! – Nicky
私が考えることができる他の可能なオプション:ピボットポイントを移動するか、[自分で数学を行う](http://stackoverflow.com/a/839931/3755747)(組み込み関数はありませんが、 'THREE.Math'には'radToDeg'と' degToRad'ヘルパー)。あなたのシーンのものをグループ化またはオフセットするために(そうでなければ空の) 'Object3D'を作成することには何も問題はありません。実際、シーン自体は本質的に、' Object3D'を子として持ちます(例えば、オブジェクトなど)。 – Leeft