计算机图形学基础教程(Visual C++版)习题解答与编程实践
定 价:29 元
丛书名:高等学校计算机专业教材精选
- 作者:孔令德 著
- 出版时间:2010/2/1
- ISBN:9787302214595
- 出 版 社:清华大学出版社
- 中图法分类:TP391.41-44
- 页码:277
- 纸张:胶版纸
- 版次:1
- 开本:16K
- 字数:(单位:千字)
《计算机图形学基础教程(Visual C++版)习题解答与编程实践》采用Visual C++的MFC框架编写了《计算机图形学基础教程(Visual C++版)》 (ISBN 978-7-302-17082-2)中的所有习题的解答,重点实现了《计算机图形学基础教程(Visual C++版)习题解答与编程实践》彩页中“矩形块碰撞模拟”、“直线段的像素级绘制”、“动态旋转双三次B样条曲面模型”、“Sierpinski海绵实体模型”、“三维五角星模型”、“立方体光照模型”、“圆环Gouraud明暗处理光照模型”、“金属球的双点光源Phong 法矢插值模型”、“球的函数纹理映射光照模型”、“球的图片纹理映射模型”、“立方体图片纹理映射模型”等内容。除了极少数习题,如“立方体图片纹理映射模型”是在MFC框架下使用OpenGL技术开发的外,其余案例全部使用纯Visual C++语言开发。
《计算机图形学基础教程(Visual C++版)习题解答与编程实践》由100多个计算机图形学源程序组成,涵盖了计算机图形学的主要内容,是作者于2008年主持省级精品课程“计算机图形学”以来最新建设成果的结晶。笔者一直致力于打造“纸介质教材+数字化教学资源+网络平台”的优质教学资源。在笔者的个人网站提供了《计算机图形学基础教程(Visual C++版)习题解答与编程实践》的全部源程序代码,以供大学本科生和计算机图形学爱好者免费下载使用。
《计算机图形学基础教程(Visual C++版)习题解答与编程实践》(ISBN 978—7—302—17802—2)出版以来,受到了广大热爱计算机图形学编程读者的欢迎。该书获得了兵王高校优秀教材一等奖。 《计算机图形学基础教程(Visual C++版)习题解答与编程实践》采用Visual C++的MFC框架编写了《计算机图形学基础教程(Visual C++版)》中所有习题的解答,重点实现了《计算机图形学基础教程(Visual C++版)习题解答与编程实践》彩页中的内容。
由笔者编写的《计算机图形学基础教程(Visual C++版)》和《计算机图形学实践教程(Visual C++版)》自出版以来受到了读者普遍关爱。许多读者访问了笔者负责的省级精品课程网站,下载了相关的配套教学资源。读者普遍反映: "《计算机图形学基础教程(Visual C++版)》是从计算机编程的角度来讲解图形学的内容,教材内容简明扼要,重点突出,又很重视实践,非常适合学时较少情况下的课程教学”。同时读者也提出: 《计算机图形学基础教程(Visual C++版)》的每章后面都设计了很有价值的习题,尤其是其中的编程题很有水平,希望提供每章习题中的编程题的源代码。为此,笔者编写了本书,同时在笔者个人网站(http://www.klingde.com)提供了所有习题解答的源程序代码供读者下载,所有代码都经过了严格测试,可以在Visual C++ 6.0环境中直接运行,建议显示分辨率为1024×768.
计算机图形学的主要内容是讲解图形的生成原理及算法,重点在于图形生成原理的程序实现。笔者一直认为,图形学的生成原理固然重要,但编程实践是重中之重。图形学原理是任何一本计算机图形学教材上都可以查找到的,但是实现该原理的程序就很难得了。Visual C++是计算机图形学程序设计的首选工具,笔者在完成习题时,以自定义类的方式逐步建立了真实感图形绘制环境,这些类包括: 点类(二维、三维点), Bresenham直线类(走样直线、反走样直线、颜色渐变直线), RGB颜色类、矢量类、填充类(恒定颜色、Gouraud明暗处理和Phong明暗处理),投影变换类(平行投影、透视投影),消隐类(ZBuffer、画家算法)、光照类(材质、光源),纹理类(函数纹理、图片纹理),立体类(立方体、正四面体、正八面体、圆环和球)等。编程时只要在该环境中根据三维立体的数学模型修改顶点表、边表和面表,就可以动态绘制任意立体的真实感光照模型。
《计算机图形学基础教程(Visual C++版)》的每章习题都经过了作者的精心设计,是本章知识及其前述章节内容的综合应用。笔者继续秉承主教材的“讲解注释清晰、各章内容前后衔接自然,最终引导读者完成真实感光照模型绘制”的理念,在习题集中实现了“矩形块碰撞模拟(图5) " 、“直线段的像素级绘制(图7) " 、“动态旋转双三次B样条曲面模型(图9) " 、 "Sierpinski海绵实体模型(图20) " 、“三维五角星模型(图22) " 、“立方体光照模型(图23) " 、“圆环Gouraud明暗处理光照模型(图26) " 、“金属球的双点光源Phong 法矢插值模型(图33) " 、“球的函数纹理映射光照模型(图34) " 、“球的图片纹理映射模型(图35) " 、“立方体图片纹理映射模型(图24) ”等内容。本书是《计算机图形学基础教程(Visual C++版)》教材内容的进一步提升,通过本习题集的学习,特别是拓展部分的学习,读者可以在更高层次上掌握计算机图形学的编程方法。本书中标注为*的习题,实用性很强,但是编程难度相对较大,读者可以根据自身情况选择。
使用MFC开发的程序有许多框架代码,受篇幅限制,本书不可能把所有代码纳入,请读者在学习本书时,应下载本习题集提供的源程序理解。
感谢读者对《计算机图形学基础教程(Visual C++版)》的大力支持。读者的热情和鼓励,让笔者始终觉得重任在肩,这次专门将主教材中的习题结集出版,也是不想有负于读者的期望。虽然习题部分在主教材出版时已经全部开发完毕,但编写本书仍花费了大量的时间,主要工作是添加了部分拓展性的习题,源程序总数达到100多个,同时将所有习题的编程风格进行了统一。作为本书编写的基础工作,程序开发是相当费时的,程序的修改不仅是代码的修改,而且是注释的修改。在这方面,计算机工程研究所的左亮亮、宋准、潘晓完成了大量的程序调试工作,在此一并致谢。
本书的第1章~第4章由康凤娥编写,第5章~第10章由孔令德编写,全书由孔令德提出编写风格并统稿校对。
继续希望读者能一如既往地提出宝贵的意见,共同为我国图形学软件事业的发展做好底层开发工作。
孔令德2009年6月
第1章 导论
一、习题解答
二、习题拓展
第2章 VisualC++ 6.0绘图基础
一、习题解答8
二、习题拓展
第3章 基本图形的扫描转换
一、习题解答
二、习题拓展
第4章 多边形填充
一、习题解答
二、习题拓展
第5章 二维变换和裁剪
一、习题解答
二、习题拓展
第6章 三维变换和投影
一、习题解答
二、习题拓展
第7章 自由曲线曲面
一、习题解答
二、习题拓展
第8章 分形几何
一、习题解答
二、习题拓展
第9章 动态消隐
一、习题解答
二、习题拓展
第10章 真实感图形
一、习题解答
二、习题拓展
参考文献
7.为什么说计算机图形学是基于显示设备而发展的学科?简述图形显示器发展的历史。
【解】计算机图形学是使用显示器绘图的一门学科,显示器是计算机图形学发展的硬件依托,显示器的发展经历了随机扫描显示器、直视存储管显示器和光栅扫描显示器这3个主要阶段。目前计算机图形学的基本算法都是基于光栅扫描显示器而提出的。
8.为什么说随机扫描显示器是画线设备,而光栅扫描显示器是画点设备?
【解】随机扫描显示器的电子束的定位和偏转具有随机性,电子束不进行全屏扫描,其轨迹随图形的定义而变化,只在需要的地方轰击荧光屏。图形的定义是存放在文件存储器中的一组画线命令。随机扫描显示器周期性地读取画线命令,依次在屏幕上画出线条,当所有的画线命令都执行完毕后,图像就显示出来。这时随机扫描显示器又返回到第一条命令行进行屏幕刷新。随机扫描显示器可以直接按指定路径画线,所画直线光滑没有锯齿,因而图像清晰,主要用于显示高质量的图像。
光栅扫描显示器是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的颜色,这些点阵单元被称为像素。光栅扫描显示器不能从单元阵列中的一个可编址的像素点直接画一条直线到达另一个可编址的像素点,只能用靠近这条直线路径的像素点集来近似地表示这条直线。显然,只有在绘制水平、垂直直线及45度线时,像素点集在直线路径上的位置才是准确的,其他情况下的直线均呈阶梯状,出现锯齿。