/*
* 多邊形的交,多邊形的邊一定是要按逆時針方向給出
* 還要判斷是凸包還是凹包,呼叫相應的函式
* 面積並,只要和面積減去交即可
*/#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 的...