( DieHappy | 2012. 06. 20., sze – 20:19 )

epp ma kellett egy hasonlo, csak epp a legkozelebbi elhaladas pontjara volt szukseg.

neked a vonal parameteres egyenelte van meg, ahol legyen t egy szabad valtozo, r = (x_0, y_0, z_0) egy pont ahol athalad az egyenes, es v = (v_x, v_y, v_z) az iranyvektor.
Ezzel r(t) = (x(t) , y(t) , z(t) ) = r + v*t leirja a vonal egyenletet. Ahhoz hogy konnyu legyen metszespontot szamolni, legjobb ha helyettesitjuk x(t) -vel t -t.

x = x(t) = x_0 + v_x *t -> t = (x-x_0) / v_x

A hengerrel valo metszespontok a henger R sugarabol jonnek ki:

y = y(t) = y_0 + v_y *t = y_0 + v_y *(x-x_0)/v_x

R^2 = x^2 + y^2 = x^2 + (y_0 + v_y *(x-x_0)/v_x )^2

Nulla, egy vagy ket megoldas lesz x-re, hisz ez egy masodfoku egyenlet. A z koordinata pedig hasonloan szamolhato mint az y :

z = z(t) = z_0 + v_z *t = z_0+ v_z * (x-x_0) /v_x

es itt ellenorizni kell, hogy |z| < m/2

Voila!
Ha |z| > m/2 valamelyik x-re, akkor ott ki kell fejezni az x(z) es y(z) -kbol az x, y metszespontot, de nem ordongosseg.