(Rotations-/Translations-)Matrix auf Nullvektor anwenden

Neue Frage »

Maab Auf diesen Beitrag antworten »
(Rotations-/Translations-)Matrix auf Nullvektor anwenden
Hallo,

ich habe eine Matrix gegeben und einen Körper im R3 auf welchen ich diese Matrix anwenden soll.

Die Matrix selbst verkörpert Translation und Rotation des Körpers im Raum und die Matrix ist eine 4x4 Matrix in der in der letzten Zeile [0, 0, 0, 1] steht.

Leider habe ich keine Ahnung, wie ich aus der Matrix die Translation ,bzw. Rotation, ersehen soll.

Man sagte mir ich solle diese auf den Nullvektor anwenden, jedoch bin ich mir nicht sicher wie.

Kann mir da jemand einen Ratschlag geben ?

Grüße und Danke,
Maab.
Mazze Auf diesen Beitrag antworten »

Mir scheint Du arbeitest hier mit erweiterten Koordinaten. Man kann eine Translation im R³ nicht durch eine 3x3 Matrix beschreiben. Sehr wohl kann man das aber mit einer 4x4 Matrix und homogenen Koordinaten. Wie das geht solltest Du ja wissen wenn Du dich damit beschäftigst. Fakt ist, nimmt man den Nullvektor zu hilfe bekommt man die Translation raus. Dazu musst Du den Nullvektor natürlich auch in homogene Koordinaten überführen :



Diesen Vektor kannst Du auf die 4x4 Matrix anwenden. Die ersten 3 Zeilen des Ergebnisvektors beinhalten die Translation.
Maab Auf diesen Beitrag antworten »

Okay, etwas auseinadergesetzt habe ich mich damit schon, aber die Thematik kommt ja nun nicht selbst von mir.

Ich habe aber gerade folgendes gelesen:
R * T = Tr

R = [
[ R11, R12, R13, 0 ],
[ R21, R22, R23, 0 ],
[ R31, R32, R33, 0],
[ 0, 0, 0, 1 ] ]
Ist die Rotationsmatrix.

T = [
[ 1, 0, 0, X ],
[ 0, 1, 0, Y ],
[ 0, 0, 1, Z ],
[ 0, 0, 0, 1 ] ]
Ist die Translationsmatrix.

Die Werte kommen aus der gegebenen Matrix.
Soweit richtig ?

Kann ich die Werte einfach so aus der Matrix entnehmen ?
D.h. bei der Translationsmatirx wäre der Wert X von der Gegebenen Matrix M = M14 ?
Und diese muss ich im Endeffekt mit dem Nullvektor multiplizieren ?

Grüße,
Maab.
Mazze Auf diesen Beitrag antworten »

Zitat:
Kann ich die Werte einfach so aus der Matrix entnehmen ? D.h. bei der Translationsmatirx wäre der Wert X von der Gegebenen Matrix M = M14 ? Und diese muss ich im Endeffekt mit dem Nullvektor multiplizieren ?


Welche Matrix? Ich verstehe gerade nicht was Du da tust.
Maab Auf diesen Beitrag antworten »

Zitat:
Original von Mazze
Welche Matrix? Ich verstehe gerade nicht was Du da tust.


Also ich habe doch eine Matrix, welche die Rotation und Translation enthält. (das war die Matrix M)
Diese Matrix meinte ich, die ist gefüllt mit Werten und in der letzten Zeile steht [0, 0, 0, 1].

Dann ist doch die letzte Spalte der Matrix M die Translation und die ersten drei die Matrix für die Rotation meine Objektes.

Mein Problem ist jetzt, wie ich die Matrix, auf das Objekt anwende.
Ich habe oben versucht nachzuvollziehen, wie diese Transformationsmatrix M entsteht, da ich -wie schon gesagt- nicht unbedingt viel Erfahrung damit habe.

Grüße,
Maab.
Mazze Auf diesen Beitrag antworten »

Zitat:
Dann ist doch die letzte Spalte der Matrix M die Translation und die ersten drei die Matrix für die Rotation meine Objektes.


So in etwa, allerdings ist nicht jeder 3x3 Block eine Rotation. In diesem Fall wird aber der 3x3 Block gerade so gewählt das er eine Rotation beschreibt. Die ersten 3 Zeilen der vierten Spalte kann man aber immer als Translation interpretieren.

Zitat:
Mein Problem ist jetzt, wie ich die Matrix, auf das Objekt anwende.


Mit anderen Worten, Du weisst nicht wie man eine 4x4 Matrix mit einem 4x1 Vektor multipliziert? Das ist Grundlagenwissen was Du Dir noch vor dem eigentlichen Thema beibringen solltest Augenzwinkern
 
 
Maab Auf diesen Beitrag antworten »

Zitat:
Original von Mazze
So in etwa, allerdings ist nicht jeder 3x3 Block eine Rotation. In diesem Fall wird aber der 3x3 Block gerade so gewählt das er eine Rotation beschreibt. Die ersten 3 Zeilen der vierten Spalte kann man aber immer als Translation interpretieren.

Okay das hilft mir schon eher weiter, da ich ab und an auch die ersten drei Zeilen der vierten Spalte mit 0en gefüllt vorfinde und dafür die ersten drei Spalten der vierten Zeile gefüllt sind.
Das kommt aber wahrscheinlich auf den Ersteller der Matrix an.

Zitat:

Mit anderen Worten, Du weisst nicht wie man eine 4x4 Matrix mit einem 4x1 Vektor multipliziert? Das ist Grundlagenwissen was Du Dir noch vor dem eigentlichen Thema beibringen solltest Augenzwinkern


Ja ne das ist nicht das Problem, sondern eher das Verständnis.
Angenommen mein Objekte liegt im Nullpunkt.
Dann wären seine Koordinaten der Nullvektor.
Jetzt habe ich die Trasformations-Matrix die ich darauf anwenden muss, das wäre alles ?
Klingt für mich etwas zu einfach :-)
Maab Auf diesen Beitrag antworten »

Apropo wenn ich das auf den Null-Vektor anwende, dann bringe ich den Körper doch noch nicht in die richtige Rotationsposition, oder ?
Sonder das ist ja dann alleine nur die Translation.
Mazze Auf diesen Beitrag antworten »

Vielleicht solltest Du einfach mal ein Beispiel geben was für Objekte Du hast. Du sagst die Koordinaten des Objektes wären der Nullvektor. Das bedeutet gleichsam das dass Objekt nur aus einem Punkt besteht und ich bezweifle mal das dass das Problem ist. Der Nullvektor wird hier doch nur vorgeschlagen um den Translationsanteil zu bekommen.

Zitat:
Jetzt habe ich die Trasformations-Matrix die ich darauf anwenden muss, das wäre alles ?


Die Transformationsmatrix musst Du auf alle Punkte des Objektes anwenden.
Neue Frage »
Antworten »



Verwandte Themen

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