Java计算两点间的距离

xubinxmcog / 2023-08-12 / 原文

public class PointUtils {

   public static void main(String[] args) {
        BigDecimal x1 = new BigDecimal("0");
        BigDecimal y1 = new BigDecimal("0");
        BigDecimal x2 = new BigDecimal("-1");
        BigDecimal y2 = new BigDecimal("-1");
        BigDecimal distance = getDistance(x1, y1, x2, y2);

        System.out.println(distance);
    }

    /**
     * 计算两点间的距离
     * @param x1 点位1 x坐标
     * @param y1 点位1 y坐标
     * @param x2 点位2 x坐标
     * @param y2 点位2 y坐标
     * @return
     */
   public static BigDecimal getDistance(BigDecimal x1, BigDecimal y1, BigDecimal x2, BigDecimal y2) {

       if (Objects.isNull(x1) || Objects.isNull(y1) || Objects.isNull(x2) ||Objects.isNull(x2) ) {
           log.error("坐标不能为空");
           return null;
       }
       double x11 = x1.doubleValue();
       double y11 = y1.doubleValue();
       double x22 = x2.doubleValue();
       double y22 = y2.doubleValue();

       double juli = Math.sqrt(Math.abs((x22 - x11)* (x22 - x11)+(y22 - y11)* (y22 - y11)));

       return BigDecimal.valueOf(juli);
   }
}