計算幾何 多邊形的交與並

2021-07-22 09:09:32 字數 862 閱讀 1088

/*

* 多邊形的交,多邊形的邊一定是要按逆時針方向給出

* 還要判斷是凸包還是凹包,呼叫相應的函式

* 面積並,只要和面積減去交即可

*/#include using namespace std;

const int maxn = //300;

const double eps = 1e-8;

int dcmp(double x)

struct point

;double cross(point a,point b,point c) ///叉積

point intersection(point a,point b,point c,point d)

//計算多邊形面積

double polygonarea(point p, int n)

double cpia(point a, point b, int na, int nb)//convexpolygonintersectarea

memcpy(p, tmp, sizeof(point) * tn);

nb = tn, p[nb] = p[0];

}if(nb < 3) return 0.0;

return polygonarea(p, nb);

}double spia(point a, point b, int na, int nb)///******polygonintersectarea 呼叫此函式

}return res;

}point p1[maxn], p2[maxn];

int n1, n2;

int main()

return 0;

}

計算幾何 多邊形

判定凸多邊形 頂點凹凸性法 判斷點在凸多邊形內外 與判定凸多邊形差不多,用判斷點與多邊形兩頂點叉乘,都大於0,點在多邊形內,小於0,點在多邊形外。水平 垂直交叉點數判別法 適用於任意多邊形包括凹凸邊形 注意到如果從p作水平向左的射線的話,如果p在多邊形內部,那麼這條射線與多邊形的交點必為奇數,如果p...

計算幾何 多邊形筆記

計算下乙個前後所組成向量的階乘,如果在計算時,出現負值,則此多邊形是凹多邊形,如果所有頂點計算完 畢,其結果都大於0,則多邊形是凸多邊形。判斷點在凸多邊形內外 與判定凸多邊形差不多,用判斷點與多邊形兩頂點叉乘,都大於0,點在多邊形內,小於0,點在多邊 形外。水平 垂直交叉點數判別法 適用於任意多邊形...

計算幾何 多邊形面積

彙總篇 計算幾何彙總 規定頂點逆時針方向的多邊形面積為正 取原點0 0,0 s a,b,c,d s o,a,b s o,b,c s o,c,d s o,d,a 圖中o在外部,obc,ocd,oda 全部是正的,加起來構成了5變形 obcda 的面積,但 oab是負面積,因此最後剛好等於 abcd 的...