//
在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
}
// 定义类的对象 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
}
![2011042916094767.png](https://i-blog.csdnimg.cn/blog_migrate/5ed2de9ccfb3bf4c546899175892c79e.png)