3d空间上判断两直线是否相交
直线r1(s) = o1 + s*d1
直线r2(t) = o2 + t*d2
r1(s) = r2(t)
=> o1 + s*d1 = o2 + t*d2
=> s*d1×d2= (o2-o1+t*d2)×d2
t*d2×d1= (01-02+s*d1)×d1
=>由于d×d = 0
=>s*(d1×d2) = (o2-o1)×d2
t*(d2×d1) = (o1-o2)×d1
=>s*(d1×d2)*(d1×d2) = ((o2-o1)×d2)*(d1×d2) = det(o2-o1, d2, d1×d2)
t*(d1×d2)*(d1×d2) = ((o1-o2)×d1)*(d2×d1) = det(o2-o1, d1, d1×d2)
性质:(d1×d2)*(d1×d2) == (d2×d1) *(d2×d1)
(d1×d2) = -(d2×d1)
d×d = 0
若d1×d2= 0两直线平行
若代入方程后得到的两点不相等,则两直线不相交