計算幾何公式集錦

2022-05-30 18:36:13 字數 1158 閱讀 9845

1---計算多邊形重心方法:

(1)劃分多邊形為三角形:

以多邊形的乙個頂點v為源點(v可取輸入的第乙個頂點),作鏈結v與所有非相鄰頂點的線段,即將原n邊形或分為(n-2)個三角形;

(2)求每個三角形的重心和面積:

設某個三角形的重心為g(cx,cy),頂點座標分別為a1(x1,y1),a2(x2,y2),a3(x3,y3),則有cx = (x1 + x2 + x3)/3.同理求得cy。求面積的方法是s = ( (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1) ) / 2,當a1,a2,a3順時針排列時取-,否則取正(此定理不證)。事實上,在求每個三角形時不需要辨別正負,之後有方法抵消負號,見下述。

(3)求原多邊形的重心:

公式:cx = (∑ cx[i]*s[i]) / ∑s[i]; cy = (∑ cy[i]*s[i] ) / ∑s[i];其中(cx[i], cy[i]), s[i]分別是所劃分的第i個三角形的重心座標和面積。由題「 connect the points in the given order」知每個s[i]的正負號相同,故而∑ cx[i]*s[i]能與∑s[i]消號,所以根本不需要在第(2)步判斷每個s[i]的正負。另外,在(2)中求每個重心座標時要除以3,實際上不需要在求每個三角形座標時都除以3,只需要求出∑ cx[i]*s[i]後一次性除以3即可。即是多邊形重心座標變為:cx = (∑ cx[i]*s[i]) / (3*∑s[i]); cy = (∑ cy[i]*s[i] ) / (3*∑s[i]);

總結:每個三角形重心:cx = (x1 + x2 + x3)/3;cy同理。

每個三角形面積:s = ( (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1) ) / 2;

多邊形重心:cx = (∑ cx[i]*s[i]) / (3*∑s[i]); cy = (∑ cy[i]*s[i] ) / (3*∑s[i]);

2---任意四面體體積公式,尤拉四面體體積公式

double fourarea(double p,double q,double r,double n,double m,double l)//傳入6條邊

計算幾何求公式

例題1 poj 1380 矩陣的包含 給你兩個矩陣的長和寬,問前面這個矩陣能否包含後面這個矩陣。1 當前面的矩陣的寬 小於後面這個矩陣的寬時,不能包含。2 當前面矩陣的面積 後面矩陣的面積,不能包含。3 當前面矩陣的長,寬 後矩陣的長,寬,能夠包含。4 特別注意前矩陣寬 後矩陣的寬,但是長 後矩陣的...

計算幾何公式總結

一.注意 1.注意捨入方式 0.5的捨入方向 防止輸出 0.2.幾何題注意多測試不對稱資料.3.整數幾何注意xmult和dmult是否會出界 符點幾何注意eps的使用.4.避免使用斜率 注意除數是否會為0.5.公式一定要化簡後再代入.6.判斷同乙個2 pi域內 兩角度差應該是 abs a1 a2 p...

計算幾何公式 定理

1.餘弦定理 cos a b c a 2bc 2.海 式 假設在平面內,有乙個三角形,邊長分別為a b c,三角形的面積s可由以下公式求得 s sqrt s1 s1 a s1 b s1 c 其中s1表示的是三角形的周長的一半。3.已知三邊和內切圓或外切圓求面積 s abc 4r 其中r是三角形外接圓...