求兩個多邊形的交面積(模板)

2021-08-07 13:56:24 字數 940 閱讀 1544

別人的部落格:

/* 

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

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

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

*/

#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;

}

多邊形面積交模板

多邊形的交,多邊形的邊一定是要按逆時針方向給出 還要判斷是凸包還是凹包,呼叫相應的函式 面積並,只要和面積減去交即可 include using namespace std const double eps 1e 8 int dcmp double x struct point double cro...

模板 多邊形面積交

1.必須逆時針給出多邊形頂點 2.面積並 面積和 面積交 include using namespace std const int maxn 300 const double eps 1e 8 int dcmp double x struct point 點結構體 double cross poi...

兩個簡單多邊形求交 CGAL

兩個多邊形求交的實現需要幾個模組 cgal中有insect函式,但是必須要求使用cgal exact predicates exact constructions kernel 本人出於其他想法,沒有把基於exact predicates inexact constructions kernel核的...