//在CCcView里 添加头文件 #include "DiagCC.h"
//定义类的对象 DiagCC dcc;
/////////////////////////////////////////////////////////////////////////////
// CCcView message handlers
void CCcView::CirclePoint(int x, int y, int r, int g, int b)
{ CClientDC dc(this);
int x0,y0;
x0=dcc.m_px;
y0=dcc.m_py;
dc.SetPixel(x+x0,y+y0,RGB(r,g,b));
dc.SetPixel(y+y0+x0-y0,x+x0+y0-x0,RGB(0,0,255));
dc.SetPixel(x+x0,-y+y0,RGB(r,g,b));
dc.SetPixel(-y+y0+x0-y0,x+x0+y0-x0,RGB(0,255,0));
dc.SetPixel(-x+x0,y+y0,RGB(r,g,b));
dc.SetPixel(y+y0+x0-y0,-x+x0+y0-x0,RGB(255,0,0));
dc.SetPixel(-x+x0,-y+y0,RGB(r,g,b));
dc.SetPixel(-y+y0+x0-y0,-x+x0+y0-x0,RGB(r,g,b));
}
void CCcView::OnDrawcc()
{ // TODO: Add your command handler code here
int x0,y0,radius;
if(dcc.DoModal()==IDOK)
{ radius=dcc.m_r;
x0=dcc.m_px;
y0=dcc.m_py;
}
//mid-point
float d;
int x,y;
x=0;
y=radius;
d=5.0/4-radius;//初始化
CirclePoint(x+x0,y+y0,dcc.m_CR,dcc.m_CG,dcc.m_CB);
while(y>x)
{
if(d<=0) d+=2.0*x+3;
else
{d+=2.0*(x-y)+5;
y--;
}
x++;
CirclePoint(x,y,dcc.m_CR,dcc.m_CG,dcc.m_CB);
}//end of while
}
I have a dream, and I'm gonna protect it.