• JTS: 17 DiscreteHausdorffDistance 豪斯多夫距离计算


    这里写目录标题

    版本

    org.locationtech.jts:jts-core:1.19.0
    链接: github

    代码

    在这里插入图片描述

    import org.locationtech.jts.algorithm.distance.DiscreteHausdorffDistance;
    import org.locationtech.jts.algorithm.distance.PointPairDistance;
    import org.locationtech.jts.geom.Coordinate;
    import org.locationtech.jts.geom.GeometryFactory;
    import org.locationtech.jts.geom.Point;
    import org.locationtech.jts.geom.Polygon;
    import org.locationtech.jts.util.GeometricShapeFactory;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import pers.stu.util.GeoGebraUtil;
    
    import java.util.Arrays;
    
    /**
     * 豪斯多夫距离计算
     * 计算一个点,距离图形最远的一个点
     * @author LiHan
     * 2023-11-09 17:11:41
     */
    public class DiscreteHausdorffDistanceUse {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(DiscreteHausdorffDistanceUse.class);
    
        public static void main(String[] args) {
            DiscreteHausdorffDistanceUse discreteHausdorffDistanceUse = new DiscreteHausdorffDistanceUse();
            discreteHausdorffDistanceUse.test00();
        }
    
        public void test00() {
            // 创建圆型
            GeometricShapeFactory geometricShapeFactory = new GeometricShapeFactory();
            geometricShapeFactory.setSize(20);
            geometricShapeFactory.setNumPoints(30);
            geometricShapeFactory.setBase(new Coordinate(10, 10));
            geometricShapeFactory.setRotation(0);
            Polygon rect = geometricShapeFactory.createEllipse();
            LOGGER.info(rect.toText());
            LOGGER.info(GeoGebraUtil.compare(rect));
    
            // 创建点
            GeometryFactory geometryFactory = new GeometryFactory();
            Point point = geometryFactory.createPoint(new Coordinate(20, 5));
    
            DiscreteHausdorffDistance discreteHausdorffDistance = new DiscreteHausdorffDistance(rect, point);
            discreteHausdorffDistance.distance();
            LOGGER.info("获取点位:{}", Arrays.toString(discreteHausdorffDistance.getCoordinates()));
    
            // 计算豪斯多夫距离
            LOGGER.info("最远距离: {}", DiscreteHausdorffDistance.distance(rect,point));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    16:41:08.671 [main] INFO  pers.stu.algorithm.DiscreteHausdorffDistanceUse - 获取点位:[(20.0, 5.0, NaN), (21.045284632676537, 29.945218953682733, NaN)]
    16:41:08.671 [main] INFO  pers.stu.algorithm.DiscreteHausdorffDistanceUse - 最远距离: 24.9671097368214
    
    • 1
    • 2
  • 相关阅读:
    机器学习——ALEC
    【前端】html+css案例:品优购 代码存档
    算法设计与分析(python版)-作业一
    全志R128适配 ST7789v LCD
    简单的收入支出明细记账软件有哪些,哪些适合开店用?
    apifox使用文档之环境变量 / 全局变量 / 临时变量附apifox学习路线图
    货币银行学简答论述题
    常用DCN命令说明
    ReactNative 入门
    C++代码示例:进制数简单生成工具
  • 原文地址:https://blog.csdn.net/God_Father_kao/article/details/134336024