Try   HackMD

推導兩條線相交的算法

line_a  (ua,ua+va)  pa=ua+svaline_b  (ub,ub+vb)  pb=ub+tvb u,v,p  2d vector s,t[0,1] line_a  line_b pa=pbua+sva=ub+tvbuaub=sva+tvb|uaxubxuayuby|=s|vaxvay|+t|vbxvby||ΔuxΔuy|=|vaxvbxvayvby||st|=M|st| M  s,t |st|=M1|ΔuxΔuy| d=det(M)=vaxvbyvbxvay M1=1d|vbyvbxvayvax| |st|=1d|vbyvbxvayvax||ΔuxΔuy| s,t s=1d(vbyΔux+vbxΔuy)t=1d(vayΔux+vaxΔuy) d  0  d  0  s,t[0,1]  s,t