/ / Interpolieren x, y, z Koordinaten auf einer Kugel mit Punkten aus zwei Spinvektoren? - Vektor, Geometrie, Sinus, Kosinus, Drehimpuls

Interpolieren x, y, z Koordinaten auf einer Kugel mit Punkten aus zwei Spinvektoren? - Vektor, Geometrie, Sinus, Kosinus, Drehimpuls

Ich möchte 3D-Punkte in Echtzeit zeichnen, die auf der Oberfläche einer Einheitskugel liegen (r = 1).

Hier arbeiten zwei Spinvektoren. Ein Vektor dreht sich um die Y-Achse, seine X- und Z-Werte werden mit cos () und sin () eines Kreises berechnet, der vollständig auf der X / Z-Ebene liegt, wobei alle Y-Werte gleich 0 sind um die X-Achse sind es Z- und Y-Werte, die unter Verwendung des cos () und sin () eines Kreises berechnet werden, der vollständig auf der Z / Y-Ebene liegt, wobei alle X-Werte gleich 0 sind. Der Drehimpuls der beiden Vektoren sind in der Regel nicht gleich. Die Endpunkte der Vektoren liegen jedoch entlang der Oberfläche einer gemeinsamen Kugel mit einem Radius gleich 1. Sie sind daher von gleicher Größe und beide stammen von demselben 0, 0, 0 Punkt.

Sagen wir, der erste Vektor hat einen WinkelMomentum namens angXZ und der zweiten angZY. Das bedeutet, dass ich jederzeit zwei Punkte, einen für jeden Spinvektor, mit angXY und angZY berechnen kann. Mit diesen beiden 3D-Punkten, wie lautet die Formel für die Berechnung eines dritten Punktes, der ebenfalls auf der Oberfläche der Einheitskugel liegen würde und die korrekte Interpolation zwischen den beiden Punkten wäre, die aus angXZ und angZY berechnet werden?

Ich kann in meinem Kopf sehen, dass zwei beliebige 3D-Punkte gegeben sinddie auf der Oberfläche einer Einheitskugel liegen, gibt es einen einzigen Kreis (Ebene), auf dessen Umfang beide aufliegen würden. Ich kann auch erahnen, dass die Berechnung der Koordinaten des interpolierten Punktes darauf hinausläuft, den Winkel zu halbieren, der durch die zwei berechneten Punkte erzeugt wird, wenn sie auf den Kreis projiziert werden, dessen Umfang sie beide teilen. Aber ich kann meinen Kopf nicht um die Übersetzungen und Mathematik wickeln.

Gibt es eine einfache Formel, die zwei 3D benötigt?Punkte, die auf der Oberfläche einer Einheitskugel liegen, um einen dritten Punkt zu berechnen, der ebenfalls auf dieser Oberfläche liegen würde und die korrekte Interpolation zwischen den ersten beiden Punkten wäre?

Ich verwende Delphi Pro 6, wenn das wichtig ist.

NACHVERFOLGEN: Es scheint intuitiv, dass ich in der Lage sein sollte, den linearen Mittelpunkt der zwei Punkte zu nehmen, die aus dem Paar von Spinvektoren berechnet wurden, und diesen Punkt zurück auf die Einheitskugel projizieren. Zum Beispiel liefert die Formel, die unter dem folgenden Link gefunden wird, Gleichungen zur Berechnung des Mittelpunkts zwischen zwei beliebigen 3D-Punkten. Sollte ich diesen 3D-Punkt dann nicht nehmen und eine Formel verwenden, passen Sie die XYZ-Koordinaten so an, dass sie auf die Oberfläche der Einheitskugel projiziert werden.

Koordinaten eines Punktes zwischen zwei Punkten finden?

Antworten:

2 für die Antwort № 1

Sei M und N deine zwei Punkte und O der Ursprung. Wir finden P, die Mitte des MN-Segments: OP = OM + ON / 2. Sie berechnen die Größe von OP: | OP |. Ihr benötigter Punkt ist R mit OR = OP / | OP | = OM + EIN / 2 | OP |.

Viel Glück bei der Berechnung. Ich kenne Delphi nicht, aber vielleicht erlaubt es direkte Vektoroperationen, wenn nicht mit analytischer Geometrie.

Die Koordinaten für den Mittelpunkt sind diearithmetische Mittelwerte der Koordinaten von M und N (Sie sagten, Sie können diese berechnen). Um die Größe von | OP | zu erhalten Sie extrahieren die Quadratwurzel von x ^ 2 + y ^ 2 + z ^ 2. Um R zu erhalten, teilen Sie einfach die Koordinaten von P auf die gerade berechnete Größe auf.

Du handelst getrennt, wenn M und N entgegengesetzt sind (P == O).