C# 多边形面积计算公式
最近在做地图相关面积计算显示工作,百度了很多关于多边形面积计算方面公式和代码,只能说贼费劲,最终完成了把结果展示下
原理:鞋带公式
定义:所述鞋带式或鞋带算法(也称为高斯的面积公式和测量员的式)是一种数学算法,以确定区域一个的简单多边形,其顶点由它们的描述笛卡尔坐标中的平面。用户交叉倍增相应的坐标,找到包含多边形的区域,并从周围的多边形中减去它,以找到其中的多边形区域。它被称为鞋带配方,因为构成多边形的坐标不断交叉倍增,就像绑鞋带一样。它有时也被称为鞋带方法。
公式:
图解:
举例:
C#代码:
double CalculateArea(List<Point> points)
{
var count = points.Count;
double area0 = ;
double area1 = ;
for (int i = ; i < count; i++)
{
var x= points[i].X;
var y= i + < count ? points[i + ].Y: points[].Y;
area0 += x* y; lat = points[i].Y;
lon = i + < count ? points[i + ].X: points[].X;
area1 += x* y;
}
return Math.Round(Math.Abs(0.5 * (area0 - area1) ), );
}
附:如果XY是经纬度,请在上述结果上乘 9101160000.085981
C# 多边形面积计算公式的更多相关文章
- ACM2036_改革春风吹满地(多边形面积计算公式)
用到的知识点: 代码如下: /* Input 输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆 ...
- 多边形面积计算公式 GPS经纬度计算面积
最近在做地图相关面积计算显示工作,百度了很多关于多边形面积计算方面公式和代码,只能说贼费劲,最终完成了把结果展示下 原理:鞋带公式 定义:所述鞋带式或鞋带算法(也称为高斯的面积公式和测量员的式 ...
- [hdu5448 Marisa’s Cake]多边形面积,公式化简
题意:给一个凸多边形,求任选若干点形成的多边形的面积和. 思路: 按一定方向(顺时针或逆时针)对多边形的顶点进行编号,则多边形的面积计算公式为:f1 x f2 + f2 x f3 + ... fn-1 ...
- [知识点]计算几何I——基础知识与多边形面积
// 此博文为迁移而来,写于2015年4月9日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vxaq.html 1.前言 ...
- 简单几何(向量旋转+凸包+多边形面积) UVA 10652 Board Wrapping
题目传送门 题意:告诉若干个矩形的信息,问他们在凸多边形中所占的面积比例 分析:训练指南P272,矩形面积长*宽,只要计算出所有的点,用凸包后再求多边形面积.已知矩形的中心,向量在原点参考点再旋转,角 ...
- 三角剖分求多边形面积的交 HDU3060
//三角剖分求多边形面积的交 HDU3060 #include <iostream> #include <cstdio> #include <cstring> #i ...
- CF 107E 多边形面积并
107E Darts 题目:给出n个矩形,问落在n个矩形交的部分的概率 分析:裸的多边形面积并. 代码略..
- POJ1265——Area(Pick定理+多边形面积)
Area DescriptionBeing well known for its highly innovative products, Merck would definitely be a goo ...
- poj 1654 Area 多边形面积
/* poj 1654 Area 多边形面积 题目意思很简单,但是1000000的point开不了 */ #include<stdio.h> #include<math.h> ...
随机推荐
- BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操
n<=100000的树,砍S<n条边,求砍完后S+1棵树的最大直径的最小值. 树的直径要小小哒,那考虑一棵子树的情况吧!一棵子树的直径,就是子树根节点各儿子的最大深度+次大深度.就下面这样 ...
- C#路径,文件,目录,I/O常见操作汇总
原文发布时间为:2008-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 路径,文件,目录,I/O常见操作汇总 摘要: 文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及 ...
- 2016 ACM/ICPC 区域赛(北京) E 题 bfs
https://vjudge.net/problem/UVALive-7672 题意 输入一个五位数n 问由12345变到n的操作最少次数 不可达输出-1 有三种操作 1.交换相邻的位置 次数不 ...
- 洛谷 P4720 【模板】扩展 / 卢卡斯 模板题
扩展卢卡斯定理 : https://www.luogu.org/problemnew/show/P4720 卢卡斯定理:https://www.luogu.org/problemnew/show/P3 ...
- [bzoj2595][WC2008]游览计划/[bzoj5180][Baltic2016]Cities_斯坦纳树
游览计划 bzoj-2595 wc-2008 题目大意:题目链接.题目连接. 注释:略. 想法:裸题求斯坦纳树. 斯坦纳树有两种转移方式,设$f[s][i]$表示联通状态为$s$,以$i$为根的最小代 ...
- Space Ant--poj1696(极角排序)
http://poj.org/problem?id=1696 极角排序是就是字面上的意思 按照极角排序 题目大意:平面上有n个点然后有一只蚂蚁他只能沿着点向左走 求最多能做多少点 分析: 其实 ...
- [Bzoj1821][JSOI2010]Group 部落划分 Group(并查集)(二分答案)
1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2949 Solved: 1392[S ...
- Android时时监測手机的旋转角度 依据旋转角度确定在什么角度载入竖屏布局 在什么时候载入横屏布局
一.场景描写叙述: 最近开发中遇到个问题,就是我们在做横竖屏切换的功能时.横竖屏布局是操作系统去感知的,作为开发员没法确定Activity在什么时候载入横屏布局,在什么时候载入竖屏布局.因此为了找到载 ...
- 在Linux环境下使用TCP的keepalive机制
Linux内置支持keepalive机制,为了使用它,你须要使能TCP/IP网络,为了可以配置内核在执行时的參数.你还须要procfs和sysctl的支持. 这个过程涉及到keepalive使用的三个 ...
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
wpf 导出Excel 1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...