思路
将其中点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;
}