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

2021-09-23 08:13:12 字數 1247 閱讀 3009

題目鏈結

給定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)

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define io ios::sync_with_stdio(0),cin.tie(0)

#define ms(arr) memset(arr,0,sizeof(arr))

#define mc(a,b) memcpy(a,b,sizeof(b))

#define inf 0x3f3f3f

#define fin freopen("in.txt", "r", stdin)

#define fout freopen("out.txt", "w", stdout)

typedef long long ll;

typedef unsigned long long ull;

const int mod=1e9+7;

const int n=1e5+7;

struct node

;int n;

node ps[n],pe[n];

bool is_xiangjiao(node a,node b,node c,node d)

int main()

int ans=0;

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

}printf("%d\n",ans);

return 0;

}

判斷兩線段是否有交點

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

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

題目描述 給定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...