local fmt = require "fmt" local d2d = |d| -> math.fmod(d, 360) local g2g = |g| -> math.fmod(g, 400) local m2m = |m| -> math.fmod(m, 6400) local r2r = |r| -> math.fmod(r, 2 * math.pi) local d2g = |d| -> d2d(d) * 400 / 360 local d2m = |d| -> d2d(d) * 6400 / 360 local d2r = |d| -> d2d(d) * math.pi / 180 local g2d = |g| -> g2g(g) * 360 / 400 local g2m = |g| -> g2g(g) * 6400 / 400 local g2r = |g| -> g2g(g) * math.pi / 200 local m2d = |m| -> m2m(m) * 360 / 6400 local m2g = |m| -> m2m(m) * 400 / 6400 local m2r = |m| -> m2m(m) * math.pi / 3200 local r2d = |r| -> r2r(r) * 180 / math.pi local r2g = |r| -> r2r(r) * 200 / math.pi local r2m = |r| -> r2r(r) * 3200 / math.pi local c = |s| -> fmt.center(s, 15) local f1 = "%15s %15s %15s %15s %15s" local f2 = "%15.7f %15.7f %15.7f %15.7f %15.7f" local angles = {-2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000} fmt.print(f1, c("degrees"), c("normalized degs"), c("gradians"), c("mils"), c("radians")) for angles as a do fmt.print(f2, a, d2d(a), d2g(a), d2m(a), d2r(a)) end f1 = "\n" .. f1 fmt.print(f1, c("gradians"), c("normalized grds"), c("degrees"), c("mils"), c("radians")) for angles as a do fmt.print(f2, a, g2g(a), g2d(a), g2m(a), g2r(a)) end fmt.print(f1, c("mils"), c("normalized mils"), c("degrees"), c("gradians"), c("radians")) for angles as a do fmt.print(f2, a, m2m(a), m2d(a), m2g(a), m2r(a)) end fmt.print(f1, c("radians"), c("normalized rads"), c("degrees"), c("gradians"), c("mils")) for angles as a do fmt.print(f2, a, r2r(a), r2d(a), r2g(a), r2m(a)) end