请教关于坐标的问题,麻烦帮我解释一下这段程序的意思?

float CRadarCodeView::GetAngle(float x, float y)//
float ret;
float xoffset=x;
float yoffset=y;
if (xoffset==0)
{
if (yoffset>=0)
ret=0;
else
ret=180;
}
else if(yoffset==0)
{
if (xoffset>=0)
ret=90;
else
ret=270;
}
else
{
float angletmp = float(atan(xoffset/yoffset)*180/3.141593);
if(xoffset>0 && yoffset<0)
ret = angletmp+180;
else if(xoffset<0 && yoffset>0)
ret = angletmp + 360;
else if(xoffset<0 && yoffset<0)
ret = 180+angletmp;
else
ret = angletmp;
}
return ret;
}

小怪兽爱吃肉
浏览 94回答 1
1回答

DIEA

这是求解(x,y)、坐标原点的连线与X轴夹角的程序如果xoffset==0,点在X轴上,此时如果Y大于0,夹角=0;小于0,夹角180同理yoffset==0,点在y轴上,此时如果X大于0,夹角=90;小于0,夹角270如果xoffset、yoffse均不为0. 式 ”atan(xoffset/yoffset)*180/3.141593“是求解夹角,转换成度数的表达式,下面的那些公式则是根据点所在的象限,调整夹角的值。“ret”是函数返回值的意思,应该为return
打开App,查看更多内容
随时随地看视频慕课网APP