Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Konvention für Winkel in 2D (https://www.delphipraxis.net/157628-konvention-fuer-winkel-2d.html)

treeRunner 18. Jan 2011 22:28

Konvention für Winkel in 2D
 
Hey Leute,

kennt ihr sinnvolle Konventionen, um in einem Top-Down-2D-Game die Winkel festzulegen?

Zum Beispiel habe ich mal 0° als "oben" deklariert, 0° bis 180° ging nach rechts und 0° bis -180° ging nach links runter... im Endeffekt habe ich dafür immer mehrere if-Verschachtelungen genommen, um die atan()-Werte anzupassen, wie es mir gefiel...

Nunja, jetzt wollte ich mal fragen, wie ihr die Winkel handhabt... es würde mich freuen eure Gedanken dazu zu erfahren. :)

Viele Grüße,
treeRunner

jfheins 18. Jan 2011 22:36

AW: Konvention für Winkel in 2D
 
Nach rechts = 0 und dann im Uhrzeigersinn bis 2 Pi bzw. 360° - Vorteil: Du kannst die arctan2() Funktion nutzen.

treeRunner 18. Jan 2011 23:02

AW: Konvention für Winkel in 2D
 
Danke schonmal für die erste konkrete Konvention.

Also:
- rechts = 0°
- 0° bis 360° im Uhrzeigersinn

Sie wirft bei mir direkt wieder eine Frage auf:

Beispiel von http://olli.informatik.uni-oldenburg....html#Ref_ID69 ...

Zitat:

Die Richtung der Drehung ist abhängig vom Vorzeichen des Rotationswinkels. Wenn Du einige Winkel ausprobierst, stellst Du fest, daß bei positiven Winkeln die Punkte gegen den Uhrzeigersinn und bei negativen Winkeln die Punkte mit dem Uhrzeigersinn gedreht werden.
Das ist dann ja die andere Richtung (die von Mathematikern bevorzugt(?) wird).

Bummi 18. Jan 2011 23:12

AW: Konvention für Winkel in 2D
 
- rechts = 0°
- 0° bis 360° gegen den Uhrzeigersinn

Medium 19. Jan 2011 05:47

AW: Konvention für Winkel in 2D
 
Zitat:

Zitat von Bummi (Beitrag 1075699)
- rechts = 0°
- 0° bis 360° gegen den Uhrzeigersinn

Hab mal den wichtigen Unterschied zu den bisherigen Aussagen hervorgehoben. Gegen den UZS = Mathematisch positiver Sinn = der Richtung mit steigendem Winkel folgend. Ob man nun Rechts oder Oben als 0(°) nimmt ist beliebig, wobei beides durchaus gebräuchlich ist (im Gegensatz zu Links und Unten).

jfheins 22. Jan 2011 17:40

AW: Konvention für Winkel in 2D
 
Zitat:

Zitat von Medium (Beitrag 1075717)
Hab mal den wichtigen Unterschied zu den bisherigen Aussagen hervorgehoben. Gegen den UZS = Mathematisch positiver Sinn = der Richtung mit steigendem Winkel folgend. Ob man nun Rechts oder Oben als 0(°) nimmt ist beliebig, wobei beides durchaus gebräuchlich ist (im Gegensatz zu Links und Unten).

Naja, der Unterschied liegt eben darin dass die Informatiker die y-Achse umgedreht haben. Sinnvoll in diesem Zusammenhang ist für mich, dass man die Werte direkt in die atan2() Funktion reinstecken kann ohne große Fallunterscheidung. Und das resultiert in obiger Konvention.

Für ein Spiel ist halt auch einfacher (schneller) Code gefragt. Für ein Mathematikprogramm sollte man natürlich die bekannte Konvention benutzen und das Koordinatensystem spiegeln.

Luckie 22. Jan 2011 20:36

AW: Konvention für Winkel in 2D
 
Ist in der Mathematik 0° nicht immer bei 12 Uhr und positive Winkel gehen dann im Uhrzeigersinn, so dass 90° bei drei Uhr ist?

Aber letztendlich hängt alles vom Bezugssystem ab, was man sich je nach belieben definieren kann.

Bummi 22. Jan 2011 22:17

AW: Konvention für Winkel in 2D
 
http://de.wikipedia.org/wiki/Winkel
Zitat:

In der Mathematik ist es üblich, die Drehung gegen den Uhrzeigersinn – also im mathematisch positiven Drehsinn – auszuführen. Wenn die Drehung andersherum erfolgen soll, sollte dieses ausdrücklich angegeben werden.
In der Geodäsie (Vermessungswesen) wird der Winkel im Uhrzeigersinn, also rechtsdrehend von 0 Gon bis 400 Gon gezählt. Da es in der Geodäsie per Definition keine negativen Winkel gibt, ist der Drehsinn positiv. Analog zur Uhr, auch hier wird von 0 bis 24 h positiv, rechtsdrehend gezählt. Alle geodätischen Messinstrumente werden zur Richtungs- oder Winkelmessung rechtsherum gedreht.

Namenloser 22. Jan 2011 23:18

AW: Konvention für Winkel in 2D
 
Zitat:

Zitat von Luckie (Beitrag 1076590)
Ist in der Mathematik 0° nicht immer bei 12 Uhr und positive Winkel gehen dann im Uhrzeigersinn, so dass 90° bei drei Uhr ist?

Nein, genau anders herum: In der Mathematik ist per Konvention 0° auf 3 Uhr und positive Winkel gehen gegen den Uhrzeigersinn, also ist 90° auf 12 Uhr.

Beim Programmieren ist es aber wie bereits gesagt sinnvoller, im Uhrzeigersinn zu gehen, weil die Y-Achse ja auch umgedreht ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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