tr0nix
der-mit-dem-tux-tanzt
Hallo zusammen
Ich habe ein kleiner Matrizen Verstaendniss Problem.
(Ich weiss, dass Matrizen nciht von OGL sondern aus
der Mathe kommen, der Topic sollte nur OpenGL _und_ Mathe
versierte anziehen )
Bei der 3d Programmierung hat man ja sogenannte 4x4 Matrizen (plural von Matrix). Welche einen Startpunkt
haben und je 3 Vektoren fuer die restlichen Punkte.
Also Bsp:
float matrix[16] = {
1, 0, 0, 0, (x)
0, 1, 0, 0, (y)
0, 0, 1, 0, (z)
0, 0, 0, 1
};
Dabei ist die 4te Zeile wie auch die 4te Spalte was spezielles.
Wie soll ich das zeugs nun interpretieren Schritt fuer Schritt? Ich habe
schon einige Seiten abgeklappert aber ich werd einfach noch immer
nicht ganz schlau draus!
So wie ich das Verstanden habe, ist die 4te Spalte die Position des
Anfangspunktes. Die 4te Zeile sei nur irgendein Korrekturfaktor
oder sowas und kann vorerst vernachlaessigt werden. Hauptsache
in der 4ten Zeile ist in der 4ten Spalte eine eins.
Wenn man auf diesen Punkt immer die Vektoren anwendet, welche
noch in der Matrix gegeben ist, haette man:
1. Punkt (Startpunkt -> 4te Spalte):
x = 0, y = 0, z = 0
2. Punkt (1te Spalte):
x = 1, y = 0, z = 0
3. Punkt (2te Spalte):
x = 0, y = 1, z = 0
4. Punkt (3te Spalte):
x = 0, y = 0, z = 1
Wenn man sich jetzt diese Punkte also Verbindet kommt man
auf sowas:
o
| o
|/
o---o
(Wobei jedes o ein von mir angesprochener Punkt ist).
Anhand dieser 4 Punkte kann man sich ja einen Wuerfel "denken".
Ich habe jetzt allerdings ein grafisches Beispielprogramm welches
einen Wuerfel mit folgender Matrix bastelt:
float matrix[16] = {
1, 0, 0, 0, (x)
-1, -1, 0, 0, (y)
0, 0, 1, 0, (z)
0, 0, 0, 1
};
Das verwirrt mich ein wenig... da ich eigentlich erst mal die Theorie
der 3d Programmierung studieren will (kennt jemand gutes Buch
oder Tutorial? -> OpenGL unter Linux), habe ich mich noch nicht
richtig mit dem Beispielprogrammcode auseinandergesetzt. Deshalb waere
es natuerlich moeglich, dass noch etwas weiteres mit der 2ten
Matrix gebastelt wird, was mir nicht aufgefallen ist.
Kann mir jemand klar sagen wie man nun diese Punkte zu verstehen
hat?
Gruss & dank
Joel
Ich habe ein kleiner Matrizen Verstaendniss Problem.
(Ich weiss, dass Matrizen nciht von OGL sondern aus
der Mathe kommen, der Topic sollte nur OpenGL _und_ Mathe
versierte anziehen )
Bei der 3d Programmierung hat man ja sogenannte 4x4 Matrizen (plural von Matrix). Welche einen Startpunkt
haben und je 3 Vektoren fuer die restlichen Punkte.
Also Bsp:
float matrix[16] = {
1, 0, 0, 0, (x)
0, 1, 0, 0, (y)
0, 0, 1, 0, (z)
0, 0, 0, 1
};
Dabei ist die 4te Zeile wie auch die 4te Spalte was spezielles.
Wie soll ich das zeugs nun interpretieren Schritt fuer Schritt? Ich habe
schon einige Seiten abgeklappert aber ich werd einfach noch immer
nicht ganz schlau draus!
So wie ich das Verstanden habe, ist die 4te Spalte die Position des
Anfangspunktes. Die 4te Zeile sei nur irgendein Korrekturfaktor
oder sowas und kann vorerst vernachlaessigt werden. Hauptsache
in der 4ten Zeile ist in der 4ten Spalte eine eins.
Wenn man auf diesen Punkt immer die Vektoren anwendet, welche
noch in der Matrix gegeben ist, haette man:
1. Punkt (Startpunkt -> 4te Spalte):
x = 0, y = 0, z = 0
2. Punkt (1te Spalte):
x = 1, y = 0, z = 0
3. Punkt (2te Spalte):
x = 0, y = 1, z = 0
4. Punkt (3te Spalte):
x = 0, y = 0, z = 1
Wenn man sich jetzt diese Punkte also Verbindet kommt man
auf sowas:
o
| o
|/
o---o
(Wobei jedes o ein von mir angesprochener Punkt ist).
Anhand dieser 4 Punkte kann man sich ja einen Wuerfel "denken".
Ich habe jetzt allerdings ein grafisches Beispielprogramm welches
einen Wuerfel mit folgender Matrix bastelt:
float matrix[16] = {
1, 0, 0, 0, (x)
-1, -1, 0, 0, (y)
0, 0, 1, 0, (z)
0, 0, 0, 1
};
Das verwirrt mich ein wenig... da ich eigentlich erst mal die Theorie
der 3d Programmierung studieren will (kennt jemand gutes Buch
oder Tutorial? -> OpenGL unter Linux), habe ich mich noch nicht
richtig mit dem Beispielprogrammcode auseinandergesetzt. Deshalb waere
es natuerlich moeglich, dass noch etwas weiteres mit der 2ten
Matrix gebastelt wird, was mir nicht aufgefallen ist.
Kann mir jemand klar sagen wie man nun diese Punkte zu verstehen
hat?
Gruss & dank
Joel