求多個多邊形的總面積以及多邊形的相互覆蓋以後的面積
給定每個點的座標。
#include //求多個多邊形的總面積以及多邊形的相互覆蓋以後的面積#define ll long long
#define met(a,x) memset(a,x,sizeof(a))
#define ull unsigned long long
#define mp make_pair
using
namespace
std;
const
double pi=4*atan(1.0
);const
int mod=1e9+7
;const
double inf=1e200;
const
double eps=1e-12
;int dcmp(double
x)struct
node
};vector
pp[110
];pair
s[110*60
];node
operator +(node a,node b)
node
operator -(node a,node b)
node
operator *(node a,double
p)node
operator /(node a,double
p)bool
operator ==(const node& a,const node&b)
double
seg(node o,node a,node b)
double
det(node a,node b)
double
det(node o,node a,node b)
double area(vectorp)
double
dot(node a,node b)
double
length(node a)
double polyunion(vector*p,int
n) }
else}}
}sort(s,s+m);
double pre=min(max(s[0].first,0.0),1.0),now,sum=0
;
int cover=s[0
].second;
for(int j=1; j)
ans+=det(a,b)*sum;}}
return ans/2;}
intmain()
}double t1=0,t2=polyunion(pp,n);
for(i=0; i)
t1+=area(pp[i]);
//第乙個是總面積,第二個是覆蓋以後的面積
cout<
<7)<
'<
<7)<
//printf("%.7lf %.7lf\n",-t1,-t2);
return0;
}
多邊形求面積,
這個程式很值得一博。昨天一位學地質的高中同學問我寫個程式求多邊形面積,因為他說看到excel就煩。正好前段時間在csdn上看到乙個帖子求多邊形面積,也想到了乙個演算法,於是寫了這個程式。演算法描述 乙個多邊形的面積可以由這樣兩個系列的梯形來計算,以凸多邊形舉例,在圖形上方的一系列邊和其在x軸的投影組...
求多邊形面積
可以利用多邊形求面積公式 s 0.5 x0 y1 x1 y0 x1 y2 x2 y1 xn y0 x0 yn 其中點 x0,y0 x1,y1 xn,yn 為多邊形上按逆時針順序的頂點。簡要證明 1.我們先簡單地從三個點入手 包括原點 面積s oab sabcd s oad s obc sabcd y...
求多邊形的面積
多邊形的面積求法 在草稿紙上面我們,我們就把它考慮成組合圖形去處理,所以我們是把他不斷的拆分,因為我們是不可以直接去求它的面積的。那麼在我們的電腦裡面,我們用 怎麼去去求面積呢?因為我們不是提前知道他們的組合圖形,所以我們不知道怎麼樣去求,或者說按照什麼圖形的面積求法,去求。當邊數為3的時候,我們知...