已知两点坐标推算方位角-Java

代码实现如下:

public static double getAzimuth(PointVo p1,PointVo p2){
        double a_ab = Math.atan((p2.getY()- p1.getY())/(p2.getX()-p1.getX()))*180/Math.PI;
        return getAzimuth(a_ab,p2.getY()- p1.getY(),p2.getX()-p1.getX());
    }

    public static double getAzimuth(double a_ab,double d_y,double d_x){
        if(a_ab<0){
            return a_ab + 360;

        } else if (a_ab>360) {
            return a_ab - 360;
        }
        if((d_y>0||d_y<0)&&d_x<0){
            a_ab= a_ab+180;
        }
        if((d_y>0||d_y<0)&&d_x>0){
            a_ab = a_ab;
        }
        if(d_y>0 && d_x == 0){
            a_ab= 90;
        }
        if(d_y<0 && d_x == 0){
            a_ab= 270;
        }
        return a_ab;
    }

测试数据对比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值