Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,61 @@
|
|||
/*****************************************************************\
|
||||
| Expects an angle, an origin unit and a unit to convert to, |
|
||||
| where in/out units are: |
|
||||
| --------------------------------------------------------------- |
|
||||
| 'D'/'d' ..... degrees 'M'/'d' ..... mils | |
|
||||
| 'G'/'g' ..... gradians 'R'/'r' ..... radians |
|
||||
| --------------------------------------------------------------- |
|
||||
| example: convert 150 degrees to radians: |
|
||||
| angleConv(150, 'd', 'r') |
|
||||
\*****************************************************************/
|
||||
function angleConv(deg, inp, out) {
|
||||
inp = inp.toLowerCase();
|
||||
out = out.toLowerCase();
|
||||
const D = 360,
|
||||
G = 400,
|
||||
M = 6400,
|
||||
R = 2 * Math.PI;
|
||||
// normalazation
|
||||
let minus = (deg < 0); // boolean
|
||||
deg = Math.abs(deg);
|
||||
switch (inp) {
|
||||
case 'd': deg %= D; break;
|
||||
case 'g': deg %= G; break;
|
||||
case 'm': deg %= M; break;
|
||||
case 'r': deg %= R;
|
||||
}
|
||||
// we use an internal conversion to Turns (full circle) here
|
||||
let t;
|
||||
switch (inp) {
|
||||
case 'd': t = deg / D; break;
|
||||
case 'g': t = deg / G; break;
|
||||
case 'm': t = deg / M; break;
|
||||
case 'r': t = deg / R;
|
||||
}
|
||||
// converting
|
||||
switch (out) {
|
||||
case 'd': t *= D; break;
|
||||
case 'g': t *= G; break;
|
||||
case 'm': t *= M; break;
|
||||
case 'r': t *= R;
|
||||
}
|
||||
if (minus) return 0 - t;
|
||||
return t;
|
||||
}
|
||||
|
||||
// mass testing
|
||||
let nums = [-2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1e6],
|
||||
units = 'dgmr'.split(''),
|
||||
x, y, z;
|
||||
for (x = 0; x < nums.length; x++) {
|
||||
for (y = 0; y < units.length; y++) {
|
||||
document.write(`
|
||||
<p>
|
||||
<b>${nums[x]}<sub>${units[y]}</sub></b><br>
|
||||
`);
|
||||
for (z = 0; z < units.length; z++)
|
||||
document.write(`
|
||||
= ${angleConv(nums[x], units[y], units[z])}<sub>${units[z]}</sub>
|
||||
`);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue