判斷兩條線段是否相交

2021-06-21 20:13:37 字數 1219 閱讀 9054

如上圖,判斷線段ab和線段cd相交。

分析:如果線段ab和線段cd相交,只能是圖中的兩種相交情況。可以用向量叉乘來判斷。如果(向量ab叉乘向量ac)*(向量ab叉乘向量ad)<= 0 並且(向量cd叉乘向量ca)*(向量cd叉乘向量cb)<= 0,那麼說明線段ab與線段cd相交。

設a(x1,y1), b(x2, y2), c(x3, y3), d(x4, y4),三角形abc的面積為:2a =

如果a>0,有向面積為正,abc為逆時針排列;否則,abc為順時針排列。

應用:nyoj 1016  

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:1 描述

歡迎來到德萊聯盟。。。。

德萊文。。。

德萊文在逃跑,卡茲克在追。。。。

我們知道德萊文的起點和終點座標,我們也知道卡茲克的起點和中點座標,問:卡茲克有可能和德萊文相遇嗎?,並且保證他們走的都是直線。

輸入

幾組資料,乙個整數t表示t組資料

每組資料 8個實數,分別表示德萊文的起點和終點座標,以及卡茲克的起點和終點座標

輸出如果可能 輸出 interseetion,否則輸出 not interseetion

樣例輸入

2

-19.74 7.14 22.23 -27.45 -38.79 -5.08 47.51 34.01

-8.61 9.91 -32.47 6.47 -3.81 -16.1 7.82 -6.37

樣例輸出

interseetion

not interseetion

題目就是給出兩條線段的起點座標和終點座標,判斷這兩條線段是否相交,如果相交輸出interseetion;否則輸出「not intersection」。

#includestruct node st1, ed1, st2, ed2;

double get_area(node a0, node a1, node a2)

int main()

return 0;

}

判斷兩條線段是否相交

題目 給定兩條線段,判斷這兩條線段是否相交,線段ab的表示形式是a x1,y1 b x2,y2 線段cd的表示形式為c x3,y3 d x4,y4 那麼我們如何判斷線段ab與線段cd是否相交。解析 在介紹如何解決線段相交問題之前,我們先介紹向量的叉積。如下圖所示 下面的圖 1 表示p1向量在p2向量...

判斷兩條線段是否相交

1.必備知識 向量積 矢積 與數量積 標積 的區別 名稱標積 內積 數量積 點積 矢積 外積 向量積 叉積 表示式 a,b和c粗體字,表示向量 a b a b cos a b c,其中 c a b sin c的方向遵守右手定則 幾何意義 向量a在向量b方向上的投影與向量b的模的乘積 c是垂直a b所...

判斷兩條線段是否相交

判斷兩條線段是否相交,可以採用向量積的方式來判斷,如下圖所示 現定義乙個函式初步判斷兩線段是否相交,如下 初步根據外圍框大致判斷兩條線段是否相交 線段1的座標,長度為6 線段2的座標,長度為6 返回型別為bool,如果為true表示兩條線段可能相交,如果為false表示兩條線段不相交 private...