资源简介

一个集成的图形界面的程序,可调用每一次作业子程序。一、调用画点的函数,用DDA、中点算法画直线和中点算法画圆和椭圆。二、多边形扫描转换算法和区域填充算法实现(扫描线算法为必做,基于求余运算的边缘填充和边标志算法为任选;基于种子的区域填充采用4连通区域的递归种子填充算法,或扫描线种子填充算法,要求种子点(x,y)可交互输入)。三、线段裁剪和多边形裁剪算法的动画演示实现。(两种线段裁剪算法和H-S多边形逐边裁剪算法)多边形裁剪算法的动画演示要求先画出一个封闭的多边形,再画矩形的裁剪窗口,然后选择裁剪按钮(或命令),按下“上边裁剪”按钮(或执行“上边裁剪”命令),多边形相对裁剪窗口的上边进行裁剪,显示上边裁剪后的多边形,依此进行其它各边裁剪。四、用动画实现二维图形变换的各种算法,实现对指定形体的平移、旋转和缩放。(包括类似自行车行走和绕固定点旋转的自旋转物体动画。)五、简单三维图形系统:凸多面体的建模、透视投影,隐藏面的消除及基本图形变换(平移、旋转、缩放)。六、交互式Bezier曲线的输入绘制程序实现 PS:请用VC6打开程序!程序中不包含DEBUG文件。附有操作指南。

资源截图

代码片段和文件信息

// DrawDLG.cpp : implementation file
//

#include “stdafx.h“
#include “Graphics.h“
#include “DrawDLG.h“
#include “math.h“

#define  DU 3.14159/180

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDrawDLG dialog


CDrawDLG::CDrawDLG(CWnd* pParent /*=NULL*/)
: CDialog(CDrawDLG::IDD pParent)
{
//{{AFX_DATA_INIT(CDrawDLG)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}


void CDrawDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDrawDLG)
DDX_Control(pDX IDC_SCROLLBAR3 m_scroll3);
DDX_Control(pDX IDC_SCROLLBAR2 m_scroll2);
DDX_Control(pDX IDC_SCROLLBAR1 m_scroll1);
DDX_Control(pDX IDC_SCROLLBAR4 m_scroll4);
DDX_Control(pDX IDC_SCROLLBAR5 m_scroll5);
DDX_Control(pDX IDC_SCROLLBAR6 m_scroll6);
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDrawDLG CDialog)
//{{AFX_MSG_MAP(CDrawDLG)
ON_WM_PAINT()
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_BUTTON1 OnButton1)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON2 OnButton2)
ON_BN_CLICKED(IDC_BUTTON3 OnButton3)
ON_BN_CLICKED(IDC_BUTTON4 OnButton4)
ON_BN_CLICKED(IDC_BUTTON5 OnButton5)
ON_BN_CLICKED(IDC_BUTTON6 OnButton6)
ON_BN_CLICKED(IDC_BUTTON7 OnButton7)
ON_BN_CLICKED(IDC_BUTTON8 OnButton8)
ON_BN_CLICKED(IDC_BUTTON9 OnButton9)
ON_BN_CLICKED(IDC_BUTTON10 OnButton10)
ON_BN_CLICKED(IDC_BUTTON11 OnColor1)
ON_BN_CLICKED(IDC_BUTTON12 OnColor2)
ON_BN_CLICKED(IDC_BUTTON13 OnColor3)
ON_BN_CLICKED(IDC_BUTTON14 OnColor4)
ON_BN_CLICKED(IDC_BUTTON15 OnColor5)
ON_BN_CLICKED(IDC_BUTTON16 OnColor6)
ON_BN_CLICKED(IDC_BGColor OnBGColor)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDrawDLG message handlers
void CDrawDLG::OnPaint() 
{
CPaintDC dc(this); // device context for painting
CWnd *pWnd=GetDlgItem(IDC_DRAW);
pWnd->UpdateWindow();
// CDC *PDC=pWnd->GetDC();
Draw();

}

void CDrawDLG::Draw()
{
CWnd *pWnd=GetDlgItem(IDC_DRAW);
pWnd->UpdateWindow();
CDC *pDC=pWnd->GetDC();
CRect rect;
pWnd->GetClientRect(rect);

D v[8]={
{-fs-fsfs}{-fsfsfs}{fsfsfs}{fs-fsfs}{-fs-fs-fs}{-fsfs-fs}{fsfs-fs}{fs-fs-fs}
}d[8];

POINT p0[4]p1[4]p2[4]p3[4]p4[4]p5[4]w[8];
int z[8];

for (int i=0; i<8; i++)
{

d[i].x=v[i].x;
d[i].y=(int)(v[i].y*cos(a*DU)-v[i].z*sin(a*DU));
d[i].z=(int)(v[i].y*sin(a*DU)+v[i].z*cos(a*DU));

v[i].x=(int)(d[i].x*cos(b*DU)+d[i].z*sin(b*DU));
       v[i].y=d[i].y;
v[i].z=(int)(d[i].z*cos(b*DU)-d[i].x*sin(b*DU));

d[i].x=(int)(v[i].x*cos(c*DU)-v[i].y*sin(c*DU));
    d[i].y=(int)(v[i].x*sin(c*DU)+v[i].y*cos(c*DU));
d[i].z=v[i].z;

w[i].x=d[i].x+cx;
w[i].y=d[i].y+cy;
z[i]

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12108  2008-01-02 00:56  Graphics\DrawDLG.cpp

     文件       2405  2008-01-02 00:33  Graphics\DrawDLG.h

     文件      52384  2008-01-03 01:27  Graphics\Graphics.aps

     文件       4555  2008-01-03 01:28  Graphics\Graphics.clw

     文件       4233  2008-01-03 00:29  Graphics\Graphics.cpp

     文件       5002  2007-12-31 22:14  Graphics\Graphics.dsp

     文件        539  2007-12-26 16:22  Graphics\Graphics.dsw

     文件       1378  2007-12-25 21:14  Graphics\Graphics.h

     文件     410624  2008-01-03 01:28  Graphics\Graphics.ncb

     文件      54784  2008-01-03 01:28  Graphics\Graphics.opt

     文件        998  2008-01-03 01:28  Graphics\Graphics.plg

     文件      15201  2008-01-03 01:27  Graphics\Graphics.rc

     文件       1782  2007-12-25 21:14  Graphics\GraphicsDoc.cpp

     文件       1497  2007-12-25 21:14  Graphics\GraphicsDoc.h

     文件      53140  2008-01-02 00:10  Graphics\GraphicsView.cpp

     文件       7623  2008-01-02 00:25  Graphics\GraphicsView.h

     文件       2491  2007-12-26 15:22  Graphics\MainFrm.cpp

     文件       1467  2007-12-26 15:21  Graphics\MainFrm.h

     文件       1533  2007-12-26 15:48  Graphics\Matrix.cpp

     文件        828  2007-12-26 21:02  Graphics\Matrix.h

     文件       2336  2007-12-26 15:49  Graphics\Matrix2.cpp

     文件       1017  2007-12-26 15:49  Graphics\Matrix2.h

     文件       2726  2007-12-31 23:00  Graphics\Myclass.cpp

     文件        915  2007-12-31 22:38  Graphics\Myclass.h

     文件       4359  2007-12-25 21:14  Graphics\ReadMe.txt

     文件       3310  2008-01-03 01:26  Graphics\res\Graphics.ico

     文件        400  2007-12-25 21:14  Graphics\res\Graphics.rc2

     文件       1078  2008-01-03 01:26  Graphics\res\GraphicsDoc.ico

    ..A.SH.      6656  2007-12-26 20:33  Graphics\res\Thumbs.db

     文件       1486  2008-01-02 23:21  Graphics\res\Toolbar.bmp

............此处省略13个文件信息

评论

共有 条评论