计算机图形学实验

  • 格式:doc
  • 大小:80.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、最简单的利用VC++6.0图形绘制方法

1 启动Visual C++ 6.0。

2 从File菜单中选择New选项,出现New对话框(新建对话框)。该对话框包括Files、Projects、Workspace和OtherDocuments四个分页。选中Projects分页,在Projects面板中左侧的项目类型列表框中单击选中要创建的项目类型MFC AppWizard[exe]项,表示要创建一个MFC应用程序。在Project Name文本输入框中输入名称。建议用本人学号后4位数字。在Location文本输入框中输入用户希望存放项目的目录名,建议放在D盘根目录下,目录名也用本人学号后4位数字。

3 单击OK按钮。出现MFC AppWizard – Step 1对话框。选择Single document (单文档)即创建基于单文档的应用程序。直接单击Finish按钮,表示之后的各项设置都采用系统的默认设置。

4 在项目工作区窗口中一共有三个分页,分别是ClassView面板、ResourceView 面板和FileView面板。ClassView面板(类面板),定位到“C你的名称View”类的OnDraw(CDC *pDC)成员函数节点,,在源代码编辑窗口中指定位置填加你的代码。

二、构造菜单

1 View(查看)——Workspase(工作空间)——ResourceView(资源面板)Menu(菜单资源),双击IDR—_MAINFRAME, 双击虚线框进入菜单属性对话框,可以加入一级、二级等菜单项标题名,确定菜单资源标识时建议用ID开头的名字如ID1,这个名字应在ID的列表中查到。

2 View(查看)——ClassWizard(建立类向导),选择Message Maps,在相应对话框, ClassName类名字建议选“C你的名字View”,在Object IDs表中找到并取中刚才的资源标识名如ID1,在Messages表中选COMMAND,点击Add Function, 在弹出对话框用给出名字,加入你的成员函数。

3 编译连接运行,点击菜单,应可以看到运行结果。

三、填加成员函数

在ClassView面板定位到“C你的名称View”类,点击鼠标右键,在弹出菜单中选“Add Member Function”, 填写“Function Type”,和“Declarration”后,点击“确定”,这时可以在类面板“C你的名称View”类的成员函数列表中按字母表顺序看到你刚才添加的函数首部,双击该名称,即可以到实现处填加你自己的代码。(也可以你自己在头文件中加入声明,在实现文件中加入代码。)

四、用鼠标输入屏幕上鼠标所在位置坐标

View(查看)——ClassWizard(建立类向导),选择Message Map,在Messages列表中找到WM_LBUTTONDOWN, 选中后双击,到Member function 列表中找到对应成员函数名,双击去加入你的必要代码。

计算机图形学实验参考题目

1自己设计程序熟悉VC++6.0绘图时屏幕使用,例如用Set_Pixel(i,j,i*j)打点盖满屏幕。

2 显示颜色方块、国际象棋棋盘格、*颜色方块构成的图案等,理解VC可显示的颜色。

3 显示周期函数构成的图案,如函数f(x,y)=cos(x)+sin(y) 等。

4 实现直线扫描转换的DDA算法、中点画线算法、Bresenham算法,*推广到任意情况。

5 利用直线扫描转换算法绘制箭头、坐标系、五角星、金刚石图案、齿轮等自设计图形。

6 实现三角形、四边形的区域填充,利用矩形填充方法构造图案,*实现任意多边形的区域填充。

7 实现Cohen-Sutherland直线段裁剪算法,再修改使成为开窗算法。

8 实现窗口区到视图区的坐标变换,利用这一变换做例如y=sin(x)的函数图形,绘制教材20页图2-1(b)等。

9 实现二维几何变换中的平移、比例、旋转变换。例如,三角形:(0,0),(2,0),(1,6),相对中心放大2倍,每次旋转100,旋转36次。

10 实现简单形体的平行投影,透视投影。

11任意已知参数方程的曲线的逐点生成和显示算法。

12 Bezier曲线图形绘制的直接法,递推(de Casteljan)算法。

13 Bezier曲线的分裂绘制算法,升阶、降阶算法,曲线生成和绘制的综合练习。

计算机图形学实验考试题

说明:所有各题均要求使用VC++6.0,在屏幕上画出图形。

1 教材《计算机图形学基础教程》第22页,图2.3。

2 教材《计算机图形学基础教程》第25页,图2.8(可不填充)。

3 教材《计算机图形学基础教程》第64页,图3.6(1)。

4 教材《计算机图形学基础教程》第64页,图3.6(2)。

5 教材《计算机图形学基础教程》第64页,图3.6(3)。

6 教材《计算机图形学基础教程》第64页,图3.6(4)。

7教材《计算机图形学基础教程》第208页,图B.2(a)。

8 教材《计算机图形学基础教程》第208页,图B.2(b)。

9 教材《计算机图形学基础教程》第208页,图B.2(c)。

10 在计算机屏幕中间部分显示函数图形:y=sin(x)/x。

11 在计算机屏幕中间部分显示函数图形:

x= (1+sin(t)-2*cos(4*t))*cos(t), y=(1+sin(t)-2*cos(4*t))*sin(t)。

12 在屏幕上绘制三次Bezier曲线基函数的图形 x=(1-t)3。

13 在屏幕上绘制三次Bezier曲线基函数的图形 x=3t(1-t)2。

14 在屏幕上绘制三次Bezier曲线基函数的图形 x=3t2(1-t)。

15 红色矩形,左上方有一颗五角星(如图1)。

16 七巧板(如图2)。

17 Hanoi塔问题的示意图(如图3)。

18 简化的扑克牌四种花色图案(如图4)。

19 一个红色的450角方向的箭头(如图5)。

20 树(如图6)。

22 机器人(如图7)。

23 放射状的直线段(如图8)。

24 实现Cohen-Sutherland裁剪算法,设窗口左下和右上角点的坐标为(1,2)->(9,6),线段两端点坐标分别为(0,10)和(10,0),(10,10)和(1,-6),绘制裁剪实现的示意图。

25 实现点对多边形包含性检测的射线法,设多边形顶点坐标序列为(1,1),(3,2),(3,0),(6,4),(5,8),(0,7), 请运行实现程序分别判定下列各点的包含性,(3,5),(2,7),(4,6)。绘制如教材49页图4.29那样的示意图。

26 实现点对多边形包含性检测的弧长法,设多边形顶点坐标序列为(1,1),(3,2),(3,0),(6,4),(5,8),(0,7), 请运行实现程序分别判定下列各点的包含性,(3,5),(2,7),(4,6) 。绘制如教材49页图4.29那样的的示意图。

27 一条直线段绕其中点旋转36次,每次100,作出图形。

28 一个正三角形绕其重心旋转10次,每次360,作出图形。

29 三角形(1,0.5),(1,-0.5),(10,0),绕原点旋转20次,每次180,作出图形。

30 一个正方形,绕自己的中心旋转,角度α可指定,用α=π/60 做旋转,每次旋转同时,放大sinα+cosα。

31 正八面体各顶点坐标是(1,0,0),(0,1,0),(-1,0,0),(0,-1,0),(0,0,1), (0,0,-1),作出三视图(参考教材第213页图C.3)。

32 在屏幕上同一个坐标系中绘制三次Bezier曲线四个基函数的图形。

33 用鼠标输入四个点位置,画一条Bezier曲线经过这四点,在屏幕上显示出来(提示:要反求中间两个控制点)。