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

2021-08-25 05:54:35 字數 951 閱讀 5860

點的結構

struct  point

point(double _x,double _y)

};

線段的結構

struct egde

egde(point a,point b)

};//建立的邊,存在的線段

求兩直線(線段)交點

void getpoint(point p1,point p2,point p3 point p4)

else

}

判斷兩線段相交

注意:不能判斷共線,共端點情況情況。

double multi(point p1,point p2,point p0)

bool intacross(egde v1,egde v2)

判斷線段相交

可以有共端點的情況

bool across(egde v1,egde v2)

依舊是判斷線段相交

交與乙個端點也是相交,包含不算相交

int sgn(double x)

//線段p1p2與線段p3p4

bool across(point p1,point p2,point p3,point p4)

求線段交點(在判斷已有交點的情況使用)

//求線段交點

point intersection(egde u,egde v)

判斷兩線段相交,並求交點

原文 include math.h include stdio.h double e 0.0001 struct point double min double x1,double x2 double max double x1,double x2 bool between double x,dou...

判斷兩條線段 直線相交,並求交點

一.向量基本知識 因為後面的計算需要一些向量的基本知識,這裡只是簡單的列舉如下,如果需要更加詳細的資訊,可以自行搜尋wikipedia或google。1.向量的概念 如果一條線段的端點是有次序之分的,我們把這種線段成為有向線段 directed segment 如果有向線段p1p2的起點p1在座標原...

求兩直線的交點

一般方程法 直線的一般方程為f x ax by c 0。既然我們已經知道直線的兩個點,假設為 x0,y0 x1,y1 那麼可以得到a y0 y1,b x1 x0,c x0y1 x1y0。因此我們可以將兩條直線分別表示為 f0 x a0 x b0 y c0 0,f1 x a1 x b1 y c1 0 ...