日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java计算任意多边形面积

發布時間:2023/12/14 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java计算任意多边形面积 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

任意多邊形的面積可由任意一點與多邊形上依次兩點連線構成的三角形矢量面積求和得出。

矢量面積=三角形兩邊矢量的叉乘。![在這里插入圖片描述](https://img-blog.csdnimg.cn/ad4b0cbc427a44b093e046f06d222c1d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAT2xpdmVyMjE=,size_13,color_FFFFFF,t_70,g_se,x_16#pic_center)按定理,多邊形面積由P點與A-G的各頂點連接所構成的三角形矢量面積構成,假定多邊形頂點坐標順序為A-G,逆時針為正方向,則有如下結論:

PAB,PBC,PCD均為順時針,面積為負;

PDE,PEF,PFG,PGA均未逆時針,面積為正;

但無論正負,均可通過P點與頂點連線的矢量叉乘完成,叉乘結果中已包含面積的正負。

point.class模擬坐標點

class Point{private int x;private int y; }

方法

public void getArea(List<Point> objects){int i, j;int area = 0;for (i = 0; i < objects.size(); i++){j = (i + 1) % objects.size();area += objects.get(i).getX() * objects.get(j).getY();area -= objects.get(i).getY() * objects.get(j).getX();}area /= 2;System.out.println(Math.abs(area));}

測試

@Testpublic void test() {Point x = new Point();x.setX(100);x.setY(100);Point x1 = new Point();x1.setX(100);x1.setY(300);Point x2 = new Point();x2.setX(200);x2.setY(300);Point x3 = new Point();x3.setX(200);x3.setY(100);List<Point> objects = new ArrayList<>();objects.add(x);objects.add(x1);objects.add(x2);objects.add(x3);getArea(objects);}

結果

參考連接

總結

以上是生活随笔為你收集整理的Java计算任意多边形面积的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。