南陽理工 3 多邊形重心問題

2021-06-17 21:49:38 字數 1204 閱讀 3996

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:5

描述

在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線, (第乙個和最後乙個連線),所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形;

如果是一條線段,我們定義面積為0,重心座標為(0,0).現在求給出的點集組成的圖形的面積和重心橫縱座標的和;

輸入第一行有乙個整數0

輸出輸出每個多邊形的面積、重心橫縱座標的和,小數點後保留三位;

樣例輸入

3

30 1

0 20 3

31 1

0 00 1

41 1

0 00 0.5

0 1

樣例輸出

0.000 0.000

0.500 1.000

0.500 1.000

žarea(a,b,c)= 1/2 * (↑ab) × (↑ac) 

=∣           ∣/2

特別注意:

以上得到是

有向面積(有正負)

1:將有n個頂點的多邊形以其中乙個頂點劃分成n-2個三角形

2:利用三角形的叉積求面積公式求得每個劃分三角形的面積,同時與該三角形重心相乘

3:將2步驟所得的積數相加;

4:將3所得結果除以多邊形面積總和可得多邊形重心

#include#includedouble si(double *x,double *y,int i)

int main()

//for

for(i=1;i<=m-2;i++)

if(sum==0)

printf("0.000 0.000\n");

else

printf("%.3f %.3f\n",-1*sum,(gsx+gsy)/sum);

}//while

//system("pause");

return 0;

}

多邊形重心問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線,第乙個和最後乙個連線 所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形 如果是一條線段,我們定義...

acm 多邊形重心問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線,第乙個和最後乙個連線 所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形 如果是一條線段,我們定義...

NYOJ 3 多邊形重心問題

int abs int i 處理int型別的取絕對值 double fabs double i 處理double型別的取絕對值 float fabsf float i 處理float型別的取絕對值 時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述在某個多邊形上,取n個點,這n個...