Deine Formel kann nicht stimmen: Wenn der Einfallswinkel 0° beträgt, dann müsste v = v' gelten, nach deiner Formel ist dann aber v = -v'. Dies hingegen müsste gerade bei 90° gelten, nach dir erhält man hierbei allerdings einen Ausfalsswinkel von 30°, wenn man es aufzeichnet.
Also, ich habs endgültig raus, mit der Rotationsmatrix funktioniert das ganz einfach, ich wende es gleich auf das erste Beispiel an mit(y-Achse wird nach oben positiv gezählt, deshalb minus 1) und
(es ist wichtig, dass die Vektoren als Spaltenvektoren geschrieben werden, dazu später mehr):
1. Den Einfallswinkel berechnen:
Beispiel:, woraus folgt
.
2. Da der Vektor um den doppelten Winkel gedreht werden muss, wird dieser verdoppelt:
Beispiel:
3. Die Rotationsmatrix aufstellen:
Beispiel:
4. Der gesuchte Vektor berechnet sich dann einfach durch Linksmultiplikation mit der Rotationsmatrix:
Beispiel:
Achtung: Die Vektoren müssen zwingend als Spaltenvektoren geschrieben werden, damit die Matrixmultiplikation richtig funktioniert!
Die Multiplikation einer 2x2-Matrix mit einem 2-dimensionalen Spaltenvektor ist wiederum ein Vektor und so definiert:
Die Methode wird zwar nur dann funktionieren, wennvon
aus gesehen rechts näher ist als links, das müsste man vorher also noch abklären. Falls
von
aus gesehen links näher ist, kann man einfach das Vorzeichen von
umkehren, d.h. ein minus davor hängen, dann sollte es wieder stimmen.
So, ich hoffe, geholfen zu haben.![]()