在MFC中找客户区中心,再用中点Bresenham算法画圆,使用GetMaxX,GetMaxY函数找中点时编译不成功。


void CWkView::GetMaxX()
{
    CRect Rect;
    GetClientRect(&Rect);
    MaxX=Rect.right;
}
void CWkView::GetMaxY()
{
    CRect Rect;
    GetClientRect(&Rect);
    MaxY=Rect.bottom;
}


void CWkView::OnMmbcircle() 
{
    // TODO: Add your command handler code here
    CInputDlg1 dlg;
    double r;
    if(dlg.DoModal()==IDOK)
    {
        r=dlg.m_r;
    }
    else
    {
        return;
    }
    RedrawWindow();
     GetMaxX();GetMaxY();
    Mbcircle(r);
}
void CWkView::CirclePoint(double x, double y)
{
    CClientDC dc(this);
    COLORREF rgb=RGB(0,0,255);
    dc.SetPixel(ROUND(x)+MaxX/2,ROUND(y)+MaxY/2,rgb);
    dc.SetPixel(ROUND(y)+MaxX/2,ROUND(x)+MaxY/2,rgb);
    dc.SetPixel(ROUND(y)+MaxX/2,ROUND(-x)+MaxY/2,rgb);
    dc.SetPixel(ROUND(x)+MaxX/2,ROUND(-y)+MaxY/2,rgb);
    dc.SetPixel(ROUND(-x)+MaxX/2,ROUND(-y)+MaxY/2,rgb);
    dc.SetPixel(ROUND(-y)+MaxX/2,ROUND(-x)+MaxY/2,rgb);
    dc.SetPixel(ROUND(-y)+MaxX/2,ROUND(x)+MaxY/2,rgb);
    dc.SetPixel(ROUND(-x)+MaxX/2,ROUND(y)+MaxY/2,rgb);
}

void CWkView::Mbcircle(double r)
{
    double x,y,d;
    x=0;y=r;d=1.25-r;
    CirclePoint(x,y);
    while(x<=r/sqrt(2))
    {
        if(d<0)
        {
            d+=2*x+3;
        }
        else
        {
            y--;
            d+=2*(x-y)+5;
        }
        x++;
        CirclePoint(x,y);
    }

}
                      Configuration: wk - Win32 Debug-
Compiling
wkView.cpp
E:\计算机图形学\week5\wk\wkView.cpp(155) : error C2065: 'MaxX' : undeclared identifier
E:\计算机图形学\week5\wk\wkView.cpp(161) : error C2065: 'MaxY' : undeclared identifier
执行 cl.exe 时出错.

wk.exe - 1 error(s), 0 warning(s)

初学计算机图形学,求指点。

C/C++中的变量是要先定义才能使用的。6和12行的MaxX和MaxY都没有定义变量啊