1015 - 计算几何之多边形的面积 - Build Your Home(POJ 3907)
传送门
题意
顺时针或逆时针给出多边形的顶点,求该多边形的面积
分析
很基础……
利用叉积的性质,每次选择相邻的两个点做叉积,把答案累加起来
由于方向的问题,最后要取一个绝对值
又因为叉积算的是平行四边形的面积,所以还要除以2
还有感谢zxy大佬Orz,我的神仙级错误又被他完美的debug掉。我居然把_y打成了-y????心态爆炸
代码
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
struct point {double x,y;point(){}point(double _x,double _y):x(_x),y(_y){ };//sbsbsbsbsbsbsbsbsb居然把_y打成了-y friend inline point operator +(const point &a,const point &b){return point(a.x+b.x,a.y+b.y);}friend inline point operator -(const point &a,const point &b){return point(a.x-b.x,a.y-b.y);}friend inline point operator *(double k,const point &a){return point(a.x*k,a.y*k);}friend inline double dot(const point &a,const point &b){return a.x*b.x+a.y*b.y;}friend inline double cross(const point &a,const point &b){return a.x*b.y-b.x*a.y;}friend inline double len(const point &a){return sqrt(dot(a,a));}friend inline double dis(const point &a,const point &b){return len(a-b);}
}a[10009],S;
int n;
int main(){while(1){S.x=0.0;S.y=0.0;scanf("%d",&n);if(n==0) break;int i,j,k;for(i=1;i<=n;++i)scanf("%lf%lf",&a[i].x,&a[i].y);if(n==1||n==2){printf("0\n");continue;}//记着先把数据读完!再判断 double res=0;for(i=1;i<=n;++i){int j=i+1;if(j>n) j=1;res+=cross(a[i]-S,a[j]-S);}printf("%.0f\n",fabs(res/2.0));}return 0;
}
1015 - 计算几何之多边形的面积 - Build Your Home(POJ 3907)相关推荐
- POJ3348 Cows【凸包+多边形求面积】
POJ3348Cows 凸包+多边形求面积 个人分类: 计算几何凸包 Language: Default Cows Time Limit: 2000MS Memory Limit: 65536K ...
- C++ 计算多边形的面积,计算IOU
//求任意多边形的面积 /*语法:result = polygonarea(vector<Point>&polygon, int N); 参数: polygon:多变形顶点数组 N ...
- 【计算几何】圆的面积并
总之,圆的面积并是一个非常漂亮的算法,虽然说好像没有很强的扩展性以及实用性,但确实训练自己计算几何代码能力的好题目. 一下皆蒯自栗师<圆的并>解题报告: 试想,如果人来做此题,而不使用计算 ...
- 洛谷——P1183 多边形的面积
P1183 多边形的面积 多边形求面积公式: $\frac {\sum_{i=0}^{n-1}(x_iy_{i+1}-y_ix_{i+1})}{2}$ #include<bits/stdc++. ...
- 转:求多边形的面积 算法几何
我还是简单解释一下,如果是没有读过高等数学的朋友,也让你大致明白. 定积分的本质是求和,计算f(x)在积分区间[a,b]上的一个和S,首先把积分区间分成n份,这样的分法记为λ,记Δ(λ)=max{Δx ...
- 凸多边形面积_C++计算任意多边形的面积
任意多边形的面积计算_拾忆楓灵的博客-CSDN博客blog.csdn.net 计算任意多边形的面积 - tenos - 博客园www.cnblogs.com 完美解决计算3D空间任意多边形面积_S ...
- 洛谷 P1183 多边形的面积
P1183 多边形的面积 题目描述 给出一个简单多边形(没有缺口),它的边要么是垂直的,要么是水平的.要求计算多边形的面积. 多边形被放置在一个 X-YX−Y 的卡笛尔平面上,它所有的边都平行于两条坐 ...
- python计算多边形的面积并保留两位小数_计算任意多边形面积的Python实现
最近需要实现一个计算非凸多边形面积的功能,需要输入是顺次排序的多边形顶点坐标,假设输入的多边形顶点是V={v0, v1, v2, -, vn-1},则多边形的边为E={, , ,...,, }.要求输 ...
- 任意多边形的面积(C语言)
[问题描述] 给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积. [输入形式] 从标准输入读取顶点坐标.格式为:第一行是点的个数N(3<N<15),后面紧接着N行,每行两个数字 ...
最新文章
- Permission denied: make_sock: could not bind to address [::]:81 Apache 虚拟主机
- Altium Designer修改3D视图时PCB板的颜色
- C# winform自己实现Windows消息处理
- java 逗号运算符_Java 运算符
- VTK修炼之道59:图形基本操作进阶_纹理映射
- 罗永浩欲直播带货,京东说可以帮忙联系
- linux mtime参数,linux find mtime参数详解
- HTML - 文本及其格式化
- Python零基础学习笔记(三十九)—— time
- 如何防止135端口入侵
- echarts制作3d柱形图
- 计算机内存空间为何不能无限扩容,空间是否可以无限扩张?
- java+selenium——Navigate命令
- react 中样式写法
- 歌词欣赏《一程山水一程歌》
- 微信小程序-枯木学习笔记5-我的信息
- uni-app的介绍
- html页面比对插件,html页面缩放插件
- linux ftok()
- POI问题总结,关于数字级联及多级级联(三级以上)
热门文章
- 将npz文件转化为txt文件中出现错误(ValueError: Expected 1D or 2D array, got 3D array instead)的解决办法
- 什么是手游联运?做手游联运有哪些优势?
- 手机漏洞检测工具的分析
- Android播放器开源项目,github常用视频音频播放器
- 【无标题】java多线程分批同步数据设计与实现(转载)
- STEP文件格式(*.step, *.stp)是什么软件。怎样打开
- STM32相关知识——u8是什么意思?
- 酒店点餐系统开发详解(五)
- 我的软件推广成功之路
- 总结一下,什么是鸿蒙?