RosettaCodeData/Task/Angles-geometric-normalization-and-conversion/EasyLang/angles-geometric-normalization-and-conversion.easy
2025-06-11 20:16:52 -04:00

46 lines
976 B
Text

func angconv ang f$ t$ .
sgn = sign ang
ang = abs ang
if f$ = "degree"
turn = ang / 360 mod 1
elif f$ = "gradian"
turn = ang / 400 mod 1
elif f$ = "mil"
turn = ang / 6400 mod 1
elif f$ = "radian"
turn = ang / (2 * pi) mod 1
.
if t$ = "degree"
ang = turn * 360
elif t$ = "gradian"
ang = turn * 400
elif t$ = "mil"
ang = turn * 6400
elif t$ = "radian"
ang = turn * 2 * pi
.
return ang * sgn
.
func$ fmt s$ .
return substr " " 1 (9 - len s$) & s$ & " "
.
#
scales$[] = [ "degree" "gradian" "mil" "radian" ]
values[] = [ -2 -1 0 1 2 6.2831853 16 57.2957795 359 399 6399 1000000 ]
numfmt 10 3
for f$ in scales$[]
write fmt f$
for t$ in scales$[]
write fmt t$
.
print ""
print " ------------------------------------------------"
for v in values[]
write v
for t$ in scales$[]
write angconv v f$ t$
.
print ""
.
print ""
.