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

2021-09-23 08:13:12 字數 897 閱讀 9946

題目描述

給定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.00 1.00 0.00

0.00 0.00 1.00 0.00

樣例輸出

3
提示

(0,0)(1,1)和(0,1)(1,0)有交點

(0,0)(1,1)和(0,0)(1,0)有交點

(0,1)(1,0)和(0,0)(1,0)有交點

對於100%的資料,n≤100

點的座標範圍(−10000,10000)

資料範圍就在100以內,所以貢獻出了乙個n方的演算法,就暴力列舉每兩條線段,判斷是否有交點即可。

#include#define int long long

using namespace std;

const int maxn = 110;

struct point

point(int a,int b)

void input()

};bool judge(point &a,point &b,point &c,point &d)

point xx[maxn],yy[maxn];

signed main()

int ans = 0;

for(int i = 0;i < n; i++)

}cout << ans << endl;

return 0;

}

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

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

計算幾何之 判斷兩個線段是否相交

1.判斷兩個線段是否相交,需要檢測線段是否兩兩橫跨。所謂橫跨,即是點p1 位於向量n 的一邊,且另一點p2 位於向量n 的另一邊 2.此外,還需考慮邊界情況,即一條線段的某個端點位於另一條線段上。判斷線段p1p2,p3p4 是否相交,演算法流程如下 segment intersect p1,p2,p...

判斷兩個線段是否相交

html xmlns lang en charset utf 8 判斷兩個線段是否相交問題title rel stylesheet href css reset.css rel stylesheet href css style.css head class wrap 判斷兩個線段是否相交h2 br...