19,469
社区成员
发帖
与我相关
我的任务
分享
double fStep = 2*PI/10; // 间隔弧度
POINT ptCenter1 = {300,300}; // 大圆圆心坐标
POINT ptCenter2 = {300,400}; // 小圆元新坐标
float fRadii1 = 150.0f; // 大圆半径
float fRadii2 = 30; // 小圆半径
CArray<POINT,POINT> m_pt;
// 得到大圆的所有定点
for(double fAngle = 0.0f; fAngle <= 2*PI; fAngle += fStep)
{
m_pt.Add(CPoint(fRadii1*cos(fAngle)+ pCenter1.x ,fRadii1*sin(fAngle)+ pCenter1.y));
if(2*PI - fAngle < fStp)
m_pt.Add(CPoint(fRadii1*cos(0)+ pCenter1.x ,fRadii1*sin(0)+ pCenter1.y));
}
....// 得到矩形的5个顶点(首尾要重合,所以是5个)
// 得到小圆的所有顶点
for(fAngle = 0.0f; fAngle <= 2*PI; fAngle += fStep)
{
m_pt.Add(CPoint(fRadii2*cos(fAngle)+ pCenter2.x ,fRadii2*sin(fAngle)+ pCenter2.y));
if(2*PI - fAngle < fStp)
m_pt.Add(CPoint(fRadii2*cos(0)+ pCenter2.x ,fRadii2*sin(0)+ pCenter2.y));
}