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

m (→‎{{header|zkl}}: Fix link: Perl 6 --> Raku)
Line 872:
+-------+---------------------------------------------------------------------------------------------------+
</lang>
 
=={{header|Java}}==
<lang java>
import java.text.DecimalFormat;
 
// Title: Angles (geometric), normalization and conversion
 
public class AnglesNormalizationAndConversion {
 
public static void main(String[] args) {
DecimalFormat formatAngle = new DecimalFormat("######0.000000");
DecimalFormat formatConv = new DecimalFormat("###0.0000");
System.out.printf(" degrees gradiens mils radians%n");
for ( double angle : new double[] {-2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000} ) {
for ( String units : new String[] {"degrees", "gradiens", "mils", "radians"}) {
double d = 0, g = 0, m = 0, r = 0;
switch (units) {
case "degrees":
d = d2d(angle);
g = d2g(d);
m = d2m(d);
r = d2r(d);
break;
case "gradiens":
g = g2g(angle);
d = g2d(g);
m = g2m(g);
r = g2r(g);
break;
case "mils":
m = m2m(angle);
d = m2d(m);
g = m2g(m);
r = m2r(m);
break;
case "radians":
r = r2r(angle);
d = r2d(r);
g = r2g(r);
m = r2m(r);
break;
}
System.out.printf("%15s %8s = %10s %10s %10s %10s%n", formatAngle.format(angle), units, formatConv.format(d), formatConv.format(g), formatConv.format(m), formatConv.format(r));
}
}
}
 
private static final double DEGREE = 360D;
private static final double GRADIAN = 400D;
private static final double MIL = 6400D;
private static final double RADIAN = (2 * Math.PI);
private static double d2d(double a) {
return a % DEGREE;
}
private static double d2g(double a) {
return a * (GRADIAN / DEGREE);
}
private static double d2m(double a) {
return a * (MIL / DEGREE);
}
private static double d2r(double a) {
return a * (RADIAN / 360);
}
 
private static double g2d(double a) {
return a * (DEGREE / GRADIAN);
}
private static double g2g(double a) {
return a % GRADIAN;
}
private static double g2m(double a) {
return a * (MIL / GRADIAN);
}
private static double g2r(double a) {
return a * (RADIAN / GRADIAN);
}
private static double m2d(double a) {
return a * (DEGREE / MIL);
}
private static double m2g(double a) {
return a * (GRADIAN / MIL);
}
private static double m2m(double a) {
return a % MIL;
}
private static double m2r(double a) {
return a * (RADIAN / MIL);
}
private static double r2d(double a) {
return a * (DEGREE / RADIAN);
}
private static double r2g(double a) {
return a * (GRADIAN / RADIAN);
}
private static double r2m(double a) {
return a * (MIL / RADIAN);
}
private static double r2r(double a) {
return a % RADIAN;
}
}
</lang>
 
{{out}}
<pre>
degrees gradiens mils radians
-2.000000 degrees = -2.0000 -2.2222 -35.5556 -0.0349
-2.000000 gradiens = -1.8000 -2.0000 -32.0000 -0.0314
-2.000000 mils = -0.1125 -0.1250 -2.0000 -0.0020
-2.000000 radians = -114.5916 -127.3240 -2037.1833 -2.0000
-1.000000 degrees = -1.0000 -1.1111 -17.7778 -0.0175
-1.000000 gradiens = -0.9000 -1.0000 -16.0000 -0.0157
-1.000000 mils = -0.0563 -0.0625 -1.0000 -0.0010
-1.000000 radians = -57.2958 -63.6620 -1018.5916 -1.0000
0.000000 degrees = 0.0000 0.0000 0.0000 0.0000
0.000000 gradiens = 0.0000 0.0000 0.0000 0.0000
0.000000 mils = 0.0000 0.0000 0.0000 0.0000
0.000000 radians = 0.0000 0.0000 0.0000 0.0000
1.000000 degrees = 1.0000 1.1111 17.7778 0.0175
1.000000 gradiens = 0.9000 1.0000 16.0000 0.0157
1.000000 mils = 0.0563 0.0625 1.0000 0.0010
1.000000 radians = 57.2958 63.6620 1018.5916 1.0000
2.000000 degrees = 2.0000 2.2222 35.5556 0.0349
2.000000 gradiens = 1.8000 2.0000 32.0000 0.0314
2.000000 mils = 0.1125 0.1250 2.0000 0.0020
2.000000 radians = 114.5916 127.3240 2037.1833 2.0000
6.283185 degrees = 6.2832 6.9813 111.7011 0.1097
6.283185 gradiens = 5.6549 6.2832 100.5310 0.0987
6.283185 mils = 0.3534 0.3927 6.2832 0.0062
6.283185 radians = 360.0000 400.0000 6400.0000 6.2832
16.000000 degrees = 16.0000 17.7778 284.4444 0.2793
16.000000 gradiens = 14.4000 16.0000 256.0000 0.2513
16.000000 mils = 0.9000 1.0000 16.0000 0.0157
16.000000 radians = 196.7325 218.5916 3497.4662 3.4336
57.295780 degrees = 57.2958 63.6620 1018.5916 1.0000
57.295780 gradiens = 51.5662 57.2958 916.7325 0.9000
57.295780 mils = 3.2229 3.5810 57.2958 0.0562
57.295780 radians = 42.8063 47.5626 761.0018 0.7471
359.000000 degrees = 359.0000 398.8889 6382.2222 6.2657
359.000000 gradiens = 323.1000 359.0000 5744.0000 5.6392
359.000000 mils = 20.1938 22.4375 359.0000 0.3524
359.000000 radians = 49.1848 54.6498 874.3972 0.8584
399.000000 degrees = 39.0000 43.3333 693.3333 0.6807
399.000000 gradiens = 359.1000 399.0000 6384.0000 6.2675
399.000000 mils = 22.4438 24.9375 399.0000 0.3917
399.000000 radians = 181.0160 201.1289 3218.0627 3.1593
6399.000000 degrees = 279.0000 310.0000 4960.0000 4.8695
6399.000000 gradiens = 359.1000 399.0000 6384.0000 6.2675
6399.000000 mils = 359.9438 399.9375 6399.0000 6.2822
6399.000000 radians = 155.6931 172.9923 2767.8774 2.7174
1000000.000000 degrees = 280.0000 311.1111 4977.7778 4.8869
1000000.000000 gradiens = 0.0000 0.0000 0.0000 0.0000
1000000.000000 mils = 90.0000 100.0000 1600.0000 1.5708
1000000.000000 radians = 339.5131 377.2368 6035.7881 5.9256
</pre>
 
=={{header|Julia}}==