//在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

}

posted on 2011-04-29 16:11  wendyccc  阅读(516)  评论(0编辑  收藏  举报