计算机图形学基础(实验指导书)

合集下载

计算机图形学实验指导书(vc++版)

计算机图形学实验指导书(vc++版)

实验指导书刘文涛2013目录第一章图形学实验环境和要求 (4)1.1 VC++实验环境 (4)1.1.1 基本环境 (4)1.1.1 开发图形程序的一般流程 (7)1.1.3 基本绘图函数介绍 (11)1.2 OpenGL (22)1.2.1 OpenGL介绍 (22)1.2.2 OpenGL开发环境 (24)1.2.3 OpenGL函数 (24)1.2.4 回调函数 (25)1.2.4 一个典型OpenGL例程 (26)1.3 实验要求 (29)1.3.1 实验内容 (29)1.3.2 实验方法 (29)1.3.3 实验效果 (30)第二章直线生成算法 (30)2.1 实验原理 (30)2.1.1 DDA算法 (30)2.1.2 Bresenham算法 (30)2.2 实验内容 (30)2.3 参考示例程序 (30)第三章圆和椭圆生成算法 (32)3.1 实验原理 (32)3.2 实验内容 (32)3.3 参考示例程序1 (32)3.4 参考示例程序2 (33)第四章裁剪算法 (35)4.1 实验原理 (35)4.2 实验内容 (35)4.3 示例程序 (35)4.3.1 参考例子1 (35)4.3.2参考例子2 (38)第五章二维变换 (40)5.1 实验原理 (40)5.2 实验内容 (40)5.3 示例程序 (40)5.3.1参考例子1 (40)第六章三维变换 (44)6.1 实验原理: (44)6.2 实验内容 (45)6.3示例程序 (45)第七章填充算法 (47)7.1 实验原理: (47)7.2 实验内容 (47)7.3示例程序 (47)第八章曲线曲面 (50)8.1 实验原理 (50)8.2 实验内容 (50)8.3示例程序 (51)8.3.1 参考例子(1) (51)8.3.2 参考例子(2) (52)8.3.3 参考例子(3) (54)8.3.4 参考例子(4) (56)第九章真实感图形绘制 (59)9.1 实验原理 (59)9.2 实验内容 (59)9.3示例程序 (59)9.3.1参考例子(1) (59)9.3.2参考例子(2) (61)9.3.3参考例子(3) (63)第十章动画 (66)10.1 实验原理 (66)10.2 实验内容 (66)10.3示例程序 (66)10.3.1 参考例子 (66)参考文献: (72)第一章图形学实验基础1.1 VC++实验环境1.1.1 基本环境Microsoft Visual C++ 6.0 是微软推出的功能强大的可视化C/C++语言编译器,运行在Windows 9x/2000/NT等平台上,可以建立32位应用程序。

《计算机图形学》实验指导书

《计算机图形学》实验指导书

计算机图形学实验指导书袁科计算机技术实验中心目录实验一实现DDA、中点画线算法和Bresenham画线算法 (24)实验二实现Bezier曲线 (25)实验三实现B样条曲线 (26)实验四实现多边形填充的边界标志算法 (27)实验五实现裁剪多边形的Cohen-Sutherland算法 (28)实验六二维图形的基本几何变换 (30)实验七画图软件的编制 (31)实验一实现DDA、中点画线算法和Bresenham画线算法【实验目的】1、掌握直线的多种生成算法;2、掌握二维图形显示原理。

【实验环境】VC++6.0/ BC【实验性质及学时】验证性实验,2学时,必做实验【实验内容】利用任意的一个实验环境,编制源程序,分别实现直线的三种生成算法,即数字微分法(DDA)、中点画线法以及Bresenham画线算法。

【实验原理】1、数字微分法(Digital Differential Analyzer,DDA)算法思想:基于直线的微分方程来生成直线。

ε=1/max(|△x|,|△y|)max(|△x|,|△y|)=|△x|,即|k|≤1 的情况:max(|△x|,|△y|)=|△y|,此时|k|≥1:2、中点画线法算法思想:每次在最大位移方向上走一步,另一方向是否走步取决于误差项的判断。

3、Bresenham画线算法算法思想:其基本思想同中点算法一样,即每次在最大位移方向上走一步,而另一个方向是否走步取决于误差项的判断。

【实验要求】1.上交源程序;2.上交实验报告,实验报告内容如下:(1) 实验名称(2) 实验目的(3) 算法实现的设计方法及程序流程图(4) 程序结果分析【分析与思考】(1) 上述所阐述的三个算法,其基本算法只能适用于直线的斜率(|K|<=1) 的情形,如何将上述算法进行推广,使其能够处理任意斜率的直线?(2) 计算机显示屏幕的坐标圆心在哪里,与我们平时的习惯有什么差异,如何协调二者?实验二 实现Bezier 曲线【实验目的】1、掌握Bezier 曲线的定义;2、能编程实现N 次Bezier 曲线的绘制与显示。

计算机图形学实验指导书

计算机图形学实验指导书

《计算机图形学》实验指导书华南农业大学信息学院信息学院章晓华主编目录第一部分《计算机图形学》实验要求 (1)一、《计算机图形学》实验教学概述 (1)1、实验教学的基本情况 (1)2、实验教学的指导思想和教学目的 (1)3、实验项目表 (1)二、《计算机图形学》实验教学规范 (2)1、实验课的意义 (2)2、实验步骤 (2)3、实验报告(文档)规范 (2)4、实验考核 (3)第二部分实验内容 (4)实验一图元的生成算法 (4)实验二多边形填充 (7)实验三二维图形变换 (14)实验四直线Sutherland算法的实现 (22)实验五二维图形系统 (26)第一部分《计算机图形学》实验要求一、《计算机图形学》实验教学概述1、实验教学的基本情况课程总学时数:48学时;课程总学分:3学分实验总学时:16适用专业:信息学院计算机科学与技术、软件工程、网络工程专业,软件学院软件工程专业考核方式及方法:实际操作+程序运行+实验报告。

实验成绩、考勤及书面作业成绩组成平时成绩。

平时成绩占课程总成绩30%,考试成绩占课程总成绩70%。

成绩评定:在参考“难度系数”的基础上>=90——选做内容/必做内容功能完善,编程风格好,人机接口界面好;80~90——必做内容功能完善,完成部分选做内容,编程风格好,人机接口界面良好;70~80——完成必做内容,编程风格良好;60~70——能完成必做内容;<60——未按时完成必做内容,或者抄袭(含雷同者)。

2、实验教学的指导思想和教学目的1)指导思想:掌握计算机图形的生成技术和生成各种平面图形和简单立体图形的基本算法,掌握图形填充、裁剪、图形变换及图形消隐等计算机图形处理的基本方法,初步掌握用C++语言编写基本图形生成和处理程序的方法,为后续的课程奠定良好的基础。

2)教学目的:为了使学生在课程学习的同时,通过在具体的编程环境中的实际操作,对计算机图形学的基本概念和方法能有一个初步的了解,使学生加深了解和更好地掌握《计算机图形学》课程教学大纲要求的内容,并培养学生动手编程解决实际问题的能力,训练学生分析问题和调试程序的能力,锻炼学生撰写科技实验论文的能力。

《计算机图形学》课内实验指导书

《计算机图形学》课内实验指导书

“计算机图形学”课内实验指导书杨新宇西安交通大学计算机科学与技术系课程基本情况实验学时:8适用专业:计算机专业本科生先修课程:数据结构,C语言程序设计开课学院:电子与信息工程学院开课学期:第七学期参考书:·DONALD HEARN & M.PAULINE BAKER著,蔡士杰、吴春鎔、孙正兴等译,《计算机图形学(第二版)》,PRENTICE HALL&电子工业出版社,2002年·David F. Rogers主编,《Procedural Elements for Computer Graphics》,机械工业出版社,2002年课程简介本实验是对《计算机图形学》课的课内实践,完成基本几何图形(线、圆、椭圆)的绘制。

教学基本要求与成绩的考核与评定办法一、实验课教学基本要求1.根据题目要求的功能,独立完成,培养自己独立思考、独立解决问题的能力;2.同学之间可以讨论研究问题,互相交流经验体会,但不可照抄;3.记录保存好自己的设计资料数据,调试完成后要写出详细设计报告;4.任务完成后老师要逐个检查验收,并结合实际情况提问答辩。

二、实验成绩的考核与评定办法在实验过程中考察动手能力,依据提交的设计报告、结合验收的实际情况综合打分。

实验项目名称:直线的DDA算法实验目的:1.掌握直线的DDA算法的编程实现。

实验环境:Windows操作系统、VC编程环境。

实验要求:以绘图区域中心为(0,0)点。

要求能够输入任意两个端点的坐标。

实验内容提要:参考《计算机图形学基础》课程中的相关算法流程。

实验类型:设计性。

实验项目名称:直线的Bresenham画线算法实验目的:1.掌握直线的Bresenham算法的编程实现。

实验环境:Windows操作系统、VC编程环境。

实验要求:以绘图区域中心为(0,0)点。

要求能够输入任意两个端点的坐标。

实验内容提要:参考《计算机图形学基础》课程中的相关算法流程。

计算机图形学实验指导书

计算机图形学实验指导书

计算机图形学实验指导书【】第一章计算机图形学的软件开发环境计算机图形学中的程序都是用C语言编写的,Turbo C和Visual C++常见的两种C语言开发环境,Turbo C是在Dos环境下开发,而Visual C++是在Windows环境下开发。

1.1、在Turbo C环境下开发应用程序一些高级语言都扩充了图形功能,这使得用户可以不需配备专门的图形软件,就能在计算机上进行图形工作。

Turbo C 2.0包含有460多个库函数,其中有 70 多个图形函数,这些函数包括了绘图、处理图象及图素、屏幕及视图区控制、颜色及线型设置、状态查询和出错处理等,这使得 TurboC具有很强的图形功能。

1.图形显示器的工作方式IBM PC 机的显示器可以在两种基本视频方式下工作:一种是文本方式;另一种是图形方式。

( 1 )文本方式在文本方式下,屏幕上可以显示的最小单位是字符,字符在屏幕上以行、列排列,即我们通常见到的情况。

文本方式不同,屏幕上所显示字符的行数和列数也不一样,颜色也会有所区别。

Turbo C 支持 6 种不同的文本显示方式。

( 2 )图形方式在图形方式下,屏幕上可以控制的最小单元称作像素 ( pixel ) ,它是组成图形的基本元素,一般叫作“点”。

通常把屏幕上所包含像素的个数叫做分辨率。

分辨率越高,显示的图形越细致、质量越好,这是显而易见的。

在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。

在该坐标系中,屏幕左上角为坐标系的原点,坐标值为 ( 0 , 0 ) ; 水平方向为X轴,自左向右;垂直方向为Y轴,自上向下。

见下图。

点坐标系中坐标值的范围决定于所用显示器的分辨率。

分辨率不同,水平方向上和垂直方向上的点数也不同,即其 maxx 、maxy 的数值不同。

就我们常用的 VGA 显示器来说,它通常所用的分辨率为6405480 ,即它的 maxx 值为 639 , maxy 的值为479。

2. 图形函数及其用法Turbo C 的图形函数均在一个头文件“ graphics.h” 中定义。

图形学实验指导书

图形学实验指导书

第一部分绪论本指导书是根据《计算机图形学》课程实验教学大纲编写的,适用于计算机科学与技术的相关专业。

一、本课程实验的作用与任务计算机图形学是研究利用计算机来处理图形的原理、方法和技术的学科。

图形的处理包括了图形生成、图形描述、图形存储、图形变换、图形绘制、图形输出等等。

计算机图形学与计算机图形处理技术是许多重要应用领域的基础,图形技术已经交叉渗透到各个应用学科中。

通过理论学习,再通过相应的实践操作,可以让学生掌握计算机图形技术的知识,培养计算机图形处理的能力,熟悉计算机图形应用软件和系统的设计、使用和组织。

本实验课程的任务是让学生学会如何把书本上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。

二、本课程实验的基础知识本课程的主要讲授了计算机图形学的概念,研究内容和应用领域;图形(图像)信息的计算机处理;图形系统的组成和图形设备;图形基元及其属性的生成、操作和实现;图形操作与处理技术;二维及三维图形的表示、变换、窗口-视区变换等操作;图形的窗口与视区,图形的填充与剪裁,图段与图层处理;隐藏线、面消隐技术,计算机图形标准以及图形数据结构和图形程序设计等。

三、本课程实验教学项目及其教学要求第二部分基本实验指导实验一Window 图形编程基础一、实验目的1、熟练使用实验主要开发平台VC6.0;2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows 图形应用程序;3、掌握Window 图形编程的基本方法;4、学会使用基本绘图函数和Window GDI 对象;二、实验原理在程序中,用户可以自己设定绘制图形的形状和画笔的颜色,需要有变量(m_UserColor)记录用户选择的颜色;同理,需要有变量(m_UserShape)记录用户选择的图形。

在基于Document-View 的程序中,应用程序几乎所有的绘制工作都是在视图类的OnDraw(CDC*pDC)函数中完成。

课件计算机图形学图形学实验指导书.docx

《计算机图形学》实验指导书首都师范大学信息工程学院2005年9月7日赵艳红通过学习《计算机图形学》课程可以了解和掌握计算机绘图的基本原理和算法,学会运用计算机编程语言和其它绘图工具绘制图形。

《计算机图形学》课程包括课堂教学和上机实验,这本实验指导书是为了配合上机实验而编写的。

第I章介绍了利用C语言绘图的基础知识,主要是考虑C语言课程屮讲授的重点是标准C (ANSIC),较少涉及图形环境和图形函数,因此着重讲解了C语言图形初始化的方法和常用C语言图形函数,并对Turbo C 3.0集成环境作了介绍。

第2章讲述了实验的上机要求和操作步骤,实验中可按步骤执行。

部分实验要求的后面附有C语言的源程序,可作为编程的参考。

上机实验时的注意事项和机房管理条例列于附录屮,请参照执行。

目录第1章C语言绘图基础1」图形与显示器基础1.2C语言图形初始化1.3Turbo C 3.0的集成环境第2章实验指导2」实验一直线的扫描转换2.2实验二旋转的矩形2.3实验三直线段的裁剪(或三维图形显示)2.4实验四曲线2.5实验五分形几何造型附录1关于工程文件的使用2Turbo C图形函数的分类3Turbo C图形函数(ABC顺序)4实验报告要求5上机实验屮编程技巧第1章C语言绘图基础1.1图形与显示器基础图形与计算机系统硬件有着密切的联系。

显示器的工作方式分为两种:一是正文方式,二是图形方式,要在屏幕上显示图形,就必须工作在图形方式下。

在图形方式中又分为多种模式,例如CGA,EGA,VGA等等。

不同的模式显示的分辨率不同。

支持显示模式需要三个条件:显示器,显示卡,和驱动程序。

下表列出Turbo C支持的图形模式。

1.2C语言图形初始化在计算机上绘制和显示图形,必须工作在图形方式下。

使用Turbo C绘制图形的基本步骤为:*设置图形方式*绘制图形*关闭图形方式图形方式初始化是通过函数initgraph来完成的,其功能是通过装入一个图形驱动程序来初始化图形系统,并将系统设置为图形方式。

计算机图形学试验指导书[1]

《电脑图形学》实验指导书傅由甲卢宇编重庆理工大学电脑科学与工程学院2008年10月目录目录 (I)1 OPENGL与三维图形 (1)1.1O PEN GL介绍 (1)1.2O PEN GL函数的语法 (3)1.3O PEN GL是状态机 (4)1.4O PEN GL相关的函数库 (4)1.5O PEN GL的缓冲区 (4)2 MICROSOFT VISUAL C++ 6.0 MFC编程基础 (6)2.1MFC事件驱动简介 (6)2.2MFC事件驱动编程 (6)2.3在VC下实现O PEN GL程序的编译 (12)实验1 WINDOWS操作系统图形开发基础 (13)一、实验要求和目的 (13)二、相关知识提要 (13)三、实验内容及步骤 (15)四、实验习题 (18)实验2 基本光栅图形生成 (20)一、实验要求和目的 (20)二、相关知识提要 (20)三、实验内容及题目 (23)实验3 图形变换 (25)一、实验要求和目的 (25)二、相关知识提要 (25)三、实验内容及步骤 (27)四、实验习题 (28)实验四交互式绘图技术 (29)一、实验要求和目的 (29)二、实验内容及步骤 (29)三、实验习题 (34)实验五光照处理 (35)一、实验要求和目的 (35)二、相关知识提要 (35)三、实验内容及步骤 (38)四、实验习题 (41)实验六纹理映射 (42)一、实验要求和目的 (42)二、相关知识提要 (42)三、实验内容及步骤 (45)四、实验习题 (46)实验七曲面生成 (47)一、实验要求和目的 (47)二、相关知识提要 (47)三、实验内容及步骤 (50)四、实验习题 (55)实验八综合实验〔供优秀学生选做〕 (56)一、实验要求和目的 (56)二、实验内容 (56)三、实验步骤 (56)1 OpenGL与三维图形1.1 OpenGL介绍我们生活在一个充满三维物体的三维世界中,为了使电脑能精确地再现这些物体,必须能在三维空间描绘这些物体。

计算机图形学基础实验指导书

《计算机图形学基础》实验指导书课程名称:计算机图形学基础英文名称:Computer Graphics课程性质:必修课程编号:适应专业:计算机科学与技术;软件工程学时学分:总学时48,实验学时102,总学分2编写人:王创存一、实验课程任务与要求1. 目的与任务:计算机图形学实验教学是为了将学生的计算机操作能力、分析能力、工程设计能力与应用实践结合起来,引导学生由浅入深地掌握计算机图形学理论与算法,掌握交互构图能力,具备工程应用的图形学基础。

本实验教学主要内容是要求学生用Visual Basic编程实现各种图形的绘制,强化学生的程序设计能力和程序调试能力,使学生巩固所学各种图形的生成算法的理论知识。

实践教学共包括十项内容。

2. 实验基本要求:(以软件设计为主要表现形式)上机前应准备好实验的程序设计算法描述与关键分析内容;准备好程序测试数据和设备操作步骤,上机调试、运行;完成每个实验后进行数据与程序对比分析,给出运行结果。

二、实验内容与学时安排实验一、图形输入/输出设备的操作使用及简单图形的输出(2学时)要求:(1)掌握图形设备的操作过程;测试图形设备的分辨率、性能;(2)图形软件包与外部设备的连接参数配置;(3)利用图形软件包绘制简单图形并在设备上输出;(4)设计菜单,实现人机交互方式控制图形设备进行简单操作实验二、编程环境及图形绘制基础练习(2学时)题目:绘制分形树基本要求:)数据输入项为:树干的起点坐标,树干长度,树枝倾斜角度,树枝层数,最短树枝;)结果直接输出在窗体中。

附加要求:(1)通过用户输入可改变线型(实线、虚线与点划线)。

(2)通过用户输入可改变线宽。

实验三、直线的绘制(2学时)题目:用逐点比较法或中点Bresenham法实现直线的绘制基本要求:)数据输入项为:直线的起点与终点坐标;)直线与圆输出在PictureBox控件中;)保存图形绘制结果,将该实验加入到菜单中去。

实验四、圆的绘制(2学时)题目:用逐点比较法或中点Bresenham法实现圆的绘制基本要求:)数据输入项为:圆心坐标与半径;)直线与圆输出在PictureBox控件中;)保存图形绘制结果,将该实验加入到菜单中去。

《计算机图形学》实验指导书(正式版)

《计算机图形学》实验指导谢晓玲华东理工大学信息学院计算机系2010年8月目录实验1 OpenGL应用的创建 (2)实验2 橡皮筋技术的实现 (17)实验3 基本变换 (24)实验4 拾取 (41)实验5 三维观察的实现 (54)实验1 OpenGL应用的创建一、实验目的1、了解C++.NET开发基于窗口技术的应用程序的步骤;2、了解OpenGL绘图的步骤;3、显示一个三角形图形。

二、使用的工具软件及环境C++.NET、OpenGL三、实验内容1、构造一个单文档的Windows应用程序2、定义一个填充图案;3、通过菜单,交互控制填充开关;4、显示一个填充的三角形图形。

四、实验指导1、基本要素(1)C++.NET程序设计框架C++.NET提供了一套应用程序框架,应用程序框架是指用于生成一般的应用程序所必须的各种面向对象的软件组建的集合。

C++程序设计的特点之一就是大量使用类库来进行功能扩展。

类库是一个可以在应用程序中使用的相互关联的C++类的集合。

一些类库是随编译器一起提供的,一些是由其他软件公司销售的,还有一些是由用户自己开发的。

应用程序框架是一种类库的超集,它用来定义程序的结构,将其他的类库,例如文档类、视图类及用户自定义类等,嵌入到应用程序框架中,以完成用户预期的功能。

通过定制,C++.NET 可以自动生成一套程序代码,以单文档多视风格的应用程序为例,自动生成的源代码主要包含应用程序类、主框架类、文档类、视口类。

以MyDemo为工程名,C++.NET自动生成的类如下:A.class CMyDemoApp: public CWinAppCMyDemoApp的对象就代表了一个应用程序。

该程序定义了一个单独的全局CMyApp对象theApp:CMyDemoApp theApp;其基类决定了theApp的行为,包括程序的启动、初始化和运行等。

B.class CMainFrame : public CFrameWnd它代表了应用程序的主框架窗口,它负责创建和显示具体的窗口结构,并负责消息的分发。

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

《计算机图形学基础》实验指导书教师:赵汉理2009/2010学年第2学期目录实验一OpenGL中基本几何元素的绘制 (1)实验二直线生成的DDA扫描转换算法 (4)实验四直线的Bresenham算法 (5)实验六圆弧的扫描算法 (6)实验十一贴纹理 (8)实验十三设置单面材质与双面材质 (11)实验十五利用OpenGL创建动态场景 (14)实验一OpenGL中基本几何元素的绘制【实验目的】1、熟悉OpenGL编程环境。

2、掌握绘制旋转的金字塔过程。

3、掌握绘制旋转的立方体过程。

4、熟悉OpenGL的语句特点。

【实验内容及步骤】绘制旋转的金字塔和立方体一、绘制旋转的金字塔在函数:int DrawGLScene(GLvoid)中添加以下代码glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0 glRotatef(rtri,1.0f,0.0f,0.0f); // Rotate The Triangle On The Y axisglBegin(GL_TRIANGLES); //开始绘制金字塔各面的三角形//The front face, counterclockwiseglColor3f(1.0f,0.0f,0.0f);glVertex3f( 0.0f, 1.0f, 0.0f); // TopglColor3f(0.0f,1.0f,0.0f);glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom LeftglColor3f(0.0f,0.0f,1.0f); // Set The Color To BlueglVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right//the right face, counterclockwiseglColor3f(1.0f,0.0f,0.0f); // RedglVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right)glColor3f(0.0f,0.0f,1.0f); // BlueglVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right)glColor3f(0.0f,1.0f,0.0f); // GreenglVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right)//the back face,clockwiseglColor3f(1.0f,0.0f,0.0f); // RedglVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back)glColor3f(0.0f,1.0f,0.0f); // GreenglVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back)glColor3f(0.0f,0.0f,1.0f); // BlueglVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back)//the left face,clockwiseglColor3f(1.0f,0.0f,0.0f); // RedglVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left)glColor3f(0.0f,0.0f,1.0f); // BlueglVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left)glColor3f(0.0f,1.0f,0.0f); // GreenglVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left) glEnd(); // Finished Drawing The TriangleglBegin(GL_QUADS); //绘制金字塔底面四边形//the left face,clockwiseglVertex3f(-1.0f,-1.0f,-1.0f);glVertex3f(1.0f,-1.0f, -1.0f);glVertex3f(1.0f,-1.0f, 1.0f);glVertex3f(-1.0f,-1.0f, 1.0f);glEnd();二、绘制旋转的立方体在函数:int DrawGLScene(GLvoid)中添加以下代码glLoadIdentity(); // Reset The Current Modelview MatrixglTranslatef(1.5f,0.0f,-7.0f); // Move Right 1.5 Units And Into The Screen 6.0 glRotatef(rquad,1.0f,1.0f,1.0f); // Rotate The Quad On The X axisglBegin(GL_QUADS); // Draw A Quad//counterclockwiseglColor3f(0.0f,1.0f,0.0f); // Set The Color To GreenglVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top)glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top)glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top)glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad (Top)//clockwiseglColor3f(1.0f,0.5f,0.0f); // Set The Color To OrangeglVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad (Bottom)glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom)glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Bottom)glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Bottom)//counterclockwiseglColor3f(1.0f,0.0f,0.0f); // Set The Color To RedglVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front)glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front)glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Front)glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Front)//clockwiseglColor3f(1.0f,1.0f,0.0f); // Set The Color To YellowglVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Back)glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Back)glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back)glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back)//clockwiseglColor3f(0.0f,0.0f,1.0f); // Set The Color To BlueglVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left)glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Left)glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Left)glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Left)//counterclockwiseglColor3f(1.0f,0.0f,1.0f); // Set The Color To VioletglVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right)glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right)glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Right)glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Right) glEnd(); // Done Drawing The Quadrtri+=0.2f; // Increase The Rotation Variable For The Trianglerquad-=0.15f; // Decrease The Rotation Variable For The Quad思考题:用三角形图原构造二十面体【实验要求】1、此实验的实验时间为2个课时。

2、实验完毕后提交实验报告,实验报告的内容包括实验目的、实验内容、实验步骤、实验结果和实验分析。

实验二直线生成的DDA扫描转换算法【实验目的】掌握DDA画线算法。

【实验内容及步骤】实现DDA算法。

具体步骤如下:一、void CBasicGraphicsView::OnDdaline(){// TODO: Add your command handler code herem_bFlagDDA=!m_bFlagDDA;}二、void CBasicGraphicsView::Ddaline(int x0, int y0, int x1, int y1, int color){CDC *pDC=GetDC(); //获得设备指针float x, y, dx, dy, delta_x, delta_y, steps;int i;dx=(float)(x1-x0); dy=(float)(y1-y0);if(abs(dx)>=abs(dy)) steps=abs(dx);else steps=abs(dy);delta_x=(float)dx/steps; delta_y=(float)dy/steps;x=x0; y=y0;pDC->SetPixel(int(x+0.5), int(y+0.5), color);for(i=1;i<=steps;i++){x+=delta_x; y+=delta_y;pDC->SetPixel(int(x+0.5), int(y+0.5), color);}ReleaseDC(pDC);}【实验要求】1、此实验的实验时间为2个课时。

相关文档
最新文档