計算幾何之判斷線段相交

2021-08-17 05:21:19 字數 963 閱讀 6891

兩條線段可以看作是兩個向量;

一條線段跨立另一條線段的條件是:一條線段的端點分別到另一條線段兩個端點構成的向量在該線段兩側;(可能不相交)

而兩條線段互相跨立,即相交,就可判斷。

模板分享

#include 

#include

#include

#include

#define equals(a,b) (fabs((a)-(b))#define eps 1e-10

using namespace std;

struct point

point(double x,double y)

};struct line;

point operator +(point a,point b)

point operator -(point a,point b)

point operator *(point a,double t)

//向量的模

double morn (point a)

//向量點積

double dot(point a,point b)

//向量叉積

double cross(point a,point b)

//兩向量平行

bool parallel(point a,point b)

//向量與點的位置

intwhere(point p0,point p1,point p2)

//線段相交

bool interest(point p1,point p2,point q1,point q2)

//線段交點

point getpoint(line l1,line l2)

計算幾何之判斷線段相交

計算幾何 判斷線段相交 time limit 1000ms memory limit 65536k description 線段相交 linecross.pas c cpp 問題描述 基本問題 判斷二維平面上的兩條線段是否相交。注意 相交有很多種,這裡指的 相交 是指兩條線段恰好有唯一乙個不是端點的...

計算幾何之判斷線段相交

判斷線段相交可以用到之前講的判斷點與線段的位置關係的來實現。兩條線段相交的充要條件是 兩條線段都滿足 另一條線段的兩個端點分別位於當前線段的順時針方向和逆時針方向 那麼這兩條線段相交。這樣的話,就能用之前的ccw來解決了。題目 cgl 2 b ac include include using nam...

計算幾何 判斷線段相交(一)

兩個線段的交點個數可能有0個 1個或者無數個 判斷兩個線段相交,可以按照如下步驟 計算叉積時異號 計算叉積時異號 3.下面是判斷線段相交的程式 include include using namespace std define min x,y x define max x,y x y x y co...