Vektor drehen

Neue Frage »

schottmaster Auf diesen Beitrag antworten »
Vektor drehen
Hallo, ich brauche einen Ansatz bzw. Lösung zu einem Problem.

Ich habe eine Ebene E mit dem Normalenvektor N und einem Punkt P (P element der E). Damit kann ich eine Ebenengleichung in Normalform darstellen.
Ich erklär gleich mal am Beispiel weiter:

Die X und Y Achsen spannen die Ebene auf, so dass mein Normalenvektor N = [1,0,0] ist. Ich suche nun die beiden Richtungsvektoren der Ebene: R1 und R2. Wenn ich R1 rauskriege, könnte man R2 mittels Kreuzprodukt (R1, N) herauskriegen. Die Besonderheit ist, dass R1 zwingend nach oben zeigen muss. (relativ vom Normalenverktor aus).

Die Lösung für N = [1,0,0]:
R1 = [0,0,1] (steht nach oben).

Diese Relation ist zwingend. Weiteres Beispiel: Wenn mein Normalenverktor N der "Schwanz" eines (auf dem Boden) stehenden Mannes ist, brauche ich den Vektor vom Hintern bis zum Kopf. Dieser Zustand tritt ein bei einem Winkel von 0 Grad. Wenn der Mann sich hinlegt auf die rechte Seite, bleibt sein "Schwanz" bzw. der Normalenvektor gleich. Nur ändert sich der Winkel auf 90 Grad und der neue R1-Vektor (Hintern bis Kopf) ändert sich indem er zu Seite geht, jedoch in Relation zum Normalenverktor immer noch oben ist.

Hintergrund: Ich entwickle eine 3D-Engine und der Normalenvektor ist der Sichtverktor der Kamera. Alle Punkte werden auf die Ebene ("2D-Bildschirm" )projeziert. Bei einer drehung der Kamera von 0 Grad befindet sich die Y-Achse (Up-Vektor), mein R1, immer oben. Drehe ich die Kamera um 90 Grad im UZS, ist meine Y-Achse rechts. Drehe ich sich um 180 Grad ist sie unten. Die X-Achse (R2) ist immer 90 Grad im UZS weitergedreht als die Y-Achse. Ich hoffe Ihr versteht was ich bezwecken will.

Zusammenfassung
Gegeben sind Ebene E mit Normalvektor N und einen Punkt P auf der Ebene. Der Punkt ist gleichzeitig der Drehpunkt für Vektordrehung.
Gegeben ist weiterhin ein Winkel alpha (für alpha = 0°, R1 zeigt nach oben, Rotation im UZS).
Fakt ist, dass R1 und R2 linear unabhängige Richtungsvektoren der Ebene sind.

Gesucht ist Vektor R1 (Up-Vektor), der orthogonal zum Normalenverktor N ist. R1 ist abhängig von N und alpha.

Sekundäres Ziel: Vektor R2 (Right-Vektor), der orthogonal zu N und R1 ist. (Kreuzprodukt). R2 ist um 90° im UZS weitergedreht als R1.



Ich wünsche euch viel Spaß beim Knobeln und hoffe das mir jemand helfen kann. Vielen Dank bereit im Vorraus smile

Gruß
Schottmaster
mYthos Auf diesen Beitrag antworten »

*verschoben*

Amüsant ist der Vergleich mit dem (liegenden) Mann mit "Schwanz" und Hintern. Big Laugh

Ganz werde ich zur Zeit jedoch aus der Aufgabenstellung nicht schlau.
Hast du dir die Definition des Vektorproduktes genau angesehen?

1. Orthogonalität
2. Betrag der Länge = Betrag der Fläche des Parallelogrammes
3. Der Normalvektor geht aus den beiden anderen Vektoren (durch Drehung) genau so hervor, wie die Achsen des Koordinatensystemes (-> alle drei Vektoren bilden ein Rechtssystem)

Ich denke, die 3. Bedingung ist zu beachten.

mY+
schottmaster Auf diesen Beitrag antworten »

Genau so das will ich machen.... ein Rechtssystem aufbauen.

Ich habe den Normalenvektor der Ebene als Z-Achse*. Und möchte gerne X und Y-Achse als Vektor ermittelt haben.
Das ganze soll der dann auch drehbar sein (Rotierende Z-Achse*). Dafür gibt es den Winkel alpha

* Wenn ich auf ein Blatt Papier ein kath. Koordinatensystem mit X u. Y Achse raufmale, ist die Z-Achse diejenige die nach unten ins Blatt verschwindet.
schottmaster Auf diesen Beitrag antworten »

Ich habe die Lösung gefunden:

http://www.math.ethz.ch/~knus/geometrie/5.pdf

dort steht genau beschrieben wie man einen Vektor um eine Achse rotieren lässt. Man multipliziert den Normalenvektor mit der entsprechenden Rotationsmatrix.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »