Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Vektor um Achse drehen (https://www.delphipraxis.net/154807-vektor-um-achse-drehen.html)

xZise 26. Sep 2010 13:37

Vektor um Achse drehen
 
Moin,
ich habe einen Vektor, der auf eine Spielfläche schaut (so im OpenTTD stil) und der soll jetzt gedreht werden, dass man die Objekte von links/rechts/hinten anschauen kann. Also erst mal nur um die senkrechte Achse. Als Stufe zwei wäre cool, wenn es auch um die "Querachse". Also das man von oben drauf schauen kann, oder quasi auf "Bodenlevel" reingucken kann.

MfG
Fabian

mkinzler 26. Sep 2010 13:57

AW: Vektor um Achse drehen
 
Drehen um X-Achse:
Delphi-Quellcode:
x2 := x;
y2 := y * cos( <Winkel>) - z * sin( <Winkel>);
z2 := y * sin( <Winkel>) - z * cos( <Winkel>);
Drehen um Y-Achse:
Delphi-Quellcode:
x2 := x * cos( <Winkel>) + z * sin( <Winkel>);
y2 := y;
z2 := x * - sin( <Winkel>) + z * cos( <Winkel>);
Drehen um Z-Achse:
Delphi-Quellcode:
x2 := x * cos( <Winkel>) - y * sin( <Winkel>);
y2 := y * sin( <Winkel>) + z * cos( <Winkel>);
z2 := z;
Oder man verwendet eine Transformationsmatrix

xZise 26. Sep 2010 14:49

AW: Vektor um Achse drehen
 
Hmm,
gut soweit für den Anfang ^^ aber bis auf die Drehung um die Querachse läuft das gerade irgendwie nicht. Dazu musste ich allerdings die Subtraktion zu der X-Achse in eine Addition ändern.

Was noch fehlt ist eben, dass sich die Kamera um den fixierten Punkt dreht.

MfG
Fabian

Aphton 26. Sep 2010 15:08

AW: Vektor um Achse drehen
 
Ist jetzt keine direkte Antwort auf deine Frage, aber das hier wird dir bestimmt bei deiner Lösungssuche helfen...

mkinzler 26. Sep 2010 15:09

AW: Vektor um Achse drehen
 
Mache den fixierten Punkt zum Ursprung ( Verschieben der anderen Punkte)

xZise 27. Sep 2010 00:37

AW: Vektor um Achse drehen
 
Moin,
tut mir leid, aber irgendwie blicke ich da nicht ganz durch. Ich habe einen Vektor der zeigt dahin wo die Kamera ist. Und dann habe ich einen Vektor der zeigt in Blickrichtung.

Wenn ich jetzt nach links drehe, dann muss zum einem die Blickrichtung geändert werden (im Stil von mkinzlers Code, wobei da irgendwas noch fehlt bei mir) und der Aufpunktsvektor oder wie das Ding heißt.

Ich habe mir das Tutorial durchgelesen, aber bin nicht so richtig weiter gekommen :(

MfG
Fabian


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz