rendered paste body
hp = his position
mp = my position
md = my direction (velocity)
hd = his direction (velocity)
t = time
pythag to find line length:
t^3 = (hpx + hdx*t - mpx - mdx*t)(hpy + hdy*t -mpy - mdy*t)(hpz + hdz*t -mpz - mdz*t)
(hpx + hdx*t - mpx - mdx*t)(hpy + hdy*t -mpy - mdy*t)
add all these up
+hpy +hdy*t -mpy -mdy*t
+hpx ) hpx*hpy +hpx*hdy*t -hpx*mpy -hpx*mdy*t
+hdx*t) hdx*t*hpy +hdx*t*hdy*t -hdx*t*mpy -hdx*t*mdy*t
-mpx ) -mpx*hpy -mpx*hdy*t +mpx*mpy +mpx*mdy*t
-mdx*t) -mdx*t*hpy -mdx*t*hdy*t +mdx*t*mpy +mdx*t*mdy*t
xy=
+mdx*mdy*t2 - hdx*mdy*t2 + hdx*hdy*t2 - mdx*hdy*t2
+hpx*hdy*t - hpx*mdy*t + hdx*hpy*t - hdx*mpy*t + mpx*mdy*t - mpx*hdy*t - mdx*hpy*t + mdx*mpy*t
+hpx*hpy - hpx*mpy -mpx*hpy + mpx*mpy
store all the crap away as factors of t:
xy=
t2(mdx*mdy - hdx*mdy + hdx*hdy - mdx*hdy)
+ t(hpx*hdy - hpx*mdy + hdx*hpy - hdx*mpy + mpx*mdy - mpx*hdy - mdx*hpy + mdx*mpy)
+ 1(hpx*hpy - hpx*mpy -mpx*hpy + mpx*mpy)
known1 = k1 = mdx*mdy - hdx*mdy + hdx*hdy - mdx*hdy
known2 = k2 = hpx*hdy - hpx*mdy + hdx*hpy - hdx*mpy + mpx*mdy - mpx*hdy - mdx*hpy + mdx*mpy
knonw3 = k3 = hpx*hpy - hpx*mpy -mpx*hpy + mpx*mpy
ok... same again for the z axis:
(k1*t^2 + k2*t + k3)(hpz + hdz*t -mpz - mdz*t)
add em up
k1*t^2 +k2*t +k3
---------------------------------------------------------------
+hpz ) hpz*k1*t^2 +hpz*+k2*t +hpz*k3
+hdz*t) hdz*k1*t^3 +hdz*k2*t2 +hdz+k3*t
-mpz )-mpz*k1*t^2 -mpz*k2*t -mpz*k3
-mdz*t)-mdz*k1*t^3 -mdz*k2*t^2 -mdz*k3*t
+hdz*k1*t^3 -mdz*k1*t^3
+hdz*k2*t^2 +hpz*k1*t^2 -mdz*k2*t^2 -mpz*k1*t^2
+hpz*+k2*t +hdz+k3*t -mpz*k2*t -mdz*k3*t
+hpz*k3 -mpz*k3
store as factors of t
t^3 =
t^3(+hdz*k1 -mdz*k1 )
+ t^2(+hdz*k2 +hpz*k1 -mdz*k2*t^2 -mpz*k1 )
+ t(+hpz*+k2 +hdz+k3 -mpz*k2*t -mdz*k3 )
+ 1(+hpz*k3 -mpz*k3 )
k4 = +hdz*k1 -mdz*k1
k5 = +hdz*k2 +hpz*k1 -mdz*k2 -mpz*k1
k6 = +hpz*+k2 +hdz+k3 -mpz*k2 -mdz*k3
k7 = +hpz*k3 -mpz*k3
YEY!
t^3 = k4*t^3 + k5*t^2 + k6*t + k7
ao, just solve for t and we have time.. :o