在skeinforge上看到一个计算复杂多边形面积的python代码,它可看成是利用2+1维的叉积的z坐标的累积,非常巧妙,把它翻译成C++代码和大家共享,如有不足,欢迎指正。

struct Point
{
float x, y;
};
//Get the area of a complex polygon(refer from skeinforge)
float getAreaLoop(vector<Point> loop)
{
float areaLoopDouble=0;
Point point,pointEnd;
int i,length=loop.size();
for(i=0;i!=length;++i)
{
point=loop[i];
pointEnd=loop[(i + 1) % length];
areaLoopDouble += point.x * pointEnd.y - pointEnd.x * point.y;
}
return 0.5 * areaLoopDouble;
}

求复杂多边形面积的算法相关推荐

  1. 已知三个点坐标求 三角形面积 || 求任意多边形面积公式||判断点在直线的左侧还是右侧

    已知三个点坐标求 三角形面积 由A-->B-->C-->A 按逆时针方向转.(行列式书写要求) 设三角形的面积为S 则S=(1/2)*(下面行列式) |x1 y1 1| |x2 y2 ...

  2. 求取多边形面积与周长(c++)

    求取多边形面积与周长 支持任意多边形,凹.凸皆可 多边形顶点输入时按顺时针顺序排列 面积法一: //**函数部分**struct Point2i {double x; double y; } // 面 ...

  3. hdoj-2036题解-向量积法求任意多边形面积

    首先看一道hdoj的算法题:hdoj-2036-改革春风吹满地 该题题意就是逆时针给出点的坐标,求这个多边形的面积.下面就写一下如何用向量积法求多边形面积. 向量积法与面积 上图说明了如何利用向量求得 ...

  4. 求任意多边形面积-有向面积

     给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做? 我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别 ...

  5. pku 2954 Triangle pku 1265 Area Pick定理的应用 + 叉积求多边形面积

    Pick定理证明:http://translate.google.com/translate?u=http://episte.math.ntu.edu.tw/articles/sm/sm_25_10_ ...

  6. c语言给坐标求多边形面积,多边形的面积问题

    多边形的面积问题 设构成多边形的坐标串为(xi,yi)(i=1,2,--,n),求此多边形面积A. #include #define N 10 float Area(float (*x)[2],int ...

  7. 计算凸多边形面积的算法

    1. 思路: 可以将凸多边形(边数n > 3)划分为 (n - 2) 个三角形,分别运用向量叉积计算每个三角形的面积,最后累加各个三角形的面积就是多边形的面积. 2. 求多边形面积的算法模板: ...

  8. python计算多边形面积_Python求凸包及多边形面积教程

    一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...

  9. 求任意多边形内部水平方向似最大矩形算法实现

    背景说明 前段时间有个求点是否在多边形内部的需求,折腾了不少时间,现截取其中的的重点部分--求任意多边形内部水平方向似最大矩形--来搞篇博客. 求点是否在多边形内部这个算法很容易搞,一搜一大把,但数据 ...

最新文章

  1. CSS3 background-size图片自适应
  2. php reids的geo功能,Redis GEO相关命令和功能,你造吗?
  3. Oracle 启动例程 STARTUP参数说明
  4. Orchard学习笔记四:启用用户注册
  5. floatvalue 重写_Java Number floatValue()方法与示例
  6. 易语言mysql锁表_MySQL的3种锁定机制
  7. 鸿蒙os吃内存吗,终于上手机!华为鸿蒙 OS 2.0 系统:128KB 内存就能跑
  8. oracle db2备份数据库,datagurad 使用备库的备份恢复主库的数据文件
  9. Python学习笔记之函数(五)
  10. cocos2dx中关于Action动作的相关API的具体介绍
  11. 一分钟了解阿里云产品:ESC五大热点技术问题分析
  12. Docker部署MySQL5.7主从复制结构
  13. sqlalchemy 增删改
  14. 阿里云云计算:4 阿里云产品架构
  15. Linux系统图形界面,字符界面切换快捷键。启动图形界面服务。
  16. 第三方支付(服务商模式)
  17. ResourceExhaustedError
  18. OpenGL缓冲区对象之FBO
  19. 虚拟机网卡(NAT模式)设置连接外网
  20. DOM之parentNode与offsetParent

热门文章

  1. 【技术分享】Android App常见安全问题演练分析系统-DIVA-Part1
  2. 基于Glodstein枝切法相位解包裹算法
  3. 运行php代码报错如下Uncaught Error: Call to undefined function curl_init()
  4. win7如何在桌面上加计算机,详细教您win7如何添加显示桌面图标
  5. 技术手段VBA之爬虫
  6. 2022年欧盟的寒冬,中国外贸企业送温暖(暖冬外贸商品都在这里)
  7. 集成微信登入遇到问题
  8. Dispatch barriers处理读与写的冲突
  9. NLP-二分类的应用-区分外卖评论好评/差评
  10. 在myeclipse配置的server中不能部署工程,报错如下:no projects are avaiable for deploment