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 y z; return sqrt(x**2 + y**2 + z**2)
absV: procedure; parse arg x y z; return sqrt(x**2 + y**2 + z**2)
divV: procedure; parse arg x y z,d; return (x / d) (y / d) (z / d)
divV: procedure; parse arg x y z, d; return (x / d) (y / d) (z / d)
mulV: procedure; parse arg x y z,d; return (x * d) (y * d) (z * d)
mulV: procedure; parse arg x y z, d; return (x * d) (y * d) (z * d)
show: procedure; parse arg a b c; return '('fmt(a)"," fmt(b)',' fmt(c)")"
show: procedure; parse arg a b c; return '('fmt(a)"," fmt(b)',' fmt(c)")"
fmt: procedure; parse arg #; return left('', #>=0)format(#, , digits() % 3) /1
fmt: procedure; parse arg #; return left('',#>=0)format(#,,digits()%3)/1
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)
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; return pi
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*/