Java 根据多边形坐标点 计算多边形面积
请仔细阅读代码注释(有肯多坑,跟着注释走没问题) 亲测有效
/*** 计算多边形面积公式** @author Lion Li* @date 2020-05-19*/
public class PolygonArea {public static void main(String[] args) {//多边形面积double sum = 0;//临时变量double xTmp = 0;double yTmp = 0;//无论从哪开始第一个坐标的x,y必须是0,0 如果不从0,0 那么会出现误差double xFirst = 0.0;double yFirst = 0.0;// 坐标必须封闭 从哪开始 到哪结束String[] arrs = {"10,10", "40,10", "40,40", "10,40", "10,10"};for (String s : arrs) {// 读取当前坐标的x和yString[] arr = s.split(",");double xCurrent = Double.parseDouble(arr[0]);double yCurrent = Double.parseDouble(arr[1]);/*** 计算面积:* (xTmp,yTmp)代表上一行的坐标值* (xCurrent,yCurrent)代表当前这一行的坐标值*/// 公式 sum += ((xTmp - xCurrent) * (yTmp + yCurrent)) * 0.5;BigDecimal sub = new BigDecimal(xTmp).subtract(new BigDecimal(xCurrent));BigDecimal add = new BigDecimal(yTmp).add(new BigDecimal(yCurrent));BigDecimal mul = sub.multiply(add).multiply(new BigDecimal("0.5"));sum = mul.add(new BigDecimal(sum)).doubleValue();//计算完面积后,进入下一次循环前需要将“当前坐标”交换为“上一行的坐标”xTmp = xCurrent;yTmp = yCurrent;}//用最后读取的坐标与第一次读取的坐标进行一次面积运算BigDecimal sub = new BigDecimal(xTmp).subtract(new BigDecimal(xFirst));BigDecimal add = new BigDecimal(yTmp).add(new BigDecimal(yFirst));BigDecimal mul = sub.multiply(add).multiply(new BigDecimal("0.5"));sum = mul.add(new BigDecimal(sum)).doubleValue();System.out.println(sum);}
}
计算 10,10 40,10 40,40 10,40 的面积
Java 根据多边形坐标点 计算多边形面积相关推荐
- java——构建一个box类计算长方体面积
编程创建一个Box类(长方体),在Box类中定义三个变量,分别表示长方体的长(length).宽(width)和高(heigth),再定义一个方法void setBox(int l, int w, i ...
- 根据凸多边形顶点坐标来计算面积算法与实现
本文我们来介绍一下如何利用凸多边形的所有顶点的坐标来计算其面积,并使用该算法制作一个小的示例程序. 注:对于凹多边形的面积,可以将其分解为若干个凸多边形分别计算求和,关于凹多边形的分解算法请参考Box ...
- Java计算三角形面积
package lesson02; import java.awt.*; import java.util.Scanner; /** 功能:计算三角形面积 作者:盘洪林 日期:2019年3月19日 * ...
- java 计算三角形面积
package c01.s01.t01; import java.util.Scanner;/*** 功能:计算三角形面积* 作者:* 日期:*/ public class CalculateTria ...
- 通过坐标点位,计算多边形面积
多边形面积 本文使用三角形面积累计法计算多边形面积,就是将多边形按照一个顶点,分割成多个三角形,计算三角形的面积,累加,得到多边形的面积. 当然,这个算法也有一些缺点,当这个多边形比较奇怪的时候,不能 ...
- 向量法计算多边形面积
计算多边形面积的方法为将多边形分解成多个三角形,然后把这些三角形的面积相加.三角形面积为两边向量叉积除以2. 这是Java代码,目前是第3版 ,已经尽可能优化了,相比初版有25%的性能提升. /*** ...
- python计算多边形面积_Python求凸包及多边形面积教程
一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...
- python计算多边形的面积并保留两位小数_计算任意多边形面积的Python实现
最近需要实现一个计算非凸多边形面积的功能,需要输入是顺次排序的多边形顶点坐标,假设输入的多边形顶点是V={v0, v1, v2, -, vn-1},则多边形的边为E={, , ,...,, }.要求输 ...
- C++ 计算多边形的面积,计算IOU
//求任意多边形的面积 /*语法:result = polygonarea(vector<Point>&polygon, int N); 参数: polygon:多变形顶点数组 N ...
最新文章
- 【牛腩新闻发布系统】开始后端02
- 轻雀世界知名体育用品零售商D的交流与思考
- 基于VMM的Rootkit检测技术及模型分析
- linux mysql 健康检查_Linux下检查MySQL的Slave是否正常
- Atitit sql计划任务与查询优化器--统计信息模块
- c语言 数组递减输出,合并两个线性表(数组)并按照非递减排序输出,有点问题过来看看...
- python中int是什么的缩写_python中int是什么类型
- [tp5] thinkPHP5-渲染模板的方式
- 前端学习(1613):oracle基本概念
- linux版本的redis bin,Linux下安装Redis4.0版本(简便方法)
- java avi转mp4_视频转GIF很麻烦?不!只需三步
- hystrix 页面_SpringCloud微服务架构篇5:微服务熔断机制-Hystrix
- Linux中的线程与进程以及调度
- python_四元数q转旋转矩阵R(已验证)
- java程序员自荐信_【程序员英文的自荐信】程序员优秀员工自荐信
- 临沂一中高考2021成绩查询,2021年临沂高考状元名单公布,临沂高考状元学校资料及最高分...
- android 一个app启动另一个App的几种方法
- kb mac压缩图片大小_Mac系统怎么压缩图片
- 关于计算机学院 公众号的名字,好听的微信公众号名字
- 替代SSD?Crossbar进军中国存储市场