AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Konvention für Winkel in 2D

Ein Thema von treeRunner · begonnen am 18. Jan 2011 · letzter Beitrag vom 22. Jan 2011
Antwort Antwort
treeRunner

Registriert seit: 18. Jan 2011
5 Beiträge
 
#1

Konvention für Winkel in 2D

  Alt 18. Jan 2011, 22:28
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Konvention für Winkel in 2D

  Alt 18. Jan 2011, 22:36
Nach rechts = 0 und dann im Uhrzeigersinn bis 2 Pi bzw. 360° - Vorteil: Du kannst die arctan2() Funktion nutzen.
  Mit Zitat antworten Zitat
treeRunner

Registriert seit: 18. Jan 2011
5 Beiträge
 
#3

AW: Konvention für Winkel in 2D

  Alt 18. Jan 2011, 23:02
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).
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Konvention für Winkel in 2D

  Alt 18. Jan 2011, 23:12
- rechts = 0°
- 0° bis 360° gegen den Uhrzeigersinn
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Konvention für Winkel in 2D

  Alt 19. Jan 2011, 05:47
- 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).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: Konvention für Winkel in 2D

  Alt 22. Jan 2011, 17:40
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Konvention für Winkel in 2D

  Alt 22. Jan 2011, 20:36
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Konvention für Winkel in 2D

  Alt 22. Jan 2011, 22:17
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.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Konvention für Winkel in 2D

  Alt 22. Jan 2011, 23:18
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 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