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

  • »Frankenmetropole« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Nürnberg

Beruf: FI/SI

  • Private Nachricht senden

1

18.05.2010, 12:01

Kapitel 2.2.4.4, Thema: "Rotationsmatrizen" - die Grenze meiner Mathematischen Verständnis?

Hallo Miteinander,

erstmal Danke an David Scherfgen, das Buch ist Klasse und es ist auch alles soweit super erklärt! Allerdings ist das Kapitel "Einführung in die 3D-Grafik" ein riesen Akt für mich, da es mir an den nötigen Mathematik Kenntnissen fehlt. Doch zu meiner eigenen Überraschung bin ich sehr weit gekommen, Vektoren waren super erklärt und überhaupt kein Problem - auch die Sache mit den Matrizen habe ich denke ich ganz gut verstanden .. bis jetzt :(

folgende Formel bereitet mir schon Probleme:

§x' = (x*cos \alpha+(y*(-sin \alpha))§
§y' = (x*sin \alpha)+(y*cos \alpha)§

Ich denke Sin und Cos soweit verstanden zu haben, habe ich mir erfolgreich selbst angeeignet. Allerdings kenne ich die Zeichnung eines Kreises mit Radius r wie folgt:

§x' = cos(\alpha)*radius§
§y' = sin(\alpha)*radius§

Ich verstehe nicht warum ich bei der ersten Formel, also der aus dem Buch für die x-Position Sin UND Cos sowie X UND Y Werte in Form einer Addition einbeziehen muss. Ich weiß warum ich in meiner zweiten Formel cos und sin verwende, das sehe ich anhand des Einheitskreises mit cos multipliziert mit dem Radius bekomme ich quasi die Ankathete zum Punkt und mit Sin mal radius die Gegenkathete, und mit Alpha kann ich nun bestimmen in welchem Winkel ich gerade zeichne.

Ich hoffe ihr könnt mir irgendwie auf die Sprünge helfen, ich denke ein neuer Thread war angebracht, da mein Verständnisproblem schon sehr speziell ist.

Viele liebe Grüße
Oli

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

2

18.05.2010, 14:23

Halt... du kennst die Formel für x und y

Es scheint, dass du (in der Schule) noch keine Ableitungen hattest?

x' und y' geben die Steigung an einem Punkt eines Kreises bei dem Winkel a(lpha) an...

Ist noch etwas schwierig zu verstehen ohne Ableitungen, ansonsten: Produktregel ;)

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

  • »Frankenmetropole« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Nürnberg

Beruf: FI/SI

  • Private Nachricht senden

3

18.05.2010, 14:32

Halt... du kennst die Formel für x und y

Es scheint, dass du (in der Schule) noch keine Ableitungen hattest?

x' und y' geben die Steigung an einem Punkt eines Kreises bei dem Winkel a(lpha) an...

Ist noch etwas schwierig zu verstehen ohne Ableitungen, ansonsten: Produktregel ;)

mfg CBenni::O
Ich habe mir (fast alles) selbst angeeignet, in der Schule hatte ich leider nicht mehr als Allgebra. (Bei mir war Mathe leider nach der 7ten vorbei, rest nur noch Wirtschaftsmathematik, Rechnungswesen und Co., im nachhinein muss ich sagen bereue ich das sehr da mich die 3D Programmierung doch sehr interessiert.)

Hoffnungsloser Fall?

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

4

18.05.2010, 14:34

Mit deiner unteren Formel hast du an sich vollkommen recht. Jetzt geht es nur drum, einen Punkt im Raum um einen bestimmten Winkel um den Ursprung zu drehen. Dabei ist die ursprüngliche y-Koordinate für die neue x-Koordinate durchaus von belang.

Moment ich veröffentliche mal meine Facharbeit ^^
Da ist das etwas ausführlicher erklärt und geht auch von deiner unteren Formel aus. Vielleicht hilft dir das weiter. Hatte ich ohnehin vor. Da ich sie vor etwa einem Monat korrigiert zurückgekriegt habe, sollte ich jetzt normalerweise auch keine Probleme bekommen.

@ CBenni::O
Inwieweit das jetzt mit Ableitungen zu tun hat verstehe ich nicht ganz ehrlich gesagt.

EDIT: Sodala. Das Hochladen hat nur eine Weile gedauert. Hier - im pdf auf Seite 9 unter "Rotationsmatrix"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Wümpftlbrümpftl« (18.05.2010, 14:41)


Tobiking

1x Rätselkönig

  • Private Nachricht senden

5

18.05.2010, 14:34

Vielleicht ist der Ansatz von Wikipedia verständlicher: http://de.wikipedia.org/wiki/Drehmatrix

Es geht darum das x schon um Winkel a gedreht worden ist. Was nun gesucht ist, ist die Formel um dieses x um den Winkel b weiter zu drehen. Damit kommt man bei deiner bekannten Formel auf x' = cos(a+b) und das weitere steht in Wikipedia.

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

6

18.05.2010, 14:55

@ CBenni::O
Inwieweit das jetzt mit Ableitungen zu tun hat verstehe ich nicht ganz ehrlich gesagt.

Mist... das sah so dermaßen nach Produkten, abgeleitet aus... Vermutlich kommt der Ansatz daher...

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

  • »Frankenmetropole« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Nürnberg

Beruf: FI/SI

  • Private Nachricht senden

7

18.05.2010, 15:01

EDIT: Sodala. Das Hochladen hat nur eine Weile gedauert. Hier - im pdf auf Seite 9 unter "Rotationsmatrix"
Danke! Hab mir den Abschnitt jetzt mal angesehen, allerdings stoß ich auch hier auf meine Grenzen (leider). Ich verstehe den Ansatz mit den Polarkoordinaten nicht - was ist das? Was bedeutet genau das gr. Phi? Warum wird es mit Alpha addiert? Wenn ich das richtig verstehe geht das genannte Beispiel um die drehung der Z-Achse?

Ich nehme an das R3 bedeutet 3 Dimensionen?

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

8

18.05.2010, 15:45

Oh sry, wenn ich das für dich noch komplizierter gemacht hat. Ist eine etwas andere Herangehensweise, die sich an dem bei mir in der Schule bekannten Stoff orientiert.

Die gewöhnlichen Koordinaten die man verwendet heißen "kartesische Koordinaten". Also ganz normal mit X und Y im gewohnten Koordinatensystem.
Daneben gibt es aber auch noch sog. Polarkoordinaten. Bei Polarkoordinaten hat man nicht X und Y, sondern einen Radius und einen Winkel - in der Arbeit habe ich den Radius r genannt und den Winkel Phi. So ein Koordinatensystem sieht dann so aus:

(Link)

Wie du siehst lässt sich mit einem Winkel und einen Abstand von Nullpunkt hier jeder Punkt ausdrücken.
Möchte man dort einen Punkt drehen, verändert man einfach den Winkel - das wird in meiner Arbeit einfach mal gemacht. Du siehst, in Polarkoordinaten ist die Drehung extrem leicht. Da ich erstmals die Drehung um die Z-Achse betrachte, brauche ich mich auch nur um X und Y zu kümmern.. was auch immer Z ist, es wird sich durch die Drehung nicht verändern.

Mit der zweiten Formel aus deinem Post lässt sich das ganze zurück in kartesische Koordinaten rechnen. Das hab ich dann auch gemacht mit einer Drehung um den Winkel Alpha (siehe erster Formelblock in dem Kapitel)

An dieser Stelle kommen dann die sogenannten Additionstheoreme zur Anwendung. Deren genauer Hergang hängt mit der Definition von Sinus und Kosinus zusammen.
Joa und der letzte Schritt ist, dass man mithilfe der anfänglichen Gleichungen die entstandene längere Formel wieder vereinfacht und somit gleichzeitig das ursprüngliche x und y reinbringt.
Das ganze geht für alle Achsen praktisch gleich. Nur Benennungen verändern sich.

Das mit dem R3 heißt 3 Dimensionen wie du richtig erkannt ist. Ich musste solchen mathematischen Defintionsfirelefanz leider immer mit hinschreiben, nicht verwirren lassen ^^

  • »Frankenmetropole« ist der Autor dieses Themas

Beiträge: 11

Wohnort: Nürnberg

Beruf: FI/SI

  • Private Nachricht senden

9

18.05.2010, 16:44

Wow danke für die Mühe! :)

Also so ein paar "Tritte" in die richtige Richtung brauche ich leider noch :)
Oh sry, wenn ich das für dich noch komplizierter gemacht hat. Ist eine etwas andere Herangehensweise, die sich an dem bei mir in der Schule bekannten Stoff orientiert.

Die gewöhnlichen Koordinaten die man verwendet heißen "kartesische Koordinaten". Also ganz normal mit X und Y im gewohnten Koordinatensystem.
Daneben gibt es aber auch noch sog. Polarkoordinaten. Bei Polarkoordinaten hat man nicht X und Y, sondern einen Radius und einen Winkel - in der Arbeit habe ich den Radius r genannt und den Winkel Phi. So ein Koordinatensystem sieht dann so aus:

(Link)

Wie du siehst lässt sich mit einem Winkel und einen Abstand von Nullpunkt hier jeder Punkt ausdrücken.
Möchte man dort einen Punkt drehen, verändert man einfach den Winkel - das wird in meiner Arbeit einfach mal gemacht. Du siehst, in Polarkoordinaten ist die Drehung extrem leicht. Da ich erstmals die Drehung um die Z-Achse betrachte, brauche ich mich auch nur um X und Y zu kümmern.. was auch immer Z ist, es wird sich durch die Drehung nicht verändern.

Ok, bis dahin super verständlich.
Mit der zweiten Formel aus deinem Post lässt sich das ganze zurück in kartesische Koordinaten rechnen. Das hab ich dann auch gemacht mit einer Drehung um den Winkel Alpha (siehe erster Formelblock in dem Kapitel)
warum aber muss ich das umrechnen? Muss ich doch bei meiner ersten Formel auch nicht? Was ich auch nicht ganz verstehe: Winkel Phi ist der Winkel der Rotation? Und woher kommt der Winkel Alpha? Ich hoffe Ihr und vorallem auch Wümpftlbrümpftl verstehen mein Problem :)

Liegt der Unterschied den ich nicht verstehe in der Rotation(->Formel #2 in meinem Post) statt dem "Kreisen"(->Formel #1)?

EDIT: Gibt es irgendwo vielleicht ne Gute Grafik zum Thema Rotation in 3D? ?( Ist zwar nicht so wichtig aber würde vielleicht das "Verständnis" unterstützen, möchte einfach auch Verstehen was ich da programmiere

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

10

18.05.2010, 17:19

Das Prinzip ist, dass wir so tun, als würden wir unsere zu drehenden Koordinaten erstmals in Polarkoordinaten umrechnen - dabei lassen wir das Z weg, da sich das ja nicht verändern wird. Da kriegt man dann für jede Position ein Phi (das Phi hat also noch nichts mit der Drehung zu tun) und ein r.

Wir wissen also, dass für x gilt: x = r * cos Phi
für y analog dazu: y = r* sin Phi
Würden wir das auflösen, hätten wir eine Polarkoordinate (r | Phi)
Der Witz ist natürlich, dass wir uns jetzt nicht die Mühe machen r und Phi auszurechnen - das Ganze wird ja jetzt einfach allgemein betrachtet.

Um den Punkt nun um Alpha zu drehen, muss man wenn mans ich das Polarkoordinatensystem so betrachtet einfach nur den Winkel (Phi) mit der gewünschten Drehung addieren.

Da wir aber ja am Schluss kartesische Koordinaten haben wollen, schreiben wir das einfach in unsere Umrechnungsformel oben rein
x' = r * cos (Phi + Alpha)
y' = r* sin (Phi + Alpha)
Das was folgt sind "Vereinfachungen" bei denen dann r und Phi wieder wegfällt.


Das mit den Polarkoordinaten an sich ist nur eine Denkstütze. Tatsächlich stellt man ja nie wirklich einen Punkt (Radius | Winkel) auf.
Vielmehr wird die Umrechnung der beiden Koordinatentypen gegenübergestellt. Was man da macht ist dass man sich die Umrechnung einfach mal hinschreibt und dann davon ausgehend den Polarkoordinatenwinkel ändert und die Konsequenzen verfolgt.

Hm weiß leider auch nicht wie ichs besser erklären kann..

Werbeanzeige