Forums Neueste Beiträge
 

Polarkoordinaten

26/09/2015 - 12:18 von Hans-Peter Diettrich | Report spam
Praktische Frage: Gibt es einen einfachen und schnellen Weg zur
Berechnung von (sowas wie) einem Winkel, bei der Umrechnung von
(ganzzahligen) kartesischen in Polarkoordinaten?

Die Funktion muß nur stetig sein, damit sich Änderungen des Winkels
(vorwàrts/rückwàrts) feststellen lassen.

Beim Versuch, die Steigung abschnittsweise durch x/y bzw. y/x zu
bestimmen, bin ich über die notwendige Unterscheidung der Oktanten
gestolpert. Da scheint mir atan2() auch nicht spürbar langsamer zu sein
als eine in einer Hochsprache implementierte Lösung?

DoDi
 

Lesen sie die antworten

#1 Robin Koch
01/10/2015 - 23:20 | Warnen spam
Am 26.09.2015 um 12:18 schrieb Hans-Peter Diettrich:

Praktische Frage: Gibt es einen einfachen und schnellen Weg zur
Berechnung von (sowas wie) einem Winkel, bei der Umrechnung von
(ganzzahligen) kartesischen in Polarkoordinaten?



Tangens mit Fallunterscheidung.

Die Funktion muß nur stetig sein, damit sich Änderungen des Winkels
(vorwàrts/rückwàrts) feststellen lassen.



Tangens ist stetig, nur die Fallunterscheidungen halt nicht.

Beim Versuch, die Steigung abschnittsweise durch x/y bzw. y/x zu
bestimmen, bin ich über die notwendige Unterscheidung der Oktanten
gestolpert.



Quadranten. Oder sprichst Du von Raumkoordinaten?
Aber ja, das ist eine nötige Fallunterscheidung.
Die andere ist sicherzustellen, das x != 0, da man sonst y/x nicht
berechnen kann.

Da scheint mir atan2() auch nicht spürbar langsamer zu sein
als eine in einer Hochsprache implementierte Lösung?



Wieso benutzt Du sie dann nicht?

atan2(y,x) macht halt genau das was getan werden muss und das vermutlich
in der jeweiligen Sprache am effizientesten.

Wenn Du *voraussetzen* kannst, dass Dein Winkel in einem Quadranten
*bleibt*, dann reicht auch der tan(y/x).

Dazu müsstest Du aber etwas genauer spezifizieren was genau Du misst und
was genau Du feststellen willst.

Aber ich vermute mal ins Blaue hinein, dass jeder "clevere" Versuch den
atan2() zu vermeiden nur teurer wird.

Um welche Sprache geht es denn, btw?

Robin Koch

Ähnliche fragen