Wer um Mathe einen möglichst großen Bogen macht, braucht gar nicht weiterzulesen ... fürchte ich.
Ich habe ein Koordinatensystem, das in Lage und Orientierung bekannt ist. Dieses Koordinatensystem wird um bestimmte Winkel sowohl aum die X-Achse als auch um die Y-Achse gedreht. Beide Drehungen finden um die Achsen des Urspungkoordinatensytems statt. Die zweite Drehung findet also nicht um die Achsen des Koordinatensystem statt, das durch die erste Drehung entstanden ist.
Was ich nun brauche ist Orientierung des Koordinatensystem nach der zweiten Drehung. Also eine hübsche Matrix mit Orientieunrg aller drei Achsen und den Koordinaten.
(Im I-Net bin ich bisher nur für den 'konplizierteren' Fall findig geworden, also das die zweite Drehung um das Koordinatensystem stattfindet, das durch die erste Drehung entstanden ist. :grrdev
Du kannst du dein Koordinatensystem erst um die eine Achse drehen (etwa x), so dass du aus dem System S das System S' gemacht hast (die Reihenfolge der Drehungen scheint nach einem zweiten Nachdenken relevant zu sein!). Dann kannst du deine ganzen Daten von S in S' transformieren, inklusive der Normalenvektoren des alten Systems (also die x-, y- und z-Achse). Damit hast du deine alte, zweite Achse in deinem neuen System und um diese drehst du dann S' in das System S''. Sagen wir, du hast um x gedreht und transformierst nun y in y' (d.h. y' ist y im neuen System) und um y' kannst du nun den ganzen Kram weiter drehen, dann kannst du deine Daten von S' in S'' rechnen.
Errm... oder ich stehe gerade total auf dem Schlauch.
Der Koordinatenursprung bleibt aber gleich oder will der auch herum-transformiert werden?
(Ich bin gerade nicht sicher, aber "Galilei-Transformation" müsste ein Stichwort sein, dass irgendwas hervorbringt...)
Die Lösung scheint wirklich zu sein, dass du zweimal drehst und dir im Zwischenschritt deine Koordinatenachsen mit in das Zwischensystem konvertierst.
Wenn du das informatisch löst, bin ich gerade gar nicht sicher, ob du eine Matrix brauchst. Eigentlich täte es ja auch ein einziger Vektor, der alle deine Koordinaten ganz stupide in einer while-Schleife mal abklappert, mathematisch sicher nicht die eleganteste Lösung. Aber dieser Absatz ist gerade nicht so gut durchdacht, fürchte ich.
Ich werde zu Hause mal einen Blick in ein Buch werfen.
Der Koordinatenursprung bleibt gleich und wird nicht transformiert.
Eulersche Winkel scheinen mir ein sehr ähnliches Prolem zu sein.
Das trifft es aber nicht ganz. Das Ursprungskoordinatensystem habe die Achsen X, Y und Z. Das Koordinatensytem, dass nach der ersten Drehung entsteht habe die Achsen X', Y' und Z'. Das Koordinatensytem, dass nach der zweiten Drehung entsteht habe die Achsen X'', Y'' und Z''. Das Koordinatensytem, dass nach der dritten Drehung entsteht habe die Achsen X''', Y''' und Z'''.
Bei den Eulerwinkeln in dem obigen Link wird als Referenz für die dritte Drehung das Koordinatensystem X'', Y'' und Z'' verwendet und als Referenz für die zweite Drehung das Koordinatensystem X', Y' und Z'. Bei mir ist der Fall aber anders, alle Drehungen müssen als Referenz das Koordinatensystem X, Y und Z verwenden.
Ich habe jetzt mal angefangen, die Gleichungen herzuleiten und die sind noch komplexer geworden, als die Gleichungen auf dem Wikipedia-Link. Dabei hätte ich einfacherer erwartet (... und ich bin mir über meinen Ansatz nicht ganz klar, ob der korrekt ist). Lange her dass ich das in Mathe hatte und meine Unterlagen sind weit weg.
(Das ganze muss ich denn in einem VB Dialekt umsetzen. Aufgrund der Schnittstellen anforderung muss die Ergebnismatrix als 1x12 matrix vorliegen. )