Orbital elements: Difference between revisions
Content added Content deleted
m (→version 2: moved subroutines/functions, added whitespace.) |
m (→version 2: aligned some statements, added whitespace.) |
||
Line 958: | Line 958: | ||
return mulV( MA(i,c,j,s), r)'~'mulV( divV( speed, absV(speed)),sqrt(2/r -1/semiMaj)) |
return mulV( MA(i,c,j,s), r)'~'mulV( divV( speed, absV(speed)),sqrt(2/r -1/semiMaj)) |
||
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
||
absV: procedure; parse arg x |
absV: procedure; parse arg x y z; return sqrt(x**2 + y**2 + z**2) |
||
divV: procedure; parse arg x |
divV: procedure; parse arg x y z, d; return (x / d) (y / d) (z / d) |
||
mulV: procedure; parse arg x |
mulV: procedure; parse arg x y z, d; return (x * d) (y * d) (z * d) |
||
show: procedure; parse arg a |
show: procedure; parse arg a b c; return '('fmt(a)"," fmt(b)',' fmt(c)")" |
||
fmt: procedure; parse arg #; return left('', |
fmt: procedure; parse arg #; return left('',#>=0)format(#,,digits()%3)/1 |
||
MA: procedure; parse arg x y z,a,xx yy zz,b; |
MA: procedure; parse arg x y z,a,xx yy zz,b; return (x*a+xx*b) (y*a+yy*b) (z*a+zz*b) |
||
pi: pi=3.1415926535897932384626433832795028841971693993751058209749445923; |
pi: pi= 3.1415926535897932384626433832795028841971693993751058209749445923; return pi |
||
rot: procedure; parse arg i,j,$; return MA(i,cos($),j,sin($))'~'MA(i, -sin($), j, cos($)) |
rot: procedure; parse arg i,j,$; return MA(i,cos($),j,sin($))'~'MA(i, -sin($), j, cos($)) |
||
r2r: return arg(1) // (pi() * 2) /*normalize radians ──► a unit circle*/ |
r2r: return arg(1) // (pi() * 2) /*normalize radians ──► a unit circle*/ |