博主今天聽了一句話,感覺好有內涵。。。「待你征服宇宙,給我乙個地球可好」 。。。。
/*
線段相交 2016/5/16
*/#include #include #include #define def 1e-6
//點struct point
;//直線
struct line
;int direction(point* pi,point* pj,point* pk)
//判斷點是否在pi和pj為對角點的矩形裡
bool onsegment(point* pi,point* pj,point* pk)
else
if(pi->y > pj->y)
else
return (minx <= pk->x)&&(maxx >= pk->x)&&(miny <=pk->y)&&(maxy >= pk->y);
}//判斷線段相交
bool segmentintersect(point* p1,point* p2,point* p3,point* p4)
/*求直線交點
ax + by + c = 0
若1、ax + by = e
2、cx + dy = f
交點座標(x,y)
coll = ad - bc; //判斷共線 coll = 0
x = (ed - bf)/coll;
y = (af - ec)/coll;
已知直線上兩點求直線的一般式方程
已知直線上的兩點p1(x1,y1) p2(x2,y2), p1 p2兩點不重合。則直線的一般式方程ax+by+c=0中,a b c分別等於:
a = y2 - y1
b = x1 - x2
c = x2*y1 - x1*y2
*///判斷共線
bool segmentcollineation(double a ,double b,double c,double d)
//求交點
void segmentcrossover(point* p1,point* p2,point* p3, point* p4)
else
}int main()
求兩直線交點 判斷兩線段相交 求線段交點
點的結構 struct point point double x,double y 線段的結構 struct egde egde point a,point b 建立的邊,存在的線段求兩直線 線段 交點 void getpoint point p1,point p2,point p3 point p...
判斷兩線段相交,並求交點
原文 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...
線段相交問題
判斷兩條直線是否相交,有兩個步驟確定 1 快速排斥。2 跨立實驗 啊啊啊,逼格好高 然而事實解法的逼格卻。一 快速排斥簡單的說就是確保他們能相交的基本的要求是滿足的 如上圖,明顯的,要兩個線段相交,就要豎直方向有重疊 min a.y,b.y max d.y,c.y max a.y,b.y min d...