在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. readelf和ldd分析elf文件
  2. 一天一个命令--ifconfig
  3. nyoj 61(双线程dp)
  4. python pynlpir中科院分词的使用
  5. linux svn 常用命令
  6. C#数据本地存储方案之SQLite
  7. 【FFMPEG中PTS与DTS统一转换为毫秒】
  8. 在asp.net中做视频转换,将各种视频文件转换成.flv格式
  9. 保镖机器人作文_关于机器人作文400字
  10. linux分区始柱号,找到了linux分区顺序错乱修复方法
  11. CSS里各种垂直水平居中方式的基础用法
  12. lisp的vla函数画矩形_利用Lisp做Tin三角网建模(源代码)
  13. 大公司的老板更专注人,小公司的老板更专注事
  14. gitee添加成员_成员权限管理,到底能有多精细?
  15. mysql的简单介绍_mysql的简单介绍
  16. Ubuntu 下网易云音乐出现“加载失败,网络错误,可以在设置中发送反馈”问题及解决
  17. 腾讯Bugly的前世今生
  18. excel 替换 换行符_在Excel中查找和替换换行符
  19. 触屏计算机显示器CDU,科技:关于电脑显示器你所需要知道的
  20. 仿射密码破解——再别康桥

热门文章

  1. 编程_从入门到遁入空门_第一篇_到底什么是编程?
  2. FPGA几种电平:TTL,CMOS以及LVTTL,LVCMOS
  3. 【源码】应用于各类工业控制的通用PID调谐器仿真设计
  4. GUI 图形用户界面编程(七)-女友生气,你是选择亚索还是女友?
  5. 给新浪博客修改博客名字 超级简单图文教程
  6. java 绘图板_非常值得学习的java 绘图板源代码
  7. php是什么症状脾虚什么症状怎么治,【脾虚的表现】脾虚的症状有哪些-有问必答-快速问医生...
  8. 李云的25条职场发展原则
  9. Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?
  10. hht时频图三维_HHT方法的原理