前提・実現したいこと
オブジェクトの回転角を0-2πで取得したいです。
javascriptの"rotateAboutPoint"というFunctionでオブジェクトを回転させ、回転角をコンソールにて出力しましたが、0-2πとならずに、0 -> 1 -> 0 -> -1 -> 0と90度ごとに変化しました(sinカーブを描くイメージ)。
これを0-2πへと変換する方法はないでしょうか?
obj.rotation.yの値を時間経過で足していくコードでは実現したいコンテンツは作成出来ないので、rotateAboutPointを使用という前提でお願いします。
発生している問題・エラーメッセージ
なし
該当のソースコード
javascript
1const rotateAboutPoint(obj, point, axis, theta, pointIsWorld) { 2 pointIsWorld = (pointIsWorld === undefined) ? false : pointIsWorld 3 if (pointIsWorld) { 4 obj.parent.localToWorld(obj.position) // compensate for world coordinate 5 } 6 obj.position.sub(point) // remove the offset 7 obj.position.applyAxisAngle(axis, theta) // rotate the POSITION 8 obj.position.add(point) // re-add the offset 9 if (pointIsWorld) { 10 obj.parent.worldToLocal(obj.position) // undo world coordinates compensation 11 } 12 obj.rotateOnAxis(axis, theta) // rotate the OBJECT 13}
試したこと
・回転角をコンソールにて出力すると、0-2πとならずに、0 -> 1 -> 0 -> -1 -> 0と90度ごとに変化した。
・xy座標からatan2を求めました。0→180度で0→2π、180→360度で-2π→0という結果になりました。これを0→360度で0→2πと変換できる方法があれば知りたいです。
補足情報(FW/ツールのバージョンなど)
three.js ver r126
あなたの回答
tips
プレビュー