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

1

29.10.2011, 11:36

Rechung Matrix zu Winkel ?

Hallo
Ich habe eine Viereck was mit dem TriBase Engine Befehl : tbMatrixRotationY(10.0f); Nun meine Frage ich brauche für eine Rechnung den Winkel wie wird der gerechnet?
Also stellt sich jeder mal ein Koordinatensystem XY vor. Auf 0|0 Ist mein Würfel der Gedreht wurde und so stehen bleibt. Nun möchte ich den Winkel haben wie weit er gedreht wurde! Und dann mit dem Winkel den Würfel wieder zurückdrehen! Also nicht eine Matrix sondern ein float wert wo der Winkel drin ist wenn ich den Würfel drehe. Ist so was möglich?
Ist wichtig ;)
Danke
MfG

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

29.10.2011, 14:31

Was willst du denn überhaupt? Bewegst du dich im 2D Bereich oder im 3D Bereich? Rotierst du den Würfel "nur" um die Y-Achse und sonst keine weitere?

Wenn du den Würfel nur wieder zurückdrehen willst kannst du auch einfach die Inverse deiner Rotationsmatrix berechnen... Übrigens: sollte dies Matrix orthogonal sein (z.B. eine Rotationsmatrix) dann ist die Inverse gleich die Transponierte Matrix.
@D13_Dreinig

3

29.10.2011, 14:55

Ich bewege mich im 3D bereich allersdings habe ich es für das verständnis in 2D hingeschrieben. Also das was ich will ist:
Ich rotiere den Würfel nur um die Y Achse. Nun will ich die Grad zahl haben wie weit ich ihn gedreht habe. Und für einen Winkel brauch man ja 2 Schenkel, oder? Doch glaub schon :D
der erste Schenkel ist in Y richtung die Y Position des Würfels also, Wenn der Würfel ( 10|5 ) hat, dann ist der erste Schenkel die Y achse und 10 nach rechts also quasie ein virtuelle Y achse. Dann gegn den Uhrzeigersinn den winkel bis zur Blickrichtung ( 2.Scheitel ). Die Blickichtung ist einfach nur... Es ist ein Punkt auf dem Würfel definiert der das Auge darstellt. Und dann Auge guckt in eine Richtung und wenn man diese richtung als Linie betrachtet hat man den 2. Schenkel.
Hier ein Bild für 2D:
Würfel ist der Punkt auf (1,5|2) die Linie ist die blickrichtung des Würfels. Und die gestrichelte Linie ist die Virtuelle Y Achse. Alpha ist der Winkel den ich berechnen will, um dann den Würfel um Alpha grad rückwärts zu drehen.
»schreib_muffel« hat folgendes Bild angehängt:
  • Picture0005.jpg

4

29.10.2011, 15:33

OK Ich glaube ich erkläre mal mein Vorhaben:
Der würfel guckt irgendwo hin. Dann kommt die Kamera in den Kreis das der Würfel was macht. Der kreis mittelpunkt ist der Würfel. So wenn nun die Kamera auf der Kreis linie ist soll sich der Würfel zu ihm hin drehen. Die Formel habe ich schon brauche aber noch den Winkel dass es geht.
Mein Ansatzt was halt ein Dreick zu berechnen ( 2 Punkt hat man Spieler un Würfel und der Dritte wird so berechnet: Würfel.x + Radius * sin( Der winkel den ich berechen will )
und Y: Würfel.y + Radius * cos( Der winkel den ich berechen will )
wenn ich das habe dann habe ich 2 Seitenlängen des Dreicks. Die 3. berechne ich mit dem Phytagoras und den zwei anderen Punkten. Wenn ich dann die letzte Seite habe kann ich die Formel: asin( (a/2) / Radius ) * 2. a ist die seite die berechnet wurde. und Radius entspricht c.
Also quasie ne KI für eine Würfel ;)
Oder geht das auch anderst?
Danke

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

29.10.2011, 15:55

Da ich grad vorhin schonmal praktisch das gleiche erklärt hab, verlinke mich einfach mal selbst:
Gegner soll Kamera anschauen

6

29.10.2011, 16:06

Das habe ich mir schon durchgelesen eigentlich brauche ich das gleiche wie er. Nur ich habe schon ne Formale :D
Allerdings kapier ich das was du geschreiben hast echt nicht. Ich habe es wirklich schon extrem versucht es zu verstehen geht aber nicht.
Also eine Erklärung würde mir wirklich sehr gut helfen;)
Danke
EDIT: Hier mal mein lösungsansatzt die Linie nach unten ( kürzere ) ist die Blickrichtung des Würfels.
C = radius A = wird berechnet Alpha der Winkel wie weit sich der Würfel drehen muss. 0|0 ist der Würfel und Player die Kamera.
»schreib_muffel« hat folgendes Bild angehängt:
  • Picture0005.jpg

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »schreib_muffel« (29.10.2011, 16:12)


Werbeanzeige