Angles (geometric), normalization and conversion: Difference between revisions

Content added Content deleted
(Added Wren)
(→‎{{header|Wren}}: Removed an unnecessary formatting function.)
Line 2,390: Line 2,390:
var r2g = Fn.new { |r| r2r.call(r) * 200 / Num.pi }
var r2g = Fn.new { |r| r2r.call(r) * 200 / Num.pi }
var r2m = Fn.new { |r| r2r.call(r) * 3200 / Num.pi }
var r2m = Fn.new { |r| r2r.call(r) * 3200 / Num.pi }

// Aligns number to decimal point assuming 7 characters before and after.
var s = Fn.new { |f| Fmt.g(15, f, 7) }


var f1 = "$15m $15m $15m $15m $15m"
var f1 = "$15m $15m $15m $15m $15m"
var f2 = "$s $s $s $s $s"
var f2 = "$15.7g $15.7g $15.7g $15.7g $15.7g"
var angles = [-2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000]
var angles = [-2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000]
Fmt.print(f1, "degrees", "normalized degs", "gradians", "mils", "radians")
Fmt.print(f1, "degrees", "normalized degs", "gradians", "mils", "radians")
for (a in angles) {
for (a in angles) {
Fmt.print(f2, s.call(a), s.call(d2d.call(a)), s.call(d2g.call(a)), s.call(d2m.call(a)), s.call(d2r.call(a)))
Fmt.print(f2, a, d2d.call(a), d2g.call(a), d2m.call(a), d2r.call(a))
}
}
f1 = "\n" + f1
f1 = "\n" + f1
Fmt.print(f1, "gradians", "normalized grds", "degrees", "mils", "radians")
Fmt.print(f1, "gradians", "normalized grds", "degrees", "mils", "radians")
for (a in angles) {
for (a in angles) {
Fmt.print(f2, s.call(a), s.call(g2g.call(a)), s.call(g2d.call(a)), s.call(g2m.call(a)), s.call(g2r.call(a)))
Fmt.print(f2, a, g2g.call(a), g2d.call(a), g2m.call(a), g2r.call(a))
}
}
Fmt.print(f1, "mils", "normalized mils", "degrees", "gradians", "radians")
Fmt.print(f1, "mils", "normalized mils", "degrees", "gradians", "radians")
for (a in angles) {
for (a in angles) {
Fmt.print(f2, s.call(a), s.call(m2m.call(a)), s.call(m2d.call(a)), s.call(m2g.call(a)), s.call(m2r.call(a)))
Fmt.print(f2, a, m2m.call(a), m2d.call(a), m2g.call(a), m2r.call(a))
}
}
Fmt.print(f1, "radians", "normalized rads", "degrees", "gradians", "mils")
Fmt.print(f1, "radians", "normalized rads", "degrees", "gradians", "mils")
for (a in angles) {
for (a in angles) {
Fmt.print(f2, s.call(a), s.call(r2r.call(a)), s.call(r2d.call(a)), s.call(r2g.call(a)), s.call(r2m.call(a)))
Fmt.print(f2, a, r2r.call(a), r2d.call(a), r2g.call(a), r2m.call(a))
}</lang>
}</lang>