计算凸多边形面积的算法
1. 思路:
可以将凸多边形(边数n > 3)划分为 (n - 2) 个三角形,分别运用向量叉积计算每个三角形的面积,最后累加各个三角形的面积就是多边形的面积。
2. 求多边形面积的算法模板:
定义点的结构体 struct Point{ double x,y;} p[MAXPOINT];计算三角形面积 double getS(Point a,Point b,Point c) { return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x)) / 2; //应用叉积的定义推出的 }计算多边形面积。必须确保 n>=3,且多边形是凸多边形 double getPS(Point p[], int n) {double sumS = 0;for(int i = 1; i <= n - 1; i++)sumS += getS(p[1], p[i], p[i + 1]); // n-2个三角形的面积和return sumS;}
转载于:https://www.cnblogs.com/xiaoniunwp/p/3599031.html
计算凸多边形面积的算法相关推荐
- UVA10652 Board Wrapping(求凸包、计算凸多边形面积)
整理的算法模板合集: ACM模板 有n块矩形木板,你的任务是用一个面积尽量小的凸多边形把它们包起来,并计算出木板占整个包装面 积的百分比 [输入格式] 输入第一行为数据组数T(T≤50).每组数据第一 ...
- python计算三角形面积_【Scratch算法编程】计算三角形面积
[问题]已知一个三角形三条边的边长分别为a,b,c,利用海伦-秦九韶公式设计一个计算三角形面积的算法.(已知三角形三边边长分别为a b c,则三角形的面积为S= ),其中p= .这个公式被称为海伦-秦 ...
- 经典算法题计算积水面积——python
原题:给定一个整数数组,假设元素都是厚为1的挡板,往里面倒水,计算盛水的最大横截面积. 算法1思路: 实现思路:每次看到一个元素,就往回看会增加多少积水 时间复杂度,每遍历一个元素都有可能回看所有已经 ...
- 计算多边形(polygon)面积的算法原理和python实现
计算多边形(polygon)的面积其实很简单,假设是n边形,分割为n-2个三角形,积分别计算每个三角形面积后累加得多边形面积. 如下图所示: 那么如何计算三角形的面积呢? △ABC的面积是" ...
- 蒙特卡洛算法举例,计算阴影部分面积MATLAB和C语言实现
计算阴影部分面积. 一个古人要求一个图形的面积,他把图形画在一块方形布上,然后找来一袋豆子,然后将所有豆子洒在布上,落在图形内豆子的重量比上那块布上所有豆子的重量再乘以布的面积就是他所要求的图形的面 ...
- python计算多边形面积_Python求凸包及多边形面积教程
一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...
- python计算颜色占比_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
Python + Opencv2 实现轮廓提取,轮廓区域面积计算: 对图像处理时,会遇到这样一个场景:找到图像主体轮廓,这是其一,可能为了凸显轮廓,需要用指定的颜色进行标记:轮廓标记完可能任务还没有结 ...
- lisp提取长方形坐标_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
Python + Opencv2 实现轮廓提取,轮廓区域面积计算: 对图像处理时,会遇到这样一个场景:找到图像主体轮廓,这是其一,可能为了凸显轮廓,需要用指定的颜色进行标记:轮廓标记完可能任务还没 ...
- 这部计算机27厘米宽英语怎么说,24/27/32寸电脑显示器尺寸多大?长宽多少厘米?显示屏长宽与面积的算法...
最近小编想了解24寸和27寸显示器的尺寸有多大,以及它们的长宽各是多少,于是网上查了一下,结果发现基本都是复制粘贴的垃圾答案,根本找不到一个正确的答案,于是小编便查阅了显示器尺寸的计算方法,从而求出电 ...
最新文章
- 使用maven下载依赖包及maven常见问题汇总
- 显示网页手机号星号_尾号“9999”扬州手机号,拍出13.4万!
- mysql from unixtime_mysql 错误总结 和FROM_UNIXTIME用法
- 计算机Word应用程序,Word2007目录设置_计算机软件和应用程序_IT /计算机_信息
- 简单入门Javascript正则表达式
- app中使用用户名/邮箱/手机号登录的思路分析
- mysql连接不上怎么重置密码错误_MySQL数据库连接不上、密码修改问题
- Sphinx sphinx_rtd_theme
- Linux全攻略--DHCP服务器配置与管理
- Android系统中用C语言来编写服务程序并且开机自启动运行服务
- mac下nginx搭建
- Demo(3月28日)
- 计算机组成原理总概括(转)
- matlab幂函数回归分析,求助matlab种幂函数回归 这样的:
- python编程写完需要几年驾龄_编程小白怎么学Python,大概要多久才能学好?
- cad图纸比对lisp_CompareDWG|CAD图纸比较软件(CompareDWG)下载v2018 官方版 - 欧普软件下载...
- html5手机点餐,基于HTML5技术的手机点餐系统设计与开发
- 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法
- 企业微信小程序开发(行事历)
- 成为一枚优秀的创业者,必须学会画的三张脑图
热门文章
- 学习《Building Applications with FME Objects》 之四 从数据集读取要素
- docker 查看日志_8个优秀Docker容器监控工具,收藏了
- CTF dotNet逆向分析
- 查看linux服务器的系统信息
- setjump和longjump
- python的requests模块功能_python中requests模块的使用方法
- 怎么解决python Non-ASCII character错误
- Matlab线性规划(Linear Programming)
- 友声电子秤设置软件_友声电子秤说明书/操作指南?(一)
- OpenResty学习地图来啦,速速收藏!