Autor Beitrag
Kalka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Di 05.11.02 20:07 
Hallo Leutz,
tjo, lustige Frage, aber das würd ich gern mal wissen. Also bis jetzt stelle ich mir das so vor, das das Ding irgendwie sowas wie die Kamera ist oder so? Und die Matrix kann man ja mit

glTranslatef(...) verschieben, aber wie kann ich ihr einen Festen wert zuweisen? Alöso ich will, das sie an Position 0,0,0,0 ist- wie mache ichd as???

cu Kalka
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 05.11.02 21:08 
mars hat folgendes geschrieben:
"Die Matrix ist überall. Sie ist überall um uns herum, sogar genau in diesem Raum. Du kannst es sehen, wenn Du aus dem Fenster schaust oder wenn Du das Fernsehen anmachst. Du kannst es fühlen, wenn Du zur Arbeit gehst, wenn Du zur Kirche gehst, wenn Du deine Steuern bezahlst. Es ist die Welt, die über deine Augen gezogen wurde, um Dich vor der Wahrheit Blind zu machen......"

:D


Aber auch ein zwiedimensionales Array ist eine Matrix.
Kalka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Di 05.11.02 21:40 
also Matrix = Array? Und wo liegt da der unterschied (sonstwürde man doch immer array sagen?!)

cu Kalka
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 06.11.02 01:01 
Ist nur eine andere Bezeichnung.

Array im Delphi kann auch eine Dimension oder zwei oder drei oder mehr haben (a: array[0..10,0..10,0..10,0..10] of Byte). Matrix ist für mich immer zweidimensional.

Ist meine Definition. Kann sein, daß sie auch falsch ist.
Kalka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mi 06.11.02 15:42 
aso...und ne matrix ist z.B. auch die Welt? also sie besteht auds ner Matrix (auch wegen dem x und y)

cu Kalka
SteaLth
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 06.11.02 15:50 
Also eine Matrix ist eine rechteckige Anordnung von Zahlen, besteht also aus Zahlen, die in Reihen und Spalten eingeteilt sind. Ein Vektor ist ein "Spezialfall" einer Matrix mit nur ein Zeile bzw. Spalte.
In Delphi ist das ganze in Arrays realisiert. Ein einfaches Array[0..x] gleicht einem Vektor. Ein zweidimensionales Array[0..x,0..y] ist eine Matrix(wie Popov schon sagte), wobei die x-Werte den Zeilen und die y-Werte den Spalten der Matrix entsprechen. 3-dimensionale Arrays werden als Cubes bezeichnet...und höhere Dimensionen sprengen das Vorstellungsvermögen(zumindest meins 8) )

PS: Glaub nicht alles was du im Film siehst... :wink:

(07.11.02 09:15 Tino) Signatur entfernt. Siehe Richtlinien.
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Mi 06.11.02 20:51 
"Die" Matrix, also die, die du oben ansprachst, besteht normalerweise (zumindest in DirectX Graphics) in Wirklichkeit aus drei Matrizen, nämlich der Weltmatrix, der Ansichtsmatrix und der Projektionsmatrix. Wenn man einen Punkt (einen Vektor) mit einer entsprechenden Matrix multipliziert, kann man ihn von einem Koordinatensystem in ein anderes umrechnen.

In 3D-Programmierung fängt alles mit den Weltkoordinaten an. Wenn du ein 3D-Modell speicherst, wird es um den Ursprung angeordnet. Was aber, wenn du dein Modell nicht im Ursprung rendern willst? Genau, dann verschiebst du die Welt bzw. den Ursprung. Das geht mit einer Translations- (Verschiebungs-) Matrix. In OpenGL kannst du diese mit glTranslate() beeinflussen. Ein Punkt, der mit dieser Matrix multipliziert wird, wird entsprechend verschoben. Weiterhin gibt es Rotations- und Skalierungsmatrizen, denn du willst dein 3D-Modell ja nicht immer so orientiert und so groß anzeigen, wie du es modelliert hast.

Jeder Punkt wird also zuerst mit der Weltmatrix multipliziert. Dann wird er mit der Ansichtsmatrix multipliziert, damit du den Punkt von der Kameraposition aus renderst und nicht vom Ursprung aus. Und anschließend erfolgt eine Multiplikation mit der Projektionsmatrix. Diese sorgt dafür, dass das perspektivische Bild auf dem zweidimensionalen Bildschirm abgebildet (projizizert) werden kann.

So, vielleicht hast du jetzt ein bisserl die Bedeutung von Matrizen in der 3D-Programmierung verstanden.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
Kalka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Do 07.11.02 15:29 
also sowie...Matrix = Koordinaten System?

cu Kalka
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Do 07.11.02 16:06 
Nein.

(Punkt in einem Koordinatensystem) * (Umrechnungsmatrix) = (Punkt in einem anderen Koordinatensystem)

zumindest sinngemäß.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
Bountyhunter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 08.11.02 16:29 
Titel: "auf 0 stellen"
also mit dem befehl

glLoadIdentity;

bist du ganz auf (0,0,0)
mfg
Bountyhunter
Mr_T
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73

Win XP, Fedora Core RC 1

BeitragVerfasst: Sa 09.11.02 12:30 
Hmm ... da du die ganze Zeit Open Gl - Befehle angibst glaube ich, das du diese auch meinst....

In Open Gl könnte man die Matritzen tatsächlig mit einer Art Koordinaten-Systemen vergleichen.... grob zumindest (ich weiß, dass das Mathematisch nicht ganz korrekt ist .... an sich werden die Koordinaten der Objekte mit der Matrix multipliziert....) ... Mit der Matriver verschiebt, dreht und Skaliert man Objekte. In Open Gl gibt es viele viele Matrizen ... Beispiele sind die Welt - Matrix, die Textur - Matrix (für Texturanimationen) oder auch die Selection Matrix (Objekte selektieren) , uvm.....
Im Gegensatz gibt es in Open GL aber keine View - Matrix.....

Ich hoffe, das reicht als Definition *grübel*