RosettaCodeData/Task/Angles-geometric-normalization-and-conversion/Phix/angles-geometric-normalization-and-conversion.phix
2026-02-01 16:33:20 -08:00

20 lines
573 B
Text

with javascript_semantics
constant units = {"degrees","gradians","mils","radians"},
turns = {1/360,1/400,1/6400,0.5/PI}
function convert(atom a, unit, tgt)
return remainder(a*unit,1)/tgt
end function
constant tests = {-2,-1,0,1,2,2*PI,16,57.2957795,359,399,6399,1000000}
printf(1," angle unit %9s %9s %9s %9s\n",units)
for t in tests do
for i,u in turns do
printf(1,"%9g %-8s",{t,units[i]})
for tgt in turns do
printf(1," %9g",convert(t,u,tgt))
end for
puts(1,"\n")
end for
puts(1,"\n")
end for