初學計算幾何(三) 多邊形的簡單操作

2022-05-14 14:24:53 字數 704 閱讀 1818

下面是乙個多邊形的基本定義:

struct polygon//乙個結構體用來儲存乙個多邊形

//建構函式

};

在多邊形問題中,我們需要好好控制精度:

#define eps 1e-10//設定eps減小精度誤差

inline int dcmp(double x) //判斷正負

我們可以以該點向外引一條射線,如果與多邊形邊界相交奇數次,就說明該點在多邊形內,否則就在多邊形外。

特殊地,如果該點在多邊形邊上,我們可以返回\(-1\)。

**如下:

inline int isinpolygon(point a,polygon p)//判斷乙個點是否在多邊形內部

return flag?1:0;//flag>0表示在多邊形內部,否則說明在多邊形外部

}

求多邊形面積,我們可以選乙個點作為端點,然後列舉與它不相臨的邊,計算出該點與這些邊所構成的三角形的面積和即可。

**如下:

inline double polygonarea(polygon p)//求多邊形面積

{ register int i;register double res=0;//res統計和

for(i=2;i關於多邊形的內容貌似就這些?

如果還有的話我會繼續進行補充的。

計算幾何 多邊形

判定凸多邊形 頂點凹凸性法 判斷點在凸多邊形內外 與判定凸多邊形差不多,用判斷點與多邊形兩頂點叉乘,都大於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 的...