Java计算任意多边形面积
生活随笔
收集整理的這篇文章主要介紹了
Java计算任意多边形面积
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
任意多邊形的面積可由任意一點與多邊形上依次兩點連線構成的三角形矢量面積求和得出。
矢量面積=三角形兩邊矢量的叉乘。按定理,多邊形面積由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计算任意多边形面积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [渝粤教育] 广东-国家-开放大学 21
- 下一篇: 点名系统实现