日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/3/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 叉乘(三)——线段与线段相交吗? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用途3:

我們現(xiàn)在的任務(wù)就是判斷線段P1P2和線段Q1Q2是否相交。

我們分兩步確定兩條線段是否相交:

  (1)快速排斥試驗(yàn)

    設(shè)以線段 P1P2 為對(duì)角線的矩形為R,

    設(shè)以線段 Q1Q2 為對(duì)角線的矩形為T,

    如果矩形R和矩形T不相交,顯然兩線段不會(huì)相交。

  (2)跨立試驗(yàn)

    如果兩線段相交,則兩線段必然相互跨立對(duì)方。

    若P1P2跨立Q1Q2 ,則矢量 ( P1 - Q1 ) 和( P2 - Q1 )位于矢量( Q2 - Q1 ) 的兩側(cè),

    即1.(P1 - Q1) x (Q2 - Q1)<0, 這個(gè)式子表明Q1Q2在P1Q1的右方,也就是說P1Q1在Q1Q2的左方;

     ? 2.?(Q2 - Q1) x (P2 - Q1)<0,這個(gè)式子表示P2Q1在Q1Q2的右方,

    上面兩個(gè)式子可寫成( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) > 0。

    當(dāng) ( P1 - Q1 ) × ( Q2 - Q1 ) = 0 時(shí),說明 ( P1 - Q1 ) 和 ( Q2 - Q1 )共線,

    但是因?yàn)橐呀?jīng)通過快速排斥試驗(yàn),所以 P1 一定在線段 Q1Q2上;

    同理,( Q2 - Q1 ) ×(P2 - Q1 ) = 0 說明 P2 一定在線段 Q1Q2上。

    所以判斷P1P2跨立Q1Q2的依據(jù)是:

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

    同理判斷Q1Q2跨立P1P2的依據(jù)是:

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

具體情況如下圖所示:

????



轉(zhuǎn)載于:https://www.cnblogs.com/o8le/archive/2011/10/28/2227181.html

總結(jié)

以上是生活随笔為你收集整理的叉乘(三)——线段与线段相交吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。