(C++)二维坐标系下,计算两点之间方位角

(C++)二维坐标系下,计算两点之间方位角

思路

将其中点ori视为坐标原点,求点p相对其方位角

代码

double GlobalSettings::GetPointHAngle(Point3D p, Point3D ori)//根据坐标x、y值计算其方位角
{
    double hAngle = 0;
    double dy = p.y - ori.y;
    double dx = p.x - ori.x;
    if (dx==0 && dy>0)
    {
        hAngle = 0;
    }
    else if(dx==0 && dy<0)
    {
        hAngle = 180;
    }
    else if(dy==0 && dx>0)
    {
        hAngle = 90;
    }
    else if(dy==0 && dx<0)
    {
        hAngle = 270;
    }
    else if(dx>0 && dy>0)//第一象限
    {
        hAngle = atan2(dx,dy)*180/M_PI;
    }
    else if(dx>0 && dy<0)//第二象限
    {
        hAngle = 180 - atan2(dx,-dy)*180/M_PI;
    }
    else if(dx<0 && dy<0)//第三象限
    {
        hAngle = 180 + atan2(-dx,-dy)*180/M_PI;
    }
    else if(dx<0 && dy>0)//第四象限
    {
        hAngle = 360 - atan2(-dx,dy)*180/M_PI;
    }
    return hAngle;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值