欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

三行Java代碼實(shí)現(xiàn)計(jì)算多邊形的幾何中心點(diǎn)

 更新時(shí)間:2022年10月25日 10:39:02   作者:洛陽(yáng)泰山  
因?yàn)楣ぷ餍枰?jì)算采煤機(jī)工作面的中心點(diǎn),如果套用數(shù)學(xué)的計(jì)算公式,用java去實(shí)現(xiàn),太麻煩了。本文將利用java幾何計(jì)算的工具包,幾行代碼就能求出多變形的中心,簡(jiǎn)直yyds!還不快跟隨小編一起學(xué)起來(lái)

前言

因?yàn)楣ぷ髟O(shè)計(jì)到gis相關(guān)的內(nèi)容,需要計(jì)算采煤機(jī)工作面的中心點(diǎn)。如果套用數(shù)學(xué)的計(jì)算公式,用java去實(shí)現(xiàn),太多麻煩還費(fèi)時(shí)比較久,于是我找到j(luò)ava幾何計(jì)算的工具包,幾行代碼就能求出多變形的中心,簡(jiǎn)直yyds!!!

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

示例代碼

首先再maven項(xiàng)目的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>

下面代碼以四邊形為例,計(jì)算面積和中心點(diǎn)

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());
        //輸出中心點(diǎn)
        System.out.println( polygon.getCentroid());
        //輸出多邊形面積
        System.out.println( polygon.getArea());
 
    }

demo2

    public static void main(String[] args) {
        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
        //最后一個(gè)點(diǎn)和第一個(gè)相同完成多邊形的線段閉合
        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);
        //輸出中心點(diǎn)
        System.out.println( polygon.getCentroid());
        //輸出多邊形面積
        System.out.println( polygon.getArea());
    }

以上代碼值得注意的有兩點(diǎn):

1.坐標(biāo)點(diǎn)的順序必須保證是幾何圖形的相鄰點(diǎn),順時(shí)針相連或者逆時(shí)針都可以。

2.最后要完成閉合,閉合的方式即最后一個(gè)點(diǎn)必須和第一個(gè)點(diǎn)相同。

如圖所示,順序按照A->B>C>D,且最后閉合點(diǎn)為A點(diǎn),即開(kāi)始和最后輸入點(diǎn)為A點(diǎn)

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

輸出結(jié)果實(shí)例

demo1輸出

demo2輸出

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

相關(guān)文章

  • 詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對(duì)比

    詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對(duì)比

    這篇文章主要介紹了詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 使用Spring boot標(biāo)記一個(gè)方法過(guò)時(shí)

    使用Spring boot標(biāo)記一個(gè)方法過(guò)時(shí)

    這篇文章主要介紹了使用Spring boot標(biāo)記一個(gè)方法過(guò)時(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 基于mybatis注解動(dòng)態(tài)sql中foreach工具的方法

    基于mybatis注解動(dòng)態(tài)sql中foreach工具的方法

    這篇文章主要介紹了mybatis注解動(dòng)態(tài)sql中foreach工具方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • MyBatis配置的應(yīng)用與對(duì)比jdbc的優(yōu)勢(shì)

    MyBatis配置的應(yīng)用與對(duì)比jdbc的優(yōu)勢(shì)

    這篇文章主要介紹了MyBatis配置的使用與相對(duì)于jdbc的優(yōu)勢(shì),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringSecurity框架下實(shí)現(xiàn)CSRF跨站攻擊防御的方法

    SpringSecurity框架下實(shí)現(xiàn)CSRF跨站攻擊防御的方法

    CSRF是一種網(wǎng)絡(luò)攻擊方式,也可以說(shuō)是一種安全漏洞,這種安全漏洞在web開(kāi)發(fā)中廣泛存在。這篇文章主要介紹了SpringSecurity框架下實(shí)現(xiàn)CSRF跨站攻擊防御,需要的朋友可以參考下
    2019-12-12
  • 基于params、@PathVariabl和@RequestParam的用法與區(qū)別說(shuō)明

    基于params、@PathVariabl和@RequestParam的用法與區(qū)別說(shuō)明

    這篇文章主要介紹了方法參數(shù)相關(guān)屬性params、@PathVariabl和@RequestParam用法與區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 帶你快速搞定java IO

    帶你快速搞定java IO

    這篇文章主要介紹了Java IO流 文件傳輸基礎(chǔ)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下,希望能給你帶來(lái)幫助
    2021-07-07
  • 解決Eclipse中java文件的圖標(biāo)變成空心J的問(wèn)題

    解決Eclipse中java文件的圖標(biāo)變成空心J的問(wèn)題

    這篇文章主要介紹了解決Eclipse中java文件的圖標(biāo)變成空心J的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • SpringMVC整合kinfe4j及問(wèn)題解決分析

    SpringMVC整合kinfe4j及問(wèn)題解決分析

    這篇文章主要為大家介紹了SpringMVC整合kinfe4j及問(wèn)題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Idea如何關(guān)閉或開(kāi)啟引用提示Usages和Annotations

    Idea如何關(guān)閉或開(kāi)啟引用提示Usages和Annotations

    這篇文章主要介紹了Idea如何關(guān)閉或開(kāi)啟引用提示Usages和Annotations問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評(píng)論