Angles (geometric), normalization and conversion: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) m (→{{header|zkl}}: Fix link: Perl 6 --> Raku) |
|||
Line 872: | Line 872: | ||
+-------+---------------------------------------------------------------------------------------------------+ |
+-------+---------------------------------------------------------------------------------------------------+ |
||
</lang> |
</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}}== |
=={{header|Julia}}== |