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都没有定义变量啊