Gegebenen Startpunkt, Winkel in jeder Drehachse und eine Richtung, Endpunkt berechnen
Habe ich einen start in die 3D-Koordinaten, z.B. (0,0,0).
Habe ich die Richtung, die ich zeige, vertreten durch drei Winkel - eine für jeden Winkel der Drehung (rotation in X rotation in Y rotation in Z) (für den sake des Beispiels nehmen wir an, ich bin einer von diesen alten logo Schildkröten mit einem Stift) und der Entfernung Reise ich in die Richtung, die ich zeige.
Wie würde ich mich über die Berechnung des Endpunkt-Koordinaten?
Weiß ich für ein 2D-system wäre es ganz einfach:
new_x = old_x + cos(angle) * distance
new_y = old_y + sin(angle) * distance
aber ich kann nicht herausfinden, wie Sie dies für 3 Dimensionen
Ich nehme an, andere Art des Denkens über diese würden versuchen, finden Sie einen Punkt auf der Oberfläche einer Kugel, die Kenntnis der Richtung, in die Sie zeigen sind und die Sphäre des radius.
- Was bedeutet "rotation in x rotation in y' bedeuten? Sie sich nicht drehen kann, in einer dimension, in zwei Dimensionen gibt es nur 1 Flugzeug von Drehung und in 3D gibt es nur 2 Ebenen rotation.
- ist die richtige. Denke auf diese Weise: für die Darstellung eines Punktes in 3D benötigen Sie 3 Skalare (zahlen). Aber Sie haben 4 (3 Winkel und Abstand). Etwas überflüssig ist ...
- Entschuldige bitte, ich bin noch neu in 3D-Koordinaten-Systeme. Ich habe Winkel, der durch diese Achsen, wie in Yaw(Y), Pitch(X) und Roll(Z). Ich hätte das gelöscht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sitz in die drei Winkel müssen Sie zum erstellen der 3x3-rotationsmatrix. Dann jede Spalte der matrix entspricht der lokalen x -, y-und z-Richtung. Wenn Sie eine lokale Richtung, die Sie verschieben möchten, durch, dann multiplizieren Sie die 3x3-rotation mit dem Richtungsvektor, um das Ergebnis in globalen Koordinaten.
Machte ich eine kleine Einleitung, um 3D koordinatentransformationen, dass ich denke, Ihre Frage zu beantworten.
3D-Koordinaten
Zunächst alle, für die Positionierung eines Punktes in 3D benötigen Sie nur zwei Winkel (gerade wie Sie benötigt nur eine in 2D)
Zweitens, aus verschiedenen Gründen (langsame cos&Sünde, gimbal lock, ...), die Sie speichern möchten, und die Richtung, wie ein Vektor in den ersten Platz und vermeiden Sie Winkel insgesamt.
Sowieso, Vorausgesetzt, die Richtung ist zunächst in z ausgerichtet, dann gedreht um die x-Achse, gefolgt von der rotation um die y-Achse.
x=x0 + Abstand * cos (angleZ) * sin (angleY)
Y=y0 + Abstand * sin (Anglez)
Z=z0 + Abstand * cos (angleZ) * cos (angleY)
Erstens, es ist seltsam, haben drei Winkel, die zum darstellen der Richtung-zwei wären genug. Zweitens hängt das Ergebnis von der Reihenfolge, in der Sie wiederum über die jeweiligen Achsen. Drehungen um verschiedene Achsen nicht pendeln.
Vielleicht sind Sie einfach auf der Suche nach der Konvertierung zwischen sphärischen und kartesischen Koordinaten.