Ich habe ein Matheproblem, mit dem ich kämpfe.Berechne Zielbereich auf Kreis Three.js
Ich habe einen besonderen Radianten ich die Kamera auf (camera.rotation.y) verweisen soll. Ich möchte dem Benutzer mitteilen, ob er nach links oder rechts schwenken muss, um zu diesem Radianten mit einer Toleranz von PI/4 zu gelangen.
Ich habe die pan-Nummer, indem man die Kamera + Dolly Rotation normalisiert
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;
}
So zwischen 0 und PI ist es immer.
Ich hatte geplant, den Bereich auszuarbeiten, den ich überprüfen kann, um zu sehen, ob der Benutzer nach links oder rechts schwenken muss, um zu diesem Radianten zu kommen. Der Versuch, diesen Code:
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);
Was mich so etwas wie
- point.pan 1,464308692701496
- left.min 1,071609611002772
- left.max 0,8918857974908487
- right.min 1,8570077744002202 schenkt
- right.max 3.0351050194963927
Ein weiterer Ansatz, den ich versucht habe, ist
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');
die wiederum werden nicht berücksichtigt, wenn die Pfanne wie 0,5 und linker Bereich 3 usw. (andere Seite von PI).
Sorry, ich bin diese auch nicht erklären, aber wenn jemand mich in die richtige Richtung zeigen kann ich es schätzen würde!
Dank. Das ist nützlich. Das Problem, das ich habe, ist nicht, dass es ein Objekt ist. Aber das könnte gut für das sein - mehr ein gespeicherter Blickwinkel. Ich könnte möglicherweise ein verstecktes Objekt auf diesem Winkel hinzufügen, um dieses zu verwenden, wenn ich es nicht basierend auf dem Winkel tun kann. – user5839
Eigentlich werde ich es so machen. Ich werde die Antwort richtig markieren. – user5839
Was ist der Typ von 'Ziel. position 'und' camera.position' ist diese Art von 'vector3' Ich erhalte Fehler. –