Vektoren bzw. Matrizen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Timo

Betreff: Vektoren bzw. Matrizen

BeitragMo, Feb 21, 2005 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich beschäftige mich zur Zeit mit Vektoren und Matrizen.
Allerdings versteh ich (gerade bei den Matrizen) nocht nicht so ganz, warum man für den 3dimensionalen Raum 4x4 matrizen benutzt, bzw. wofür die einzelnen Felder stehen.
Ich hab es so verstanden, dass die Spaltenvektoren für x,y und z stehen, (also bei ner 3x3 matrix), aber warum benötigen diese jeweils 3 Felder?
user posted image

stfighter01

BeitragMo, Feb 21, 2005 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
um es einfach auszudrücken.

du hast 3 freiheitsgrade für die rotation ( x,y,u. z achse)
mit einem einzigen vektor kannst du nur einen freiheitsgrad bestimmen.
deshalb benötigst zu 3 stück davon (in matrizenform zusammengefasst)
um die genaue ausrichtung deines objekts zu erfassen.

mfg stfighter
Denken hilft!
 

Timo

BeitragMo, Feb 21, 2005 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, dafür sind dann die "Spaltenvektoren", oder? aber wieso besteht jede Spalte wiederum aus 3 - Feldern?

skey-z

BeitragMo, Feb 21, 2005 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ein Vektor besteht aus 3 angaben, dem X-Wert, dem Y-Wert und dem Z-Wert.

mit 1 oder 2 Punkten würdest du nichts auf dem Bildschirm sehen, also müssen es 3 Vektoren sein, um ein Dreieck (Polygon) darzustellen)

Die Spalten sind also die koordinaten der einzelnen Punkte und 3 felder deshalb, weil man diese für ein Polygon braucht.
 

David

BeitragMo, Feb 21, 2005 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

skey-z hat Folgendes geschrieben:
ein Vektor besteht aus 3 angaben, dem X-Wert, dem Y-Wert und dem Z-Wert.

mit 1 oder 2 Punkten würdest du nichts auf dem Bildschirm sehen, also müssen es 3 Vektoren sein, um ein Dreieck (Polygon) darzustellen)

Die Spalten sind also die koordinaten der einzelnen Punkte und 3 felder deshalb, weil man diese für ein Polygon braucht.


Glaube das ist nich so ganz das was Time wissen will. Achja, ein Dreieck ist ein Dreieck und kein Polygon. Razz

grüße
 

Timo

BeitragMo, Feb 21, 2005 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@skey-z: eine Matrize mulitpliziert man anschließend mit jedem benötigten Punkt eines Raumes, also man multipliziert noch einen Vektor mit dieser Matrize. Die Polygone haben hierbei noch nichts zu suchen Wink aber trotzdem Danke! Smile

BladeRunner

Moderator

BeitragDi, Feb 22, 2005 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Achja, ein Dreieck ist ein Dreieck und kein Polygon.


Das Dreieck ist das kleinste Polygon.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

David

BeitragDi, Feb 22, 2005 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ya, hast recht. Wenn man's genau nimmt! Wink

grüße

skey-z

BeitragDi, Feb 22, 2005 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich wusste doch, dass man hier noh was lernen kann^^

hab selber noch niht so die ahnung von dieser art mathematik, hatte bisher nur das vergügen mit Vektoren und habe dann wohl falsch kombiniert, also sorr für den geistigen schwachsinn.

Vertex

BeitragDi, Feb 22, 2005 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Matrix ist eine eindeutige Abbildungsvorschrift.

http://blitzbase.de/lexikon/matrix.htm
x_neu=(x*11) + (y*21) + (z*31) + 41
y_neu=(x*12) + (y*22) + (z*32) + 42
z_neu=(x*13) + (y*23) + (z*33) + 43

Die letzte Zeile der Matrix verschiebt den Punk X, Y, Z.

Die letzte Spalte der Matrix hat keine Auswirkungen auf einen 3D Vektor.

Deswegen wird auch z. B. klar, warum eine Transformationsmatrix so aufgebaut ist. 41, 42 und 43 verschieben den Punkt. 11, 22 und 33 sorgen dafür, das die aktuellen X, Y und Z Werte erhalten bleiben, damit sie zu 41, 42 und 43 dazu addiert werden können. Würde man diese ebenfalls auf 0 setzen, so würde man den Vektor eine direkte Position zuweisen und nicht verschieben.

Das selbe gilt für die Skalierung. Hier sorgen 11, 22 und 33 dafür, das sie mit den entsprechenden Faktor multipliziert werden. Ist 11 = 0.5 und X = 12 dann ist X_Neu = 6.

mfg olli
vertex.dreamfall.at | GitHub
 

Timo

BeitragDi, Feb 22, 2005 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Vertex, das bringt mich schon mal weiter! Smile

Aber eine Frage noch: Wieso benutzt man 4x4 Matrizen für den 3D-Raum und nicht 3x3? Wie du ja gerade sagtest, verschieben 41,42 und 43 den Punkt. Aber wofür sind 14,24,34, bwz. 44?

Vertex

BeitragDi, Feb 22, 2005 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Das wäre dann für einen 4D Vektor mit W Achse. Frage mich jedoch nicht, für was die 4. Dimension sein soll(Es gibt Dinge im Leben, die muss man nicht wissen Wink Smile )

x_neu=(x*11) + (y*21) + (z*31) + (w*41)
y_neu=(x*12) + (y*22) + (z*32) + (w*42)
z_neu=(x*13) + (y*23) + (z*33) + (w*43)
w_neu=(x*13) + (y*23) + (z*33) + (w*44)

So denke ich mal, dürfte dann der 4D Vektor berechnet werden.

4D Vektoren werden glaube bei EulerQuads verwendet, die für die Rotation zuständig sind. Muss mich nochmal damit befassen, aber ich glaube, dass diese Rotationsmethode "fehlerfrei" abläuft.

Hatte damals eine 3D Wireframe Engine(Softwarerendering) auf Basis von Matrizen und Vektoren geschrieben. Sobald ich um 2 Achsen gleichzeitig gedreht hatte(2 Rotationsmatrizen miteinander multipliziert), war das Objekt manchmal gestaucht manchmal gestreckt.
( http://vertex.art-fx.org/3D/3DEngine.zip bei Interesse)

mfg olli
vertex.dreamfall.at | GitHub
 

Timo

BeitragDi, Feb 22, 2005 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
oh ja, kenn ich schon, hab ich genauestens studiert Wink
aber dort benutzt du auch ne 4x4 Matrix. Hast du sie einfach benutzt ohne zu wissen wie sie funzt? Very Happy
Naja sowas mach ich gerade (also benutzen, ohne zu wissen wie's funzt)... also für meine Facharbeit muss ich eine engine in BB(2D) und eine in Delphi schreiben und sie miteinander vergleichen. Beide laufen schon einwandfrei, nur muss ich ja auch erklären, warum das so ist *gg*. Ach ich bin am Verzweifeln...

Vertex

BeitragDi, Feb 22, 2005 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe 4x4 Matrizen benutzt, da die Transformation eben nur über den 4. Zeilenvektor der Matrix abläuft. Jetzt kann natürlich einer behaupten, das man dann eben 3x4 Matrizen verwendne kann, jedoch macht sich das mal wieder schlecht bei Determinanten-Berechnung. Siehe dazu: http://vertex.art-fx.org/Basic...minant.htm

Wenn du dich mal bei den Matrixfunktionen umsiehst, dann wirste sehen, das vieles eine quadratische Matrix benötigt.

Quadratisch, praktisch, gut halt Smile
mfg olli
vertex.dreamfall.at | GitHub
 

Timo

BeitragDi, Feb 22, 2005 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, vielen Dank Vertex, hast mich auf jeden Fall weitergebracht Smile

D2006

Administrator

BeitragDi, Feb 22, 2005 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Vertex hat Folgendes geschrieben:
für was die 4. Dimension sein soll


Die Zeit. Ohne eine Diskussion auszulösen ein Filmtipp:
Cube 2 - Hypercube

Da gibts 4 dimensionale Würfel

MfG
D2006
 

Timo

BeitragMi, Feb 23, 2005 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Zeit benötigt man wohl kaum zur Berechnung der Positionen von Vertices... Wink

stfighter01

BeitragDo, Feb 24, 2005 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht schon, in "Prince of Persia" Laughing Laughing Laughing
Denken hilft!
 

Timo

BeitragDo, Feb 24, 2005 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
oh ja ^^

matte

Betreff: 4.Dimension

BeitragFr, Feb 25, 2005 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits,

Ich bin neu hier und möchte mal den Begriff Dimensionen etwas entschleiern.
Man darf es sich mit den Dimensionen vorstellen nicht so schwer machen. Letztendlich sind Dimensionen nur voneinander unabhängige Größen. Nimmt man zu den 3 Raumkoordinaten noch die Zeit hinzu hat man schon vier Dimensionen. Hat des Objekt im Raum beispielsweise noch eine bestimmte Farbe (die natürlich nicht von Zeit und Ort abhängt) sind wir schon bei fünf Dimensionen. Das Spielchen kann man endlos weitertreiben und kommt zu dem Entschluss das Dimensionen nichts weiter als Zustände des Objekts sind.
Diese Zustände kann ich mit Gleichungsystemen transformieren. Da es aber den Mathematikern zu viel Schreibaufwand war jedesmal Unmengen von Gleichungen zu schreiben, haben sie die Matrizen erfunden. Das ist schon alles. ...

Entschuldigt, ich wollte nicht klugscheißern...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group