最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

三行Java代碼實現(xiàn)計算多邊形的幾何中心點

 更新時間:2022年10月25日 10:39:02   作者:洛陽泰山  
因為工作需要計算采煤機工作面的中心點,如果套用數(shù)學的計算公式,用java去實現(xiàn),太麻煩了。本文將利用java幾何計算的工具包,幾行代碼就能求出多變形的中心,簡直yyds!還不快跟隨小編一起學起來

前言

因為工作設計到gis相關的內容,需要計算采煤機工作面的中心點。如果套用數(shù)學的計算公式,用java去實現(xiàn),太多麻煩還費時比較久,于是我找到java幾何計算的工具包,幾行代碼就能求出多變形的中心,簡直yyds!!!

廢話不多說直接上代碼,然后再慢慢講解

示例代碼

首先再maven項目的pom文件中引入依賴

    <properties>
        <java.version>1.8</java.version>
        <maven.plugin.version>3.8.1</maven.plugin.version>
        <spring.boot.version>2.1.16.RELEASE</spring.boot.version>
        <bladex.project.version>2.6.0.RELEASE</bladex.project.version>
        <spring.platform.version>Cairo-SR8</spring.platform.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
        <geotools.version>28-SNAPSHOT</geotools.version>
    </properties> 
 
    <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-main</artifactId>
            <version>${geotools.version}</version>
     </dependency>

下面代碼以四邊形為例,計算面積和中心點

demo1

    public static void main(String[] args) {
        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
        CoordinateList coords=new CoordinateList();
        coords.add(new Coordinate(3630789.1856605336, 3.943998533907477E7));
        coords.add(new Coordinate(3630480.3613995733, 3.944116440724006E7));
        coords.add(new Coordinate(3630128.8984496593, 3.944109300504929E7));
        coords.add(new Coordinate(3630408.0016770884, 3.943992775038134E7));
        //閉合
        coords.closeRing();
        Polygon polygon = geometryFactory.createPolygon(coords.toCoordinateArray());
        //輸出中心點
        System.out.println( polygon.getCentroid());
        //輸出多邊形面積
        System.out.println( polygon.getArea());
 
    }

demo2

    public static void main(String[] args) {
        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
        //最后一個點和第一個相同完成多邊形的線段閉合
        Coordinate[] coords = new Coordinate[] {new Coordinate(1, 5),new Coordinate(1, 1),  new Coordinate(5,1) , new Coordinate(5, 5),new Coordinate(1, 5)};
        Polygon polygon = geometryFactory.createPolygon(coords);
        //輸出中心點
        System.out.println( polygon.getCentroid());
        //輸出多邊形面積
        System.out.println( polygon.getArea());
    }

以上代碼值得注意的有兩點:

1.坐標點的順序必須保證是幾何圖形的相鄰點,順時針相連或者逆時針都可以。

2.最后要完成閉合,閉合的方式即最后一個點必須和第一個點相同。

如圖所示,順序按照A->B>C>D,且最后閉合點為A點,即開始和最后輸入點為A點

除了四邊形形,五邊形,六邊形,不規(guī)則多邊形,都可以計算。方法和原理一樣。

輸出結果實例

demo1輸出

demo2輸出

到此這篇關于三行Java代碼實現(xiàn)計算多邊形的幾何中心點的文章就介紹到這了,更多相關Java計算多邊形的幾何中心點內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用JAVA反射,讀取數(shù)據(jù)庫表名,自動生成對應實體類的操作

    利用JAVA反射,讀取數(shù)據(jù)庫表名,自動生成對應實體類的操作

    這篇文章主要介紹了利用JAVA反射,讀取數(shù)據(jù)庫表名,自動生成對應實體類的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java中用Mybatis插入mysql報主鍵重復的解決方案

    Java中用Mybatis插入mysql報主鍵重復的解決方案

    這篇文章主要介紹了Java中用Mybatis插入mysql報主鍵重復的解決方案,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • SpringBoot使用AES對JSON數(shù)據(jù)加密和解密的實現(xiàn)方法

    SpringBoot使用AES對JSON數(shù)據(jù)加密和解密的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot使用AES對JSON數(shù)據(jù)加密和解密的實現(xiàn)方法,文章通過代碼示例介紹的非常詳細,對我們的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • java虛擬機深入學習之內存管理機制

    java虛擬機深入學習之內存管理機制

    java虛擬機在程序運行時將內存劃分為多個區(qū)域,每個區(qū)域作用,生命周期各不相同,下面這篇文章主要給大家介紹了關于java虛擬機深入學習之內存管理機制的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-11-11
  • java 異常的實例詳解

    java 異常的實例詳解

    這篇文章主要介紹了java 異常的實例詳解的相關資料,希望通過本文大家能徹底掌握java異常的使用方法,需要的朋友可以參考下
    2017-09-09
  • mybatis框架order by作為參數(shù)傳入時失效的解決

    mybatis框架order by作為參數(shù)傳入時失效的解決

    這篇文章主要介紹了mybatis框架order by作為參數(shù)傳入時失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Fluent Mybatis實際開發(fā)中的優(yōu)勢對比

    Fluent Mybatis實際開發(fā)中的優(yōu)勢對比

    本文給大家介紹如何通過IQuery和IUpdate定義強大的動態(tài)SQL語句,給大家分享Fluent Mybatis實際開發(fā)中的優(yōu)勢講解,感興趣的朋友一起看看吧
    2021-08-08
  • JAVA實現(xiàn)漢字轉拼音功能代碼實例

    JAVA實現(xiàn)漢字轉拼音功能代碼實例

    這篇文章主要介紹了JAVA實現(xiàn)漢字轉拼音功能代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • MyBatis-Plus代碼生成器的使用詳解

    MyBatis-Plus代碼生成器的使用詳解

    這篇文章主要介紹了MyBatis-Plus代碼生成器的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Springboot如何基于assembly服務化實現(xiàn)打包

    Springboot如何基于assembly服務化實現(xiàn)打包

    這篇文章主要介紹了Springboot如何基于assembly服務化實現(xiàn)打包,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論

永善县| 岗巴县| 德钦县| 锦州市| 巨鹿县| 龙州县| 罗定市| 大竹县| 河间市| 阿坝县| 蓬溪县| 九龙城区| 博罗县| 辽中县| 鲁山县| 视频| 都江堰市| 乌拉特前旗| 拉萨市| 峨边| 河间市| 四子王旗| 岳西县| 平南县| 甘洛县| 内乡县| 博兴县| 广水市| 平和县| 公安县| 鲜城| 香格里拉县| 新兴县| 清水河县| 垣曲县| 宁河县| 乐东| 博湖县| 玉溪市| 平利县| 沂水县|