HDU2036 多边形面积模板
2017-08-16 19:59
369 查看
利用向量叉乘:三角形ABC面积可以利用向量 (↑AB) ×(↑AC)*(1/2)得出,对于多边形,可以随意选取多边形某一点为源点然后一次计算.对于如下:
的多边形
![](http://my.csdn.net/uploads/201208/24/1345777548_1323.png)
我们可以以P1为扇面中心,连接P1Pi就得到N-2个三角形,由于凸性,保证这些三角形全在多边形内,那么,这个凸多边形的有向面积:
A=sigma(Ai)
(i=1…N-2)
[cpp]
view plain
copy
print?
#include <stdio.h>
#include <math.h>
typedef struct node
{
double x,y;
}node;
node s[1001];
double cal(node x,node y,node z)
{
return (y.x-x.x)*(z.y-x.y)-(y.y-x.y)*(z.x-x.x);
}
int main()
{
int n,i;
double res;
while(scanf("%d",&n)&&n)
{
res=0;
for(i=0;i<n;i++)
scanf("%lf%lf",&s[i].x,&s[i].y);
for(i=1;i<n-1;i++)
res+=cal(s[0],s[i],s[i+1]);
printf("%.1lf\n",res/2.0);
}
return 0;
}
的多边形
![](http://my.csdn.net/uploads/201208/24/1345777548_1323.png)
我们可以以P1为扇面中心,连接P1Pi就得到N-2个三角形,由于凸性,保证这些三角形全在多边形内,那么,这个凸多边形的有向面积:
A=sigma(Ai)
(i=1…N-2)
[cpp]
view plain
copy
print?
#include <stdio.h>
#include <math.h>
typedef struct node
{
double x,y;
}node;
node s[1001];
double cal(node x,node y,node z)
{
return (y.x-x.x)*(z.y-x.y)-(y.y-x.y)*(z.x-x.x);
}
int main()
{
int n,i;
double res;
while(scanf("%d",&n)&&n)
{
res=0;
for(i=0;i<n;i++)
scanf("%lf%lf",&s[i].x,&s[i].y);
for(i=1;i<n-1;i++)
res+=cal(s[0],s[i],s[i+1]);
printf("%.1lf\n",res/2.0);
}
return 0;
}
#include <stdio.h> #include <math.h> typedef struct node { double x,y; }node; node s[1001]; double cal(node x,node y,node z) { return (y.x-x.x)*(z.y-x.y)-(y.y-x.y)*(z.x-x.x); } int main() { int n,i; double res; while(scanf("%d",&n)&&n) { res=0; for(i=0;i<n;i++) scanf("%lf%lf",&s[i].x,&s[i].y); for(i=1;i<n-1;i++) res+=cal(s[0],s[i],s[i+1]); printf("%.1lf\n",res/2.0); } return 0; }
相关文章推荐
- HDU2036 多边形面积模板
- hdu5130Signal Interference(圆与多边形相交面积模板)
- 【模板】两多边形交并面积模板
- 摘:向量叉乘_计算多边形面积_算法模板
- hdu2036 求多边形面积
- 求多边形面积 HDU2036
- hdu2036 计算坐标内任意多边形的面积 含凹凸
- HDU 2036(多边形计算面积模板)
- 模板-多边形与圆的面积交
- hdu2036改革春风吹满地(多边形面积)
- 圆与多边形面积交模板
- 计蒜客 多边形面积(pick定理模板题)
- 多边形(n边形)面积计算公式hdu2036
- hdu2036 (计算多边形的面积)
- 多边形(n边形)面积计算公式hdu2036
- 计算多边形面积hdu2036
- 【1级裸装没点技能点的计算几何】任意多边形面积-HDU2036
- 【HDU 2036】改革春风吹满地 求多边形面积(模板)
- hdu2036(多边形面积)
- 多边形和圆的相交面积(模板)hdu2892、hdu4404