計算幾何基礎詳解與模板

2021-09-26 03:07:43 字數 1568 閱讀 3432

不知道為啥,還是比較喜歡手寫公式,大概是因為比較方便吧

//判等

const double eps = 1e-9;

int dcmp(double x,double y)

return -1;

} //標頭檔案

#include #include //常用常數

const double pi = acos(-1.0);

const double inf = 1e100;

const double eps = 1e-6;

//常用函式

int fx = floor(x);

int cx = ceil(x);

int rx = round(x);

//點的定義

struct point;

//向量的定義

struct vector;

//點積

double dot(vector a,vector b)

//叉積

double cross(vector a,vector b)

//比較函式,sort()結構體

bool cmp(vector p,vector q)

return p.a

} //判斷點在直線上

vector q//需要判斷的點

vector a1,a2//a1,a2為直線上的兩點

vector c.a=q.a-a1.a;

vector d.a=a2.a-q.a;

if(!cross(c,d))

//計算兩直線交點

vector getlineintersection(point p,vector v,point q,vector w)

bool onsegment(point p,point a1,point a1)

//判斷兩線段是否相交(不允許在頂點處相交)

bool segmentproperintersection(point a1,point a2,point b1,point b2)

//判斷兩線段相交 (允許在頂點處相交)

bool segmentproperintersection(point a1,point a2,point b1,point b2)

return (sgn(c1)*sgn(c2)<0 && sgn(c3)*sgn(c4)<0);

}

計算幾何基礎 模板

目錄計算幾何拖了這麼久,終於拖到省選前了。emm不求能a題,只求寫暴力。參考 ps 剛開始寫的 讀入用的p i point 因為初始化了建構函式所以這麼讀進去橫縱座標可能是反的。有些題並沒有影響所以以前的就不改了。include include include include include inc...

計算幾何模板

sgn返回x經過eps處理的符號,負數返回 1,正數返回1,x的絕對值如果足夠小,就返回0。const double eps 1e 8 int sgn double x double mysqrt double x pt是point的縮寫 int版 struct pt pt int x,int y ...

計算幾何模板

include define vct point using namespace std const double pi atan2 0,1 const double eps 1e 8 int sgn double d struct point bool operator point b const...