书山有径勤为路>>>>>>>>

<<<<<<<<学海无涯苦作舟!

叉乘(三)——线段与线段相交吗?

用途3:

我们现在的任务就是判断线段P1P2和线段Q1Q2是否相交。

我们分两步确定两条线段是否相交:

  (1)快速排斥试验

    设以线段 P1P2 为对角线的矩形为R,

    设以线段 Q1Q2 为对角线的矩形为T,

    如果矩形R矩形T不相交,显然两线段不会相交。

  (2)跨立试验

    如果两线段相交,则两线段必然相互跨立对方。

    若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( P2 - Q1 )位于矢量( Q2 - Q1 ) 的两侧,

    即1.(P1 - Q1) x (Q2 - Q1)<0, 这个式子表明Q1Q2在P1Q1的右方,也就是说P1Q1在Q1Q2的左方

       2. (Q2 - Q1) x (P2 - Q1)<0,这个式子表示P2Q1在Q1Q2的右方

    上面两个式子可写成( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) > 0。

    当 ( P1 - Q1 ) × ( Q2 - Q1 ) = 0 时,说明 ( P1 - Q1 ) 和 ( Q2 - Q1 )共线,

    但是因为已经通过快速排斥试验,所以 P1 一定在线段 Q1Q2上

    同理,( Q2 - Q1 ) ×(P2 - Q1 ) = 0 说明 P2 一定在线段 Q1Q2上

    所以判断P1P2跨立Q1Q2的依据是:

    ( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0。

    同理判断Q1Q2跨立P1P2的依据是:

    ( Q1 - P1 ) × ( P2 - P1 ) * ( P2 - P1 ) × ( Q2 - P1 ) >= 0。

具体情况如下图所示:

    



posted on 2011-10-28 00:24  More study needed.  阅读(827)  评论(0编辑  收藏  举报

导航

书山有径勤为路>>>>>>>>

<<<<<<<<学海无涯苦作舟!