• 大小: 5.48MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-08
  • 语言: C/C++
  • 标签: DDA  MFC  

资源简介

这个做的非常简单就是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);   //设置绿色画笔

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个文件信息

评论

共有 条评论