求任意凸多边形的面积(计算几何)
链接:https://ac.nowcoder.com/acm/problem/16130
小X的多边形
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
众所周知的是,小X特别喜欢由线条组成的形状,比如说凸多边形,这一天小X正在纸上画着喜欢的凸多边形,这时候小Y走了过来,指着一张图片上的多边形,问小X知道这个图形的面积么,这可把小X难住了,聪明的你一定能够帮助小X解决这个问题,对吧~
输入描述:
多边形上最多有六个点,顺时针or逆时针给定每个点坐标(两个整数表示),保证无多余的点并且没有点重复。
输出描述:
输出一个整数,表示凸多边形的面积,结果四舍五入。
示例1
输入
3
0 0
1 0
2 2
输出
1
示例2
输入
5
-4 -2
1 -3
3 2
-1 4
-4 2
输出
35
solution:将多边形分解为多个三角形、利用行列式计算每个三角形的面积
#include <bits/stdc++.h>
using namespace std;struct Point{int x, y;
}p[101];double area(int a)
{return (p[a - 1].x * p[a].y - p[a].x * p[a - 1].y) - (p[0].x * p[a].y - p[a].x * p[0].y) + (p[0].x * p[a - 1].y - p[a - 1].x * p[0].y);
}int main()
{int n;scanf("%d", &n);for (int i = 0; i < n; ++i)scanf("%d%d", &p[i].x, &p[i].y);double sum = 0;for (int i = 2; i < n; ++i)sum += 1.0 / 2.0 * area(i);printf("%.0f\n", round(sum));return 0;
}
求任意凸多边形的面积(计算几何)相关推荐
- 初中生问题:求任意凸多边形的交叉面积
一个初中生问题:求任意凸多边形的交叉面积 类似的几种情况: 第一种0:两个多边形无交叉,没有相交多边形,且一方在另一方没有内点,相交面积为0. 第二种1:两个多边形无交叉,且一方在另一方有内点.称之为 ...
- 用带实参的宏名通过“海伦公式”求任意三角形的面积
#include <stdio.h> #include <math.h> /*因本程序中用到了sqrt函数,所以必须*/ #define S(a,b,c) (a+b+c)/2. ...
- c++如何求任意多边形的面积
由于项目需要,求解任意不规则多边形的面积 ,想了很久,也不知道怎么叙述,直接代码展示吧 #include <iostream> #include <vector> using ...
- C语言用海伦公式求任意三角形的面积
初学C语言,发布出来只是想记录我的学习过程 写这个代码的时候我是分三点来思考的 1.需要声明哪些量 2.三角形必须满足的定义 3.可以用if-else结构完成 以下就是代码: #include < ...
- C++实现——任意多边形的面积
//求任意多边形的面积 /*语法:result = polygonarea(vector<Point>&polygon, int N); 参数: polygon:多变形顶点数组 N ...
- 凸多边形面积_C++计算任意多边形的面积
任意多边形的面积计算_拾忆楓灵的博客-CSDN博客blog.csdn.net 计算任意多边形的面积 - tenos - 博客园www.cnblogs.com 完美解决计算3D空间任意多边形面积_S ...
- 求任意多边形面积-有向面积
给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做? 我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别 ...
- 已知三个点坐标求 三角形面积 || 求任意多边形面积公式||判断点在直线的左侧还是右侧
已知三个点坐标求 三角形面积 由A-->B-->C-->A 按逆时针方向转.(行列式书写要求) 设三角形的面积为S 则S=(1/2)*(下面行列式) |x1 y1 1| |x2 y2 ...
- hdoj-2036题解-向量积法求任意多边形面积
首先看一道hdoj的算法题:hdoj-2036-改革春风吹满地 该题题意就是逆时针给出点的坐标,求这个多边形的面积.下面就写一下如何用向量积法求多边形面积. 向量积法与面积 上图说明了如何利用向量求得 ...
最新文章
- Factory-pattern 三种工厂模式
- 自动化运维之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP无人值守安装系统
- 【转】解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题...
- 科大星云诗社动态20201222
- 编写代码的软件用什么编写的_如何通过像编写代码一样克服对编写的恐惧
- Eclipse的SVN使用
- TensorFlow基础笔记(13) tf.name_scope tf.variable_scope学习
- redhat 7 防火墙配置
- soliworks三维机柜布局(三)绘制电气线路图
- python1到100偶数求和_python1-100怎样偶数求和?_后端开发
- 微电子专业想投身数字IC设计方向,在硕士阶段应该怎么学习?
- 屏幕录像专家7.5注册机
- 暴雪-关于坚持的故事(转)
- php一年过去多少天,php获取一年有多少天
- ABAP报表程序结构框架
- [cnblogs镜像]Unity 移动键Q的三种用法 For Mac,Windows类同
- 使用神经网络实现葡萄酒数据集的分类分析
- 我的世界pc版服务器屏幕显示太大,《我的世界》:mc的自由度太高,服务器老是被破坏,服主一招搞定...
- 1)前端的html和css基础标签简单盒子
- 悟空CRM客户关系管理系统