資源簡介
這個做的非常簡單就是DDA算法畫直線和圓,使用MFC編寫,VC6.0編譯。

代碼片段和文件信息
//?CirclePane.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“WLine.h“
#include?“CirclePane.h“
#include?“MainFrm.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CirclePane?dialog
CirclePane::CirclePane(CWnd*?pParent?/*=NULL*/)
:?CDialog(CirclePane::IDD?pParent)
{
//{{AFX_DATA_INIT(CirclePane)
m_x?=?_T(““);
m_y?=?_T(““);
m_r?=?_T(““);
//}}AFX_DATA_INIT
}
void?CirclePane::DoDataExchange(CDataExchange*?pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CirclePane)
DDX_Text(pDX?IDC_EDIT1?m_x);
DDX_Text(pDX?IDC_EDIT2?m_y);
DDX_Text(pDX?IDC_EDIT3?m_r);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CirclePane?CDialog)
//{{AFX_MSG_MAP(CirclePane)
ON_BN_CLICKED(IDC_BUTTON1?OnPerP)
ON_BN_CLICKED(IDC_BUTTON2?OnBreC)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CirclePane?message?handlers
void?CirclePane::OnPerP()?
{
CDialog::OnOK();
int?XYR;
X=atoi((LPCTSTR)m_x);
Y=atoi((LPCTSTR)m_y);
R=atoi((LPCTSTR)m_r);
CWnd*?pWnd?=?AfxGetApp()->GetMainWnd();
//?指針
CMainframe*?pmf?=?(CMainframe*)AfxGetApp()->m_pMainWnd;
COLORREF?c?=?pmf->m_Color;
CDC*?pDC?=?pWnd->GetDC();
CPen*?pPenl?=?new?CPen;
pPenl->CreatePen(PS_SOLID1c);???//設(shè)置綠色畫筆
pDC->Selectobject(pPenl);
int?xyJF;
x=X+R;
y=Y;
J=8*R;
F=0;
pDC->Ellipse(int(x)*10-3+20600-int(y)*10+3int(x)*10+3+20600-int(y)*10-3);
while(J>0)
{
if(x>X&&y>=Y)?//第一象限
{
if(F>=0)?
{
F=F-2*(x-X)+1;
x=x-1;
}
else
{
F=F+2*(y-Y)+1;
y=y+1;
}
pDC->Ellipse(int(x)*10-3+20600-int(y)*10+3int(x)*10+3+20600-int(y)*10-3);
J--;
}
else?if(x<=X&&y>Y)??//第二象限
{
if(F>=0)
{
F=F-2*(y-Y)+1;
y=y-1;
}
else
{
F=F-2*(x-X)+1;
x=x-1;
}
pDC->Ellipse(int(x)*10-3+20600-int(y)*10+3int(x)*10+3+20600-int(y)*10-3);
J--;
}
else?if(x {
if(F>=0)
{
F=F+2*(x-X)+1;
x=x+1;
}
else
{
F=F-2*(y-Y)+1;
y=y-1;
}
pDC->Ellipse(int(x)*10-3+20600-int(y)*10+3int(x)*10+3+20600-int(y)*10-3);
J--;
}
else?if(x>=X&&y {
if(F>=0)
{
F=F+2*(y-Y)+1;
y=y+1;
}
else
{
F=F+2*(x-X)+1;
x=x+1;
}
pDC->Ellipse(int(x)*10-3+20600-int(y)*10+3int(x)*10+3+20600-int(y)*10-3);
J--;
}
}
}
void?CirclePane::OnBreC()?
{
CDialog::OnOK();
int?x0y0r;
x0=atoi((LPCTSTR)m_x);
y0=atoi((LPCTSTR)m_y);
r=atoi((LPCTSTR)m_r);
int?xyp;
x=0;
y=r;
p=3-2*r;
while(x {
draw_circle(x0y0xy);
if(p<0)
p+=4*x+6;
else
{
p+=4*(x-y)+10;
y-=1;
}
x++;
}
if(x==y)
draw_circle(x0y0xy);
//?TODO:?Add?your?control?notification?handler?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4215??2010-11-30?21:17??WLineCir\CirclePane.cpp
?????文件???????1279??2010-11-30?19:00??WLineCir\CirclePane.h
?????文件???????1828??2010-11-30?19:00??WLineCir\Click.cpp
?????文件???????1279??2010-11-30?19:00??WLineCir\Click.h
?????文件???????1949??2010-11-30?19:35??WLineCir\CRotato2D.cpp
?????文件???????1174??2010-11-30?19:20??WLineCir\CRotato2D.h
?????文件??????21272??2010-12-01?10:21??WLineCir\Debug\CirclePane.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\CirclePane.sbr
?????文件??????12698??2010-11-30?19:23??WLineCir\Debug\Click.obj
?????文件??????????0??2010-11-30?19:28??WLineCir\Debug\Click.sbr
?????文件??????15734??2010-12-01?10:21??WLineCir\Debug\CRotato2D.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\CRotato2D.sbr
?????文件??????18016??2010-12-01?10:21??WLineCir\Debug\DlgBre.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\DlgBre.sbr
?????文件??????18148??2010-12-01?10:21??WLineCir\Debug\DlgDCDDA.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\DlgDCDDA.sbr
?????文件??????28526??2010-12-01?11:28??WLineCir\Debug\DrawDlg.obj
?????文件??????????0??2010-12-01?11:28??WLineCir\Debug\DrawDlg.sbr
?????文件????1007764??2010-12-01?11:24??WLineCir\Debug\Line.res
?????文件??????53391??2010-12-01?11:28??WLineCir\Debug\MainFrm.obj
?????文件??????????0??2010-12-01?11:28??WLineCir\Debug\MainFrm.sbr
?????文件??????15380??2010-12-01?10:21??WLineCir\Debug\Move2D.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\Move2D.sbr
?????文件??????15489??2010-12-01?10:21??WLineCir\Debug\Move3D.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\Move3D.sbr
?????文件??????20206??2010-12-01?09:17??WLineCir\Debug\OpenGLcase.obj
?????文件??????????0??2010-12-01?09:17??WLineCir\Debug\OpenGLcase.sbr
?????文件??????16154??2010-12-01?10:21??WLineCir\Debug\Rotato3D.obj
?????文件??????????0??2010-12-01?10:21??WLineCir\Debug\Rotato3D.sbr
?????文件?????105898??2010-11-30?19:23??WLineCir\Debug\StdAfx.obj
............此處省略75個文件信息
評論
共有 條評論