由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版] 计算机图形学实验及课程设计 Visual C++版 第2版 图形图像与多媒体技术 孔令德 康凤娥 清华大学出版
¥ ×1
| |||||||
| |||||||
书名: | 计算机图形学实验及课程设计(Visual C++版)(第2版) |
出版社: | 清华大学出版社 |
出版日期: | 2018 |
ISBN号: | 9787302489498 |
本书是与《计算机图形学基础教程(Visual C++版)(第2版)》配套的实验教材,提供了18个综合性教学实验和5个课程设计项目,可以满足计算机图形学课堂上机实验和设计周课程设计任务。实验项目编排由浅入深,通过定义基础类、直线类、变换类、填充类、光照类,最终构造了三维动态光照场景。本书的全部内容都基于MFC框架完成,彩插中展示的所有图形均使用CDC类的SetPixel()成员函数绘制,未包含任何图形学库。教学实验和课程设计项目的开发过程按照OpenGL的操作流程编写,易于引导读者从图形学的原理领域进入应用领域。 本书的教学实验和课程设计项目的源代码和实验拓展项目的可执行文件全部提供在笔者的个人网站上,请读者下载后参照源代码学习。通读本书,读者可以轻松掌握多面体、球体、圆环等三维物体线框模型的建模方法。在三维动态光照场景中,可以调整物体表面模型的材质属性、添加纹理细节,改变视点和光源的位置,完成三维真实感图形的动态绘制。 本书内容全面、案例丰富、注重理实一体化,适合作为本科计算机图形学的实验和课程设计教材。本书为源代码提供了详尽的注释,可供计算机图形学爱好者从编程的角度理解和掌握计算机图形学原理。 |
无 |
本教材是国内非常有影响力的图形学教材的第2版,书中案例全部用Visual C++的MFC框架实现。书中彩插展示了案例最终效果。相关资源提供网站下载。 |
目录 第一部分教 学 实 验实验任务书3实验1绘制金刚石图案4 1.1实验目的4 1.2实验要求4 1.3效果图4 1.4实验准备5 1.5实验步骤5 1.5.1创建Test工程实验框架5 1.5.2绘制金刚石图案15 1.5.3写出实验报告24 1.6思考与练习24实验2绘制任意斜率的直线段28 2.1实验目的28 2.2实验要求28 2.3效果图28 2.4实验准备29 2.5实验步骤29 2.5.1定义颜色类CRGB29 2.5.2设计CLine直线类32 2.5.3消息映射37 2.5.4写出实验报告41 2.6思考与练习41实验3交互式绘制多边形45 3.1实验目的45 3.2实验要求45 3.3效果图45 3.4实验准备46 3.5实验步骤46 3.5.1人机交互技术46 3.5.2双缓冲技术48 3.5.3绘制多边形49 3.5.4设计CPtrArray类49 3.5.5有效边表填充算法50 3.5.6写出实验报告58 3.6思考与练习58实验4二维几何变换61 4.1实验目的61 4.2实验要求61 4.3效果图61 4.4实验准备62 4.5实验步骤62 4.5.1静态切分视图框架62 4.5.2设计左窗格视图65 4.5.3设计CTestDoc类69 4.5.4设计包含齐次坐标的二维点类CP2 69 4.5.5设计二维几何变换类70 4.5.6设计双缓冲74 4.5.7读入图形顶点75 4.5.8绘制图形75 4.5.9碰撞检测76 4.5.10定时器函数76 4.5.11禁止背景刷新函数77 4.5.12写出实验报告77 4.6思考与练习77实验5直线段裁剪80 5.1实验目的80 5.2实验要求80 5.3效果图80 5.4实验准备81 5.5实验步骤81 5.5.1定义CP2类81 5.5.2OnDrw()函数82 5.5.3绘制裁剪窗口82 5.5.4鼠标左键按下函数83 5.5.5鼠标移动函数83 5.5.6编码函数84 5.5.7裁剪函数85 5.5.8写出实验报告87 5.6思考与练习87实验6立方体线框模型正交投影89 6.1实验目的89 6.2实验要求89 6.3效果图89 6.4实验准备90 6.5实验步骤90 6.5.1立方体数学模型90 6.5.2三维变换91 6.5.3正交投影93 6.5.4设计三维点类93 6.5.5定义三维变换类95 6.5.6定义点表100 6.5.7定义面表100 6.5.8绘制立方体线框模型101 6.5.9键盘控制101 6.5.10动画控制102 6.5.11写出实验报告104 6.6思考与练习104实验7立方体线框模型透视投影106 7.1实验目的106 7.2实验要求106 7.3效果图106 7.4实验准备107 7.5实验步骤107 7.5.1透视投影变换的实现109 7.5.2定义点表110 7.5.3定义面表111 7.5.4绘制立方体111 7.5.5缩小立方体112 7.5.6放大立方体112 7.5.7写出实验报告112 7.6思考与练习112实验8动态三视图115 8.1实验目的115 8.2实验要求115 8.3效果图115 8.4实验准备116 8.5实验步骤116 8.5.1建立多面体的数据结构116 8.5.2创建2×2静态切分窗格117 8.5.3建立齐次三维点类117 8.5.4建立表面类119 8.5.5内存复制120 8.5.6三视图变换矩阵122 8.5.7矩阵相乘函数123 8.5.8绘制多面体斜等测图123 8.5.9绘制三视图125 8.5.10写出实验报告125 8.6思考与练习126实验9交互绘制Bezier曲线128 9.1实验目的128 9.2实验要求128 9.3效果图128 9.4实验准备129 9.5实验步骤129 9.5.1Bezier曲线的分割递推德卡斯特里奥算法129 9.5.2德卡斯特里奥函数130 9.5.3绘制Bezier曲线131 9.5.4绘制控制多边形131 9.5.5鼠标左键按下的函数132 9.5.6鼠标右键按下的函数133 9.5.7鼠标移动的函数133 9.5.8写出实验报告133 9.6思考与练习134实验10交互绘制三次B样条曲线135 10.1实验目的135 10.2实验要求135 10.3效果图135 10.4实验准备136 10.5实验步骤136 10.5.1三次B样条曲线的几何性质136 10.5.2绘制控制多边形137 10.5.3绘制三次B样条曲线138 10.5.4鼠标移动函数138 10.5.5写出实验报告139 10.6思考与练习139实验11旋转的Koch雪花142 11.1实验目的142 11.2实验要求142 11.3效果图142 11.4实验准备143 11.5实验步骤143 11.5.1Koch曲线的生成元143 11.5.2绘制Koch雪花145 11.5.3双缓冲函数145 11.5.4分形函数146 11.5.5Koch函数147 11.5.6写出实验报告147 11.6思考与练习147实验12颜色渐变立方体150 12.1实验目的150 12.2实验要求150 12.3效果图150 12.4实验准备151 12.5实验步骤151 12.5.1定义矢量类CVector151 12.5.2定义颜色点类154 12.5.3定义点表155 12.5.4定义面表156 12.5.5绘制物体156 12.5.6颜色渐变有效边表填充算法157 12.5.7写出实验报告165 12.6思考与练习165实验13地理划分线框球169 13.1实验目的169 13.2实验要求169 13.3效果图169 13.4实验准备170 13.5实验步骤170 13.5.1球体几何模型170 13.5.2绘制球体173 13.5.3写出实验报告175 13.6思考与练习175实验14交叉条消隐180 14.1实验目的180 14.2实验要求180 14.3效果图180 14.4实验准备181 14.5实验步骤181 14.5.1交叉条数学模型181 14.5.2叠加条数学模型183 14.5.3消隐算法184 14.5.4定义深度缓冲点表185 14.5.5定义深度排序点表186 14.5.6设置坐标系187 14.5.7禁用深度缓冲绘制交叉条187 14.5.8启用深度缓冲绘制交叉条188 14.5.9深度排序函数188 14.5.10设置背景色为黑色189 14.5.11深度缓冲消隐算法189 14.5.12写出实验报告199 14.6思考与练习199实验15立方体光照模型201 15.1实验目的201 15.2实验要求201 15.3效果图201 15.4实验准备202 15.5实验步骤202 15.5.1简单光照模型202 15.5.2设计光源类CLightSource205 15.5.3设计材质类CMaterial207 15.5.4设计光照类CLighting208 15.5.5设计默认光源颜色和材质颜色211 15.5.6设计红色、绿色和蓝色光源菜单项211 15.5.7设计红宝石、绿宝石和蓝宝石材质菜单项212 15.5.8设计变换类213 15.5.9写出实验报告217 15.6思考与练习217实验16球体Gouraud光照模型221 16.1实验目的221 16.2实验要求221 16.3效果图221 16.4实验准备222 16.5实验步骤222 16.5.1双线性光强插值模型算法222 16.5.2设置光源颜色和材质颜色222 16.5.3读入网格小面表223 16.5.4读入网格顶点表224 16.5.5计算面片顶点的颜色225 16.5.6绘制球面226 16.5.7写出实验报告227 16.6思考与练习227实验17球体Phong光照模型229 17.1实验目的229 17.2实验要求229 17.3效果图229 17.4实验准备230 17.5实验步骤230 17.5.1Phong双线性法矢插值模型230 17.5.2修改CAET类231 17.5.3修改CZBuffer类231 17.5.4光照环境初始化240 17.5.5绘制球面函数241 17.5.6写出实验报告242 17.6思考与练习242实验18立方体纹理映射245 18.1实验目的245 18.2实验要求245 18.3效果图245 18.4实验准备246 18.5实验步骤246 18.5.1定义CFacet类246 18.5.2读入位图纹理247 18.5.3定义面表248 18.5.4绘制立方体250 18.5.5填充立方体表面250 18.5.6写出实验报告253 18.6思考与练习253第二部分课 程 设 计课程设计任务书259课程设计Ⅰ基本图元光栅扫描演示系统261 Ⅰ.1设计目标261 Ⅰ.2设计效果261 Ⅰ.3总体设计263 Ⅰ.4类的设计264 Ⅰ.5视图的设计281 Ⅰ.6结论293课程设计Ⅱ递归动态球体演示系统294 Ⅱ.1设计目标294 Ⅱ.2设计效果294 Ⅱ.3总体设计296 Ⅱ.4类的设计297 Ⅱ.5视图的设计300 Ⅱ.6结论309课程设计Ⅲ圆环动态纹理演示系统311 Ⅲ.1设计目标311 Ⅲ.2设计效果311 Ⅲ.3总体设计313 Ⅲ.4类的设计317 Ⅲ.5视图的设计337 Ⅲ.6结论346课程设计Ⅳ动态光源演示系统348 Ⅳ.1设计目标348 Ⅳ.2设计效果348 Ⅳ.3总体设计350 Ⅳ.4类的设计350 Ⅳ.5视图的设计356 Ⅳ.6结论360课程设计Ⅴ3DS接口演示系统361 Ⅴ.1设计目标361 Ⅴ.2设计效果362 Ⅴ.3总体设计362 Ⅴ.4类的设计364 Ⅴ.5视图的设计372 Ⅴ.6结论376参考文献378 |
实验3交互式绘制多边形 3.1实验目的(1) 掌握双缓冲绘图技术。 (2) 掌握人机交互技术。 (3) 掌握填充动态多边形的有效边表算法。 3.2实验要求 (1) 使用鼠标在屏幕客户区绘制任意点数的多边形。要求使用橡皮筋技术动态绘制每条边;鼠标移动过程中按住Shift键时可绘制垂直边或水平边;将多边形的终点移动到多边形的起点时自动封闭多边形;在绘制多边形的过程中,状态栏动态显示鼠标光标的位置坐标。 (2) 当开始绘制多边形时,更改鼠标光标为十字光标,多边形绘制完毕后恢复为箭头光标。 (3) 多边形闭合后自动调用有效边表算法填充多边形内部区域。 3.3效果图 交互式绘制多边形效果如图31所示。 图31交互式绘制多边形 3.4实验准备 (1) 在学习完主教材4.2节后进行本实验。 (2) 熟悉Visual C++中CPtrArray类的使用方法。 (3) 熟悉静态多边形的有效边表填充算法。 3.5实验步骤 本实验由3个部分构成。第一部分是人机交互技术绘图,使用双缓冲技术实现。第二部分是创建动态数组,使用MFC的CPtrArray类数组实现。第三部分是填充多边形,使用有效边表算法实现。 3.5.1人机交互技术 人机交互绘图技术主要包括回显、约束、网格、引力域、橡皮筋、拖动、草拟和旋转等技术,这些技术协调使用可以完成图形的交互操作。本实验主要使用了橡皮筋、回显、约束和引力域技术。 (1) 橡皮筋技术。橡皮筋技术是将绘图过程动态、连续地表现出来,直到产生用户满意的结果为止的技术。实验中借助于双缓冲技术,在WM_MOUSEMOVE消息处理函数中实现了橡皮筋技术。 |
清华大学出版社官方旗舰店
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格