Studium
Home Login Anleitung Anmelden Über uns Kontakt Impressum

   Google-Anzeigen



   Google-Anzeigen



   Google-Anzeigen





Studium - Crashkurs
Also hier ein kurzer Crashkurs. Dieser ist im mathematischen Sinne wohl nicht ganz korrekt. Aber mir geht es darum eine Übersicht zu vermitteln und dir einen Eindruck zu geben. Blöd ist hier, dass die Beispiele nicht in einer Courierschrift dargestellt werden. Ich hoffen du kannst das dennoch lesen.

Eine Matrix ist ein "Zahlenfriedhof". Sie hat eine "rechteckige Form" und besteht aus Zeilen und Spalten, deren Einträge Zahlen, Variablen oder was auch immer sein können (vgl. http://de.wikipedia.org/wiki/Matrix_%28Mathematik%29)
z.B.

/ 5 2 \
| 3 9 |
\ 1 4 /

Diese Matrix hat zwei Spalten und drei Zeilen. Man sagt, sie sei Element von R^3x2, sprich: "drei kreuz zwei Matrix"

Eine Matrix mit nur einer Zeile oder nur einer Spalte wird Vektor genannt. Manchmal mit dem Zusatz Zeilen- bzw. Spaltenvektor. In deinem Fall empfehle ich dir, deine Koordinaten in einem Zeilenvektor zu speichern.


Wichtige Rechenregel:

Wichtig ist die Multiplikation und die Addition. Die Addition ist einfach, einfach elementweise Addieren

/ 5 2 \ / 3 2 \ / 8 4 \
| 3 9 | + | 1 9 | = | 4 18 |
\ 1 4 / \ 4 7 / \ 5 11 /

Wichtig hierbei ist, dass die beiden Summanden gleiche Gestallt haben.

Etwas komplizierter aber nicht schwerer ist die Multiplikation:

/ 3 2 5 \ / 1 5 \ / 3*1+2*2+5*1 3*5+2*2+5*4 \
\ 1 9 3 / | 2 2 | = \ 1*1+9*2+3*1 1*5+9*2+3*4 /
\ 1 4 /

Hier wird deutlich, dass nicht jede Matrix mit jeder multipliziert werden kann. Der erste Faktor muss so viele Zeilen haben wie der zweite Faktor spalten hat. Das Ergebniss hat so viele Zeilen wie der erste Faktor und so viele Spalten wie der zweite Faktor. Desshalb ist die Multiplikation aus nicht kommutativ, jedoch assoziativ.

Wenn das nicht ganz klar geworden ist, dann gib nochmal bescheid, dann kann ich dir das nochmal genauer erklären. Bei wikipedia findest du eine schönere Notation, die das vielleicht verständlicher macht.

Für einen Vektor ist noch wichtig eine bzw. die Norm zu erwähnen. Möchtest du den Abstand zweier Punkte wissen, so bestimme deren Translationsvektor
Bsp:

/ 5 \
A = | 2 |
\ 4 /
/ 1 \
B = | 2 |
\ 1 /

Verschiebungsvektor von A nach B
/ 4 \
B-A = | 0 |
\ 3 /

Die euklidische Norm geht aus dem Satz des Pythagoras hervor:
|| B-A || = sqrt(4^2 + 0^2 + 3^2) = sqrt(25) = 5

Wird ein Vektor durch seine Norm geteilt, also jeder Eintrag durch die Norm, so hat er die länge 1 und wird Einheitsvektor genannt.



Interessant sind nun für dich die Operationen Drehung und Rotation.

Translation ist einfach eine Addition.
Punkte und Verschiebungen (also Translationen) können beide als Vektoren dargestellt werden. Am einfachsten stellst du dir das so vor. Ein Punkt ist eine Verschiebung des Ursprungs, auch Ortsvektor genannt. Somit passt wieder alles.

Rotation:

Einfach sind nur die Rotationen um die x,y oder z Achse. (vgl. http://de.wikipedia.org/wiki/Rotationsmatrix)
Bps. Drehung um die x-Achse
Hier bezeichnet c=cos(rot.Winkel) und s=sind(rot.Winkel)

/ 1 0 0 \
R = | 0 c -s |
\ 0 s c /

Um nun deinen Punkt um die x-Achse zu drehen multiplizierst du die Matrix mit dem entsprechendem Vektor. Wenn also p dein Punkt ist:

R*p

Wichtig ist die Reihenfolge, denn anders klappt die Multiplikation nicht.

Das Problem ist, dass nur die Rotationen um die Koordinatenachsen einfach sind. Eine Rotation um eine beliebige Achse ist etwas aufwendiger. Mit Matrizen klappt das so:

Zuerst rotierst du die "ganze Welt" so, dass deine Rotationsachse identisch mit einer Koordinatenachse ist (max. 2 rotationen), dann rotierst du deinen Punkt und dann rotierst du die Welt wieder zurück. Das kann in einer Matrix zusammengefasst werden. Allerdings ist das etwas arbeit, darum mache ich das hier jetzt nicht.

Es gibt für den R^3 einen eleganteren Weg. (vgl. http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation) Allerdings geht das nur für Rotationen um eine Achse, welche durch den Ursprung verläuft.

Bsp:
Rotation von p um den Einheitsvektor (muss ein solcher sein) v und den Winkel alpha
c := cos (alpha/2)
s := sin (alpha/2)

z = c + s x v (x bedeutet hier Multiplikationsoperator)
z*= c - s x v

p_neu = z x p x z*


Das heißt, du musst zuerst den Punkt so verschieben, dass die Rotationsachse im Ursprung liegt und nach der Rotation wieder zurück.




Ich denke, dass du das wohl nicht auf Anhieb verstehen wird. Also sage mir, was ich nochmal genauer erläutern soll.
Geschickt von BlueShark, Di 04.04.2006 19:29



- Anzeige -
Lust auf eine eigene Homepage? Günstige Angebote gibt's hier...

Spotlight-Wissen.de distanziert sich ausdrücklich von im Forum eingestellten Fremdinhalten jeglicher Art.