计算机图形学实验
- 格式:doc
- 大小:80.00 KB
- 文档页数:4
一、最简单的利用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曲线经过这四点,在屏幕上显示出来(提示:要反求中间两个控制点)。