Polarkoordinaten
Verfasst: 21.11.2008 00:18
Falls jemand auch für einige Programme auf Polarkoordinaten zurückgreifen muss sind die Funktionen sicher ganz praktisch (vor allem die bivariate Arkustangens-Funktion ATan2(y,x)...)
Code: Alles auswählen
Procedure.d ATan2(y.d,x.d)
If x < 0
ProcedureReturn ATan(y/x)+#PI
ElseIf x > 0 And y >= 0
ProcedureReturn ATan(y/x)
ElseIf x > 0 And y < 0
ProcedureReturn ATan(y/x)+2*#PI
ElseIf x = 0 And y > 0
ProcedureReturn #PI/2
ElseIf x = 0 And y < 0
ProcedureReturn 3*#PI/2
Else ; x = 0 and y = 0
ProcedureReturn 0
EndIf
EndProcedure
Procedure.d Rad(x.d,y.d)
ProcedureReturn Sqr(Pow(x,2)+Pow(y,2))
EndProcedure
Procedure.d KartX(ang.d,rad.d)
ProcedureReturn Cos(ang)*rad
EndProcedure
Procedure.d KartY(ang.d,rad.d)
ProcedureReturn Sin(ang)*rad
EndProcedure
x = -6
y = 4
;In Polarform umrechnen
radius.d = Rad(x,y)
angle.d = ATan2(y,x)
Debug radius
Debug angle
Debug angle*180/#PI
Debug "---"
;In Kartesische Koordinaten zurückrechnen
x = KartX(angle,radius)
y = KartY(angle,radius)
Debug x
Debug y