博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

判断3d直线与直线相交

Posted on 2010-02-26 18:40  Zhiyett  阅读(498)  评论(0编辑  收藏  举报

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两直线平行

 若代入方程后得到的两点不相等,则两直线不相交