點的結構
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 ...