计算机图形学大作业文档

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

计算机图形学

课程结课大作业

学号5011110122

学生姓名阿依萨丽姑丽·麦麦提专业计算机科学与技术

班级计算机15-1班

塔里木大学教务处制

《计算机图形学》课程结课作业

提示:1、请将答案写在此文档的相应位置,图形需在VC++ 6.0下客户区

屏幕中心绘制,大小可以根据个人需求定制;2、请将相关的文档,包括程序的相关文档进行压缩,并将压缩文档上传到ftp://210.26.176.123“大作业电子

版文档”文件夹下命名为“班级-学号-姓名”,纸质版于2014年12月19

日下午18:00—20:00交到逸夫楼109。

一、选题(此题5分)

请根据你抽中的题号,正确理解其所对应的简笔画。请写出你选中的题号,将图粘贴到下方,并为其取一个合适的名字。

我选的题号是:20号图,名字为:房子。

二、组成(此题10分)

请分析你所选择的题目,由哪些简单图形组成,并写出其所对应的函数或原

理。请在下方表格中简要写明函数的原型或原理的名字即可。如果表格行数不够,请自行添加。

三、参数说明(此题15分)

请写出相关函数的参数,并分析出每个参数的含义,要求此题务必写清每个函数的作用和使用方法。

画图的时候我使用了绘制直线段函数MoveTo()和LineTo()。直线段的绘制过程中有一个称为“当前位置”的特殊位置。每次绘制直线段都是以当前位置为起点,直线段绘制结束后,直线段的终点又成为当前位置。由于当前位置在不断更新,所以使用LineTo()函数可以绘制连续直线。

(1)设置起点位置函数

cpoint MoveTo(int x,int y);

cpoint MoveTo(POINT point);

参数:新位置的点坐标x和y;point是POINT结构或CPoint。本函数只将画笔的当前位置移动到坐标x和y处,不画线。

(2)绘制直线段函数

BOOL LineTo(int x,int y);

BOOL LineTo(POINT point);

参数:直线段终点坐标x和y;point是POINT结构或CPoint对象。从当前位置绘制直线,但不包括(x,y)点。

四、原理说明(此题20分)

请详细写出上述相关原理的详解。例如,如果你应用了中点画直线的方法,请在下方写出其原理,并做详解。要求该题有文字、公式和图形描述

CDC类的成员函数MoveTo()和LineTo()函数用于绘制傻任意斜率的直线段,直线段的颜色由所选用的画笔指定。MoveTo()函数移动当前点到参数(x,y)所指定的点,不画线;LineTo()函数从当前点画一直线段到参数(x,y)所指定的点,但不包括(x,y)。cpoint p0,p1定义直线段的起点坐标p0和终点坐标p1。定义一个CPen类的画笔对象NeWPen和一个画笔对象指针poldpen。调用SlectObject()函数用pOldpen保存的原将画笔将设备上下文恢复原状。

五、步骤(此题40分)

请在VC++6.0上,实现该图形,请写出详细步骤,并将每一步配有相应的截图。注:步骤不能少于20步;每一步必须配有相关截图;请详细写明图形的相关参数。

操作步骤如下:

1.安装Visual C++ 6.0软件。

2.打开Visual C++ 6.0软件。

3.新建一个工程文件,选择工程中的->MFC AppWizard[xex] ,工程名称为Fangzi。

4.选择目录名称。

5. 打开FileView里面的Source Files单击鼠标左键,打开Fangziview.cpp文件,了解里面的代码和作用。

6.为画完图形我采用直线函数,按照直线的起点坐标p0和终点坐标p1来画。在// TODO: add draw code for native data here下面写出关于直线的代码。写出一部分代码,改错后,运行代码。坐标值为:CPoint p0(-50,200),p1(50,200); CPoint p2(50,200),p3(-120,-80);

7.运行结果,出现一部分直线。

8.按照自己的思路写出后面的代码,改错,然后运行相关的代码。对比是不是想要的图形。坐标值为:

CPoint p4(-120,-80),p5(120,-80);

CPoint p6(120,-80),p7(-50,200);

9.运行结果,出现了我想要的图形。

10.下面的三角形里面画出4个直线,写出相关的代码,改错,运行代码。坐标值为:

CPoint p8(-65,0),p9(-90,-70);

CPoint p10(-40,0),p11(-50,-70);

CPoint p12(40,0),p13(50,-70);

CPoint p14(65,0),p15(90,-70);

11.运行结果。

12.改写上面的代码,再次运行。

13.运行结果。

14.按照自己的思路写出代码,改错,运行代码。坐标值为:

CPoint p16(0,-90),p17(-50,-120);

CPoint p18(-50,-120),p19(0,-150);

CPoint p20(0,-150),p21(50,-120);

15.运行结果。

16.按照自己思路继续写出代码,改错代码。坐标值为:

CPoint p22(0,-90),p23(-50,-120);

CPoint p24(-50,-120),p25(0,-150);

CPoint p26(0,-150),p27(50,-120);

CPoint p28(50,-120),p29(0,-90);

相关文档
最新文档