根据圆心、半径、起始角度、结束角度求弧中点
这样的算法很难找,所以自己写了一下~希望有需要的朋友可以借鉴一下
void setMid(const Position& center,double radius,const double s_ang,const double e_ang)
{
m_center=center;
double bangel=s_ang*3.14159/180.0;
double endangel=e_ang*3.14159/180.0;
m_begin.x = m_center.x + radius*cos(bangel);//求起点坐标
m_begin.y = m_center.y + radius*sin(bangel);
m_end.x = m_center.x + radius*cos(endangel);//求结束点坐标
m_end.y = m_center.y + radius*sin(endangel);
r=radius;
if (s_ang>e_ang)//如果起始角度小于结束角度就加上360度
{
endangel+=2*3.14159;
}
m_mid.x= m_center.x +r* cos((bangel +endangel) / 2);//中点坐标
m_mid.y= m_center.y + r * sin((bangel +endangel) / 2);
}