JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e72b7f8a5a7da7fbede08dc4bb741990Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

3D Mathematik
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 31.07.2002, 15:37    Titel: 3D Mathematik Antworten mit Zitat

Hi,
ich hab Probleme mit der 3D Mathematik und hab gehofft ihr könnt mir helfen...
Und zwar bei den Planes. Ich weiß, wie ich mir ne Plane vorstellen kann und was das ist usw. Ich weiß aber nicht genau was ich mit der Formel für Planes anfangen soll, was sie überhaupt heißt, wie sie abgeleitet wurde,.......
Formel:
"
ax+by+cz+d=0
"
a,b,z repräsentieren einen Schnittpunkt auf der Linie des Planes (was ist ein Schnittpunkt auf der Linie des Planes ?)
d ist dessen Entfernung vom Koordinatenursprung
x,y,z repräsentiren jeden beliebigen Punkt in der Plane

Kann mir das bitte jemand erklären???

Der Schnittpunkt wird auch als Normal bezeichnet und und kann sich in beide Richtungen von dem Plane wegbewegen.
Versteh ich genauso wenig.

BITTE ERKLÄRT MIR DAS IRGENDEINER!!!

VIELEN DANK!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 31.07.2002, 18:11    Titel: Antworten mit Zitat

Das ist schon "wesentlich" hohere Mathematik.

Die Formel ist ungefär das, was bei einer Quadratischen Funktion die Lösungsformal -p/2 +/- Wurzel(p/4 * q^2), nur bezogen auf e Vektoren, die eine Ebene genau definieren.
Wie sie genau abgeleitet wurde, was die einzelnen Komponenten bedeuten usw. kann ich dir auf die schnelle nicht sagen, aber die Theorie dazu findet man unter anderem auch in der DXSDK...

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 31.07.2002, 18:50    Titel: Antworten mit Zitat

Ob das höhere Mathematik ist oder nicht, in meinem Buch steht drin, dass das die Grundlagen der 3D-Mathematik seien... und wenn ich weitermachen will (und das will ich!!!) muss ich das Zeug irgendwie verstehen.
Die Herleitung ist ja eigentlich nicht wichtig, aber ich will gern wissen wozu sie verwendet wird, was ein Schnittpunkt auf der Linie des Planes ist, was es mit diesem Normal auf sich hat (was es bezwecken soll, etc.) und so weiter...

PS:
Ich gehe (nach den Ferien) erst in die 10. Klasse und deine Gleichung hat mir leider auch nicht weitergeholfen Confused

PPS:
Wo ist die Dokumentation zum SDK versteckt???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 31.07.2002, 19:18    Titel: Antworten mit Zitat

DX-Doku:
Start->Programme->Microsoft DirectX 8 SDK->DirectX Dokumentation(Visual C++)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 31.07.2002, 23:04    Titel: Antworten mit Zitat

Die Formel, die ich aufgeschrieben habe, ist doch nur die Lösungsformel einer quadratischen Gleichung. Das Ding hast du garantiert schon in der 8. Klasse gehabt, da bin ich mir sicher, wenn nicht sogar schon eher.
Aber dein anderer Einwand, daß das die Grundlagen der 3D-Mathematik seien, mag zwar richtig sein, aber Grundlagen in 3D-Mathematik sind trotsdem höhere Mathematik. Nur zur Info: Man muß mit 4-Dimensionalen Vektoren sogenannte Matrizenberechnungen anstellen. Alle 3D-Operationen lassen sich auf 4D-Matrizen abbilden. Dazu gehören: Drehen, Verschieben, Skalieren, Kamera positionieren, Abbildung von 3D auf 2D, Diverse besondere Darstellungsmöglichkeiten, wie Parrallelprojektion, Isometrische Perspektive usw. Deine genannte Formel ist ein kleiner Teil, um so eine 4D-Matrix auszurechnen.
Der Vorteil der 4D-Matrizen ist, das sich mehrere Rechenschritte in einer Matriz zusammenfassen lassen, also wenn du z.B. ein Objekt erst Skalieren, dann drehen, dann verschieben willst, kannst du alle 5 4D-Matrizen in eine reinhauen und mußt am Ende nur noch wissen, wie das Ergebnis abgelesen werden muss. (5 Matrizen, weil Kameraposition und 3D auf 2D Projektion auch noch 2 Martizen sind.)
Dieses Wissen ist aber nur dann notwendig, wenn du selbst 3D-Routinen entwerfen willst. Da du aber Direct3D-Routinen verwenden willst, sind die Dinge für dich transparent in DirectX eingebaut und können als Vorhanden gelten. Maximal im Bereich von Kollisionsabfragen muß man noch selbst zur Mathematik greifen, um z.B. die Entfernung eines Punktes im Raum von einer Ebene im Raum zu bestimmen.
Dafür gibt es vorgefertigte Formeln (in jedem besseren Tafelwerk), in die man nur noch einsetzen muss. (Ablesen sollte man dann aber auch noch können). Da wären z.B. Formel, zur Bestimmung des Durchschlagpunktes von einer Linie durch eine Ebene, die Bestimmung der Geraden, in der sich 2 Ebenen schneiden, die Bestimmung eines Punktes, in der sich 3 Ebenen schneiden... Alles ziemlich trocken und sicherlich nicht trivial.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 01.08.2002, 08:43    Titel: Antworten mit Zitat

Ist der Theorieteil wirklich so unnötig? Soll ich ihn weglassen und mit dem Direct3D Teil anfangen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 01.08.2002, 11:06    Titel: Antworten mit Zitat

Du kannst ja erst mal anfangen, und wenn du dann wirklich etwas brauchst, schaust du in entsprechender Literatur nach. Deine 1. 3D-Programme werden sicherlich noch keine aufwendigen Kollisionsberechnungen benötigen, von 100000 Polygon-Indoor-Leveln mal ganz zu schweigen. Du wirst dich erst mal freuen, wenn du einen Drehenden Würfel programmieren kannst, und ihn dann auch noch mit einer Textur überziehen kannst...

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 12:15    Titel: Antworten mit Zitat

Hi, um das Thema nochmal aufzugreifen:

ich hab Probleme mit der Matrizenrechnung. Und zwar gibt der Autor meines Buches 3 Matrizen (1 pro Achse) zum rotieren eines Prunktes um die jeweilige Achse an.

Da sieht die Erste zum Beispiel so aus (um X-Achse rotieren):

1|0|0
0|cos(#)|sin(#) // "#" ist so ne Art 0 mit ner horizontalen welligen Linie in der Mitte.
0|-sin(#)|cos(#)

Mein Problem besteht jetzt darin, dass ich nicht weiß, was "cos(#)" und "sin(#)" heisen. Ich hab zwar mal was von Kosinus gehört, weiß aber nicht was das ist/heist .

Falls es euch hilft, diese Matrize multipliziert man mit man dann mit einer 1x3 Matrize für die x,y,z Werte des zu Rotierenden Punktes:

x
y
z

Mein Mathe-Lehrer hat das leider nicht verstanden, aber da hier Leiter superintelligente 3D-Mathematiker sind (*schleim*) hoffe ich, dass sie mir in ihrer (fast-) unendlichen Weisheit (*superschleim*) helfen können!

Cu,
VH (*tropf*,*tropf*)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 14:16    Titel: Antworten mit Zitat

sin(winkel) = gegenkathete / hypothenuse
cos(winkel) = ankathete / hypothenuse

dann gibts noch den tangens:

tan(winkel) = gegenkathete / ankathete

mit den funktionen kannst du einen winkel oder die katheten in einem dreieck ausrechnen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 14:33    Titel: Antworten mit Zitat

Wie sind die Funktionen (sind doch mathematische Funktionen, so wie F(x), nur für Winkel?) definiert?

Also in meinem Buch gibts die Matrize für die Rotation eines Punktes um die Z-Achse, die sieht so aus:

cos(Winkel) | sin(Winkel) | 0
-sin(Winkel)| cos(Winkel)| 0
0 | 0 | 1

Und dann gibts da ein Beispiel der Matrize mit einer Rotation des Punkte mit einem Winkel von 45° :

0.707 | 0.707 | 0
-0.707| 0.707 | 0
0 | 0 | 1

Was für ein Rechenvorgang wird bei den Funktionen cos(Winkel) und sin(Winkel) ausgeführt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 14:54    Titel: Antworten mit Zitat

das ist doch eingentlich unwichtig, wie bei sin und cos usw berechnet wird.
wichtig ist doch, was man damit machen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 15:17    Titel: Antworten mit Zitat

Unwichtig ist das nicht. Razz

Der Sinus eines Winkels ist die Y-Koordinate des Schnittpunktes des freien Schenkels eines Winkels mit dem Einheitskreis(Ein Kreist mit dem Radius 1). Der Kosinus ist dann dementsprechen die X-Koordinate.
"Was ist ein freier Schenkel" - der freie Schenkel des Winkels ist frei beweglich, der andere liegt genau auf der X-Achse(y = 0).

So kann man z.B. Richtungsvektoren erzeugen:
Code:

int speed_x = cos(WINKEL) * speed;
int speed_y = sin(WINKEL) * speed;


Wichtig ist noch, dass die Winkel im Bogenmaß anzugeben sind.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 15:31    Titel: Antworten mit Zitat

hm, meinst du jetzt, wie die funktion von sinus und cosionus ist oder was man damit ausrechnet?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 15:51    Titel: Antworten mit Zitat

Das obere ist die Definition von Sinus und Kosinus und der Code ist ein Anwendungsbeispiel.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 23.09.2002, 18:29    Titel: Antworten mit Zitat

@ Hazel: Hast du ein Bild davon, mit dem Einheitskreis und dem ganzen Zeug? Könntest es mir auch mailen, wär echt nett! Und wenn du schon dabei bist, könntest du (oder jemand anders der es kapiert) dann mal erklären wie man von 45° auf 0,707 kommt (bei der Besispielsmatrize).

Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum