程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> hdu1115 Lifting the Stone(幾何,求多邊形重心模板題)

hdu1115 Lifting the Stone(幾何,求多邊形重心模板題)

編輯:關於C++

題意:就是給你一個多邊行的點的坐標,求此多邊形的重心。

一道求多邊形重心的模板題!

 

#include
#include
#include
using namespace std;
struct point
{
    double x,y;
}PP[1000047];
point bcenter(point pnt[],int n){
    point p,s;
    double tp,area = 0, tpx=0, tpy=0;
    p.x=pnt[0].x;
    p.y=pnt[0].y;
    for(int i=1;i<=n;++i){
        s.x=pnt[(i==n)?0:i].x;
        s.y=pnt[(i==n)?0:i].y;
        tp=(p.x*s.y-s.x*p.y);
        area += tp/2;
        tpx += (p.x + s.x) * tp;
        tpy += (p.y + s.y) * tp;
        p.x = s.x; p.y = s.y;
    }
    s.x=tpx / (6*area);s.y=tpy/(6*area);
    return s;
}
int main()
{
    int N,t;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&N);
        for(int i=0;i

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved