锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
double CCarNaviView::CalculateRotateAngle(CPoint pntBegin,CPoint pntNext)
{
CPoint pntFirst(pntBegin);
CPoint pntSecond(pntNext);
double dRotateAngle = atan2(fabs(pntBegin.x-pntNext.x),fabs(pntBegin.y-pntNext.y));
//濡傛灉涓嬩竴鐐圭殑妯潗鏍囧ぇ浜庡墠涓鐐?鍦ㄧ涓鍜岀鍥涜薄闄?
if (pntNext.x>=pntFirst.x)
{
//鍦ㄧ涓璞¢檺(0<=dRotateAngle<=90)
if (pntNext.y>=pntFirst.y)
{
//涓嶅仛浠諱綍澶勭悊
dRotateAngle=dRotateAngle;
}
else
{
dRotateAngle=PI-dRotateAngle;
}
}
else//(鍦ㄧ浜屽拰絎笁璞¢檺)
{
//絎簩璞¢檺
if (pntNext.y>=pntFirst.y)
{
dRotateAngle=2*PI-dRotateAngle;
}
else//絎笁璞¢檺
{
dRotateAngle=PI+dRotateAngle;
}
}
dRotateAngle = dRotateAngle * 180 / PI;
return dRotateAngle;
}銆?/p>