Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

27.01.2004, 21:59

Matrizen

hallo ersteinmal zusammen,

zur zeit lese dich das buch mit großen spaß und habe es auch bis zu den vektoren verstand - auch das mit der hesse-form. leider verstehe ich das noch nciht so granz mit der matrix/matrizen :-(
kennt jemand von euch eine seite wo matrizen erläutert werden oder wäre jemand bereit mir etwas nachhilfe zu geben

in größter hoffnung
bitte bitte schreib jemand zurück
der dude
;-)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

27.01.2004, 22:07

Google hilft:
http://miss.wu-wien.ac.at/~leydold/MOK/HTML/node10.html
http://www.fto.de/fthp/hschaefer/hm1/node85.html
http://www.psychologie.uni-freiburg.de/signatures/leonhart/skript/node211.html (Man beachte: eine Psychologie-Uni ;))
http://rosewood.fernuni-hagen.de/MIB/HTML/node63.html

Anonymous

unregistriert

3

27.01.2004, 22:21

Vielen vielen dank

;) ;) ;) :P :P :P :) :)

4

18.03.2004, 14:19

Hi David,
mich interessiert hierbei einmal, wie du auf die Matrix in "tbMatrixRotationAxis()" in "tbMatrix.cpp" kamst, hast du mal einen weiterführenden Link?
nofi

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

5

18.03.2004, 16:17

Hier eine englische Seite, aber für Spiele/Flusi Programmier:
http://www.sjbaker.org/steve/omniv/matrices_can_be_your_friends.html

6

19.05.2004, 17:55

Hallo
Ich habe noch nicht deinen Link gelesen, habe aber selbst eine Lösung gefunden:
Man bette das linkshändige Koordinatensystem (KS) wie folgt in eine Kugel mit Radius 1 ein:
Kugelmittelpunkt = Ursprung = O
z-Achse : ON N = Nordpol
x-Achse : OX X = Schnittpunkt Nullmerdian (Länge 0) mit Äquator
y-Achse : OY Y= Schnittpunkt 90 Grad Westlicher Länge mit Äquator

Nun sei der Winkel von z-Achse bis vAxis (normiert) mit Theta benannt,
der Winkel von der x-Achse bis zur Projektion vAxis auf die x-y-Ebene (=Äquatorebene) mit Phi
Somit schreibt sich die Drehachse vAxis in Kugelkoordinaten

vAxis = ( sin Theta cos Phi, sin Theta sin Phi, cos Theta ) (Gl. 1)

Man dreht nun Modell und Drehachse
um z-Achse um -Phi bis Drehachse in x-z-Ebene dann
um y-Achse um -Theta bis Drehachse parallel z-Achse
dreht sie um gewünschten Winkel f um z-Achse
um y-Achse um Theta
um z-Achse um Phi bis Drehachse wieder in ursprüngliche Richtung zeigt.

Die Matrizen, die diese Drehungen beschreiben sind in "tbMatrixRotationY()" und "tbMatrixRotationZ()" beschrieben

Somit braucht nur noch (umfangreiche Schreibarbeit)

M=
tbMatrixRotationZ(-Phi)tbMatrixRotationY(-Theta)tbMatrixRotationZ(f)tbMatrixRotationY(Theta)tbMatrixRotationZ(Phi)

unter Verwendung von (Gl. 1) und

sin² w + cos² w = 1 für jeden Winkel w

zu vereinfachen und man bekommt tbMatrixRotationAxis(vAxis,f)!

Hinweis:

Man bekommt im Ergebnis eine Matrix die mit Return zurückgeben wird, das - in

Quellcode

1
2
float fSin(sinf(-f));
float fCos(cosf(-f));


korregiert nur, daß im return Statement Zeilen und Spalten vertauscht sind, gegenüber obigen M!
nofi

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

7

19.05.2004, 19:42

Gute Infos zu Matrizen:
http://www.zfx.info/Tutorials.php?ID=6
http://www.zfx.info/Tutorials.php?ID=7

und die restlichen ;)

LGs0pHT

Frischling

Beiträge: 19

Wohnort: Hamburg, Germany

  • Private Nachricht senden

8

06.08.2004, 16:49

Hmpf, sry dass ich den thread nochmal ausgrabe, die komplexen matrizen (projection etc.) sind ja in der dx9 doku ziemlich genau erklärt (die herleitung).

Fuckt ist, dass ich gestern in der DX9 Doku auch diverse Funktionen gefunden habe, die einem das selber schreiben im Grunde abnehmen. z.B. D3DXMatrixRotationX etc., natürlich nehmen die die D3DMATRIX aber da hatte David ja die Idee mit dem Union und dem einfachen CastingOperator.

Da man bei diesen Funktionen eh nicht sehr viel falsch machen kann, könnte man doch z.B. mit einem Makro einfach auf die D3DX Funktionen verlinken und die übergebene selbstgecodete Matrix in dem Makro dann eben converten.

Sind die Funktionen von MS wirklich so schlecht oder langsam dass man lieber selbst welche codet, oder hat die noch keiner gefunden (was ich mir wirklich nicht vorstellen kann)

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

9

07.08.2004, 01:56

Zitat von »"LGs0pHT"«

natürlich nehmen die die D3DMATRIX aber da hatte David ja die Idee mit dem Union und dem einfachen CastingOperator.


Issn alter Hut noch aus C-Zeiten vor Davids entstehung ;D;D;D jedoch nicht Standardkomfort. nebenbei: die benutzen die D3DXMATRIX

Zitat von »"LGs0pHT"«

Sind die Funktionen von MS wirklich so schlecht oder langsam dass man lieber selbst welche codet, oder hat die noch keiner gefunden (was ich mir wirklich nicht vorstellen kann)


Langsam? Langsam?? Das Extension Packet von Direct3D ist das schnellste welches es auf dem Markt gibt. Dort arbeiten Hohe Profis der CPU bastler (AMD und Intel) extrem nah mit Microsoft zusammen um diese Bibliothek zu schreiben im Top-Secret bereich. Also langsam ist da nichts ;)

Es gibt nur 1 Funktion die überflüssig ist, nämlich die Translate funktion. Es ist natürlich schneller die werte der matrix _41, _42, _43 per Zuweisungsoperator zu ändern als mit der D3DX Funktion, jedoch mit Rotation, Quaternions und co, siehts wieder anders aus. Vorallem mit Mulitplikationen von Matrizen! Eine eigene Funktion in SIMD ist nicht so schnell wie die von D3DX, eben weil dort Profis arbeiten die natürlich Firmeninternes wissen haben das nicht aussickern darf an die Konkurenzfirmen.

- Patrick

LGs0pHT

Frischling

Beiträge: 19

Wohnort: Hamburg, Germany

  • Private Nachricht senden

10

08.08.2004, 14:33

Dann wurde das in der TriBase Engine also mehr zu Lernzwecken integriert ??

Werbeanzeige