判斷兩線段是否有交點

2021-07-12 03:16:26 字數 596 閱讀 6544

之前做過有關熱帶氣旋路徑的資料分析,其中涉及到了對於熱帶氣旋是否登陸的判斷,那我的想法就是將大陸海岸線和路徑線分成若干個線段,路徑中的每一段分別和邊界線的每乙個線段分別作判斷。如果判斷兩先線段存在交點,則認為熱帶氣旋登陸,交點的奇數次代表登陸的次數。

首先,有兩個線段p1p2和p3p4, 如果p0定為原點,p1的座標是(x1,y1),p2的座標是(x2,y2)。向量的叉積(cross product)實際上就是矩陣的行列式:

當叉積為正時,說明p0p1在p0p2的順時針方向上;叉積為0說明兩向量共線(同向或反向)。(p0p1為向量,順序不能顛倒)

當同時滿足:

(1)p3p1和p3p2在p3p4的兩側(即乙個順時針方向上,乙個在逆時針方向上)

(2)p1p3和p1p4在p1p2的兩側

時p1p2可肯定和p3p4相交。

一般情況。

對於特殊的情況,垂直或平行時:

首先,p1p2,p3p4的叉積為0,意味著是平行,毫無疑問沒有交點,是先判斷一下就好。

先去吃飯,回來寫。

線段交 判斷兩線段是否有交點

題目鏈結 給定n個線段。求有交點的線段對數。保證沒有兩條線段共線 輸入一行乙個整數n,表示線段的個數 第2 n 1行,每行四個實數,x1,y1,x2,y2,表示線段的兩個端點 x1,y1 和 x2,y2 輸出一行乙個整數,表示有交點的線段對數。樣例輸入 複製樣例資料 3 0.00 0.00 1.00...

線段交(幾何問題判斷兩個線段是否有交點)

題目描述 給定n個線段。求有交點的線段對數。保證沒有兩條線段共線 輸入一行乙個整數n,表示線段的個數 第2 n 1行,每行四個實數,x1,y1,x2,y2,表示線段的兩個端點 x1,y1 和 x2,y2 輸出一行乙個整數,表示有交點的線段對數。3 0.00 0.00 1.00 1.00 0.00 1...

求兩直線交點 判斷兩線段相交 求線段交點

點的結構 struct point point double x,double y 線段的結構 struct egde egde point a,point b 建立的邊,存在的線段求兩直線 線段 交點 void getpoint point p1,point p2,point p3 point p...