私は苦労している数学の問題があります。円上の目標範囲を計算するThree.js
私は(camera.rotation.y)にカメラを指すようにしたい特定のラジアンを持っています。私は、そのラジアンに到達するために左または右にパンする必要があるかどうかをPI/4の公差でユーザに伝えたいと思います。
私はそれが0とPIの間でいつものカメラ+ドリー回転に
function getCurrentPan(){
return dolly.rotation.y + camera.rotation.y > 0
? (dolly.rotation.y + camera.rotation.y)%Math.PI
: ((dolly.rotation.y + camera.rotation.y)%Math.PI) + Math.PI;
}
を取得することにより、パンの数を正規化してきました。
私は、ユーザーがそのラジアンに行くために左か右にパンする必要があるかどうかを調べるための範囲を調べることを計画していました。このコードをしよう:
right.min 1.8570077744002202- point.pan 1.464308692701496
- のようなものを与えている
point.leftRange = {}; point.leftRange.min = point.pan - range > 0 ? point.pan - range : Math.PI - point.pan - range; point.leftRange.max = point.leftRange.min - Math.PI/2 - range > 0 ? (point.pan - range)%Math.PI : (Math.PI - (point.leftRange.min - Math.PI/2 - range))% Math.PI; console.log(point.leftRange); point.rightRange = {}; point.rightRange.min = (point.pan + range) % Math.PI; point.rightRange.max = (point.rightRange.min + (Math.PI/2 - range)) % Math.PI; console.log(point.rightRange);
- right.max 3.0351050194963927
私が試した別のアプローチは、パンは0.5のようなもので、左の範囲は3等(PIの反対側)であれば、再び考慮されません
var opp = (point.pan - Math.PI/2)%Math.PI;
opp = opp > 0 ? opp : Math.PI - opp;
if(getCurrentPan() > point.pan && getCurrentPan() < opp)
console.log('greater');
else if(getCurrentPan() < point.pan && getCurrentPan() > opp)
console.log('less');
です。
申し訳ありません私はこれをうまく説明していませんが、誰かが私に正しい方向を示すことができるなら、私はそれを感謝します!
感謝。それは便利です。私が持っている問題は、それがオブジェクトだということではありませんが、これは良いことです。私は角度に基づいてそれを行うことができない場合、これを使用するために、その角度に隠れたオブジェクトを追加することができるかもしれません。 – user5839
実際に私はこのようにします。私は正しい答えをマークします。 – user5839
'targetのタイプは何ですか? positionと 'camera.position'は' vector3'の型です。エラーが発生しています。 –