资源简介
一个集成的图形界面的程序,可调用每一次作业子程序。一、调用画点的函数,用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个文件信息
相关资源
- 计算机图形实验(哈尔滨工程大学)
- MFC透明表
- mfc聊天室
- DSP 语音识别程序 DTW MFCC
- 树状导航菜单的制作
- MFC串口通信
- MFC的学生管理系统
- 计算机图形学-全.rar
- 低级鼠标钩子VS源码、攻略及成品
- 基于RFID的公交卡管理系统
- 7-Uath茶壶
- DDA插补源码
- 计算机图形学考试试卷试题6套含3套的
- 学生成绩档案管理系统—保证可用
- GPU精粹1-中文版.pdf《GPU精粹:实时图形
- 计算机图形学 基于3D图形开发技术
- 3D游戏与计算机图形学中的数学方法
- 自己做的串口调试工具、包含源代码
- 虚拟现实技术文献英文
- 按键控制系统音量
- Foto-Mosaik-Edda(马赛克拼图制作软件)
- 华南理工大学软件学院计算机图形学
- GPU+编程与CG+语言之阳春白雪下里巴人
- 计算机图形学实验 opengl实现太阳系运
- 基于SOCKECT的TCP的通信
- 中国科学技术大学计算机图形学大作
- 二维图形的裁剪
- 远程控制开源代码
- 计算机图形学的实习
- 答题卡识别小程序
评论
共有 条评论