Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Rotation bezüglich x-, y- und z-Achse darstellen
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Mathe-Forum -> Rotation bezüglich x-, y- und z-Achse darstellen
 
Autor Nachricht
Capris
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.07.2010
Beiträge: 12

BeitragVerfasst am: 07 Jul 2010 - 12:28:04    Titel: Rotation bezüglich x-, y- und z-Achse darstellen

Hallo,

ich bin auf der Suche nach einem Verfahren wie ich aus einer Rotationsmatrix (bzw. einem Quaternion) drei Rotationsmatrizen (bzw. drei Quaternionen) bezüglich x, y und z-Achse berechne.
Nochmal mit anderen Worten: Mir ist ein Winkel und eine beliebige Achse gegeben bezüglich welcher ein Objekt rotiert wird. Ich möchte aber wissen wie ich das Objekt nacheinander bezüglich x, y und z-Achse rotieren muss (welche Winkel ich für jede Achse brauche), um auf die gleiche Position zu gelangen.
Ich wäre echt dankbar, wenn mir jemand helfen könnte.

Grüße,
Capris
Deniz
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 08.07.2004
Beiträge: 3151

BeitragVerfasst am: 07 Jul 2010 - 13:06:51    Titel:

Für mein Verständnis:

Du möchtest eine beliebige Drehung im Raum zurückführen auf drei Drehungen, die nacheinander erfolgen, zu den jeweiligen drei Achsen.
Capris
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.07.2010
Beiträge: 12

BeitragVerfasst am: 07 Jul 2010 - 13:09:20    Titel:

Genau...
(sorry... hab echt versucht es klar zu formulieren)
Deniz
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 08.07.2004
Beiträge: 3151

BeitragVerfasst am: 07 Jul 2010 - 13:12:11    Titel:

Ist doch kein Problem.^^

Ich hab´s halt nicht richtig verstanden und muss so mit auf Nr. sicher gehen in dem ich nachfrage.

Nebenbei: Ich guck mir das mal bei Gelegenheit an.
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 07 Jul 2010 - 16:53:28    Titel:

Sollte schwierig werden, zumal es da keine eindeutige Lösung gibt. Mich würde interessieren, wofür du das brauchst.
Capris
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.07.2010
Beiträge: 12

BeitragVerfasst am: 08 Jul 2010 - 08:54:01    Titel:

Ich brauche die Winkel um rauszufinden, ob ein Objekt in der virtuellen Realität "wackelt" oder nicht. Dazu speichere ich nach jedem Iterationsschritt die Translation und Rotation. Die Position eines Objektes wird über seinen Schwerpunkt definiert. Es kann der Fall eintreten, dass nach einer Iteration zwar keine Translation durchgeführt wurde, aber das Objekt sich trotzdem bewegt hat, d.h. das Objekt wird rotiert. Ich möchte jetzt aber diese Rotation bezüglich jeder Achse anschauen, um ein bestimmtes Verhalten zu beobachten, ob die Rotation, die ich in einer Iteration durchführe in der nächsten dann wieder Rückgängig gemacht wird, also das Objekt hin und her wackelt.
Ich habe jetzt etwas gefunden, bin mir aber noch nicht sicher ob es das Richtige ist, und zwar die Roll-Pitch-Yaw-Winkel.
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 08 Jul 2010 - 12:59:04    Titel:

Hmm, also ich glaube, das kannst du auch mit einer freien Drehachse herausfinden. Aus zwei gegebenen Systemen kannst du jedenfalls die benötigte affine Abbildung ermitteln, um das eine in das andere zu transformieren. Du bräuchtest also lediglich das zu untersuchende Objekt zu zwei Zeitpunkten betrachten und dessen Ausrichtung und Position ablesen. Für solche zwei Betrachtungszeitpunkte kannst du jeweils eine affine Abbildung ermitteln und - naja - wie du dann "wackeln" definierst ist dir überlassen, aber ich denke, das lässt sich schon an einer kleinen Anzahl solcher affiner Abbildungen ablesen.

Aber für den Fall, dass du unbedingt die euler'schen Rotations-Matrices brauchst: Du musst nur eine Lösung der Gleichung X(a) · Y(b) · Z(c) = R finden, wobei R die gegebene Matrix für die freie Rotation ist und X(a), Y(b) und Z(c) jeweils die Rotations-Matrices für die 3 Achsen um die Winkel a, b, c. Das allgemeine Produkt X(a) · Y(b) · Z(c) kann man sogar in relativ kurzer Zeit ermitteln. Ob aber das resultierende trigonometrische Gleichungs-System vernünftig lösbar ist, wage ich zu bezweifeln, aber ich hab es zugegebenermaßen noch nicht probiert :)
Capris
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.07.2010
Beiträge: 12

BeitragVerfasst am: 08 Jul 2010 - 16:52:48    Titel:

@Annihilator
vielen dank für die antwort... ich muss wohl die idee mit den winkeln bezüglich den drei achsen aufgeben. mein hauptproblem besteht ja darin, dass ich nicht genau weiß wie ich das "wackeln" eines objektes zeige...

ich möchte jetzt einen neuen ansatz versuchen... mir sind pro iteration quaternionen gegeben, die die rotation beschreiben. ich überlege mir eine differenz zwischen den winkeln von den quaternionen (immer aus zwei nacheinander folgenden iterationen) zu bilden. für die daraus resultierenden winkel würde ich residuen bestimmen und damit dann ermitteln, ob das objekt "wackel"/sich hin und her bewegt. ist die idee gut oder übersehe ich etwas entscheidendes?
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 08 Jul 2010 - 17:25:39    Titel:

Klingt ganz gut. Wie das im Einzelnen dann aussähe, kann ich dir im Moment nicht sagen und es ist wohl auch nicht gewiss, ob das dann alles zufriedenstellend ist. Ich würd sagen: Einfach mal ausprobieren! :)
Das gute an Quaternionen ist natürlich, dass du Achse und Winkel sehr einfach bestimmen kannst; bei Matices ist das ein wenig umständlicher. Eins ist mir aber aufgefallen: Mit der Differenz zweier Quaternionen kannst du hier nicht so viel anfangen. Du müsstest sie wohl eher dividieren, bzw. die Gleichung a·t = b nach t auflösen, also t = inv(a) · b, wobei a und b jeweils Quaternionen sind, die die Ausrichtung eines Objekts bei zwei aufeinanderfolgenden Iterationen beschreiben.
Capris
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 07.07.2010
Beiträge: 12

BeitragVerfasst am: 09 Jul 2010 - 10:56:16    Titel:

vielen dank für deine hilfe... du hast recht, dass die differenz zwischen zwei quaternionen mir nichts bringt... also schaue ich mal, dass wie ich mit dem ergebnis der division die gewünschte aussage treffen kann Smile
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Mathe-Forum -> Rotation bezüglich x-, y- und z-Achse darstellen
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum