计算机图形学原理与实现
定 价:¥59
中 教 价:¥35.40 (6.00折)
库 存 数: 4
丛 书 名:全国高等学校计算机教育研究会“十四五”系列教材
本书对计算机图形学的基本原理进行了深入浅出的阐述,书中不仅配有丰富的图例和例题,而且采用C语言对课程主要算法进行了编程实现,并以实现OpenGL状态机为主线将课程主要知识点串连起来。这种理论和实践相结合的方式极大地方便了读者对抽象的计算机图形学理论的系统理解和掌握。本书共10章,内容包括绪论、计算机图形系统、OpenGL编程环境介绍、基本图形生成算法、二维变换和二维观察、三维变换和三维观察、三维对象的表示、消隐计算、颜色模型以及真实感图形绘制。本书可作为高等院校计算机图形学理论的课程教材,也可作为从事计算机图形处理技术及其他有关工程技术人员的参考书。
本教材最大的特色为理论联系实践。教材除了对图形学原理进行了深入浅出的推导外,还对计算机图形学常见的算法采用C语言 OpenGL进行了编程实现,对主要知识点均配有丰富的例题。这种理论联系实践的方式可以最大限度地降低读者的学习难度。
计算机图形学经过近几十年的发展,已经渗透到各行各业,在经济建设中发挥着重要作用。2018年,编者在北京师范大学出版社出版了《计算机图形学原理与实现》,该书对图形学基本算法进行了C语言编程实现。为适应我国计算机图形学教学的最新要求,编者对上述教材进行了修订。与上一本教材的最大区别在于,本书以实现OpenGL状态机原型为主线,采用C语言对图形学基本算法进行了重新编程实现,以便更清晰地展示图形学知识点间的相互关联。本书既可以作为高等院校本科生教材,也可以作为相关行业工程技术人员的参考书。本书内容在安排上循序渐进,对理论的讲解通俗易懂,总体来讲有如下两个特点。(1) 深入浅出的理论介绍。为便于读者快速理解计算机图形学的基本理论,本书在内容安排上循序渐进,用深入浅出的算法推导、丰富的例题和图例对计算机图形学基本理论进行了全面的介绍。(2) 理论与工程实践相结合。本书对计算机图形学中的主要算法进行了编程实现,并模拟实现了OpenGL状态机的功能。这种理论与实践相结合的渐进式组织方式便于学生对课程内容形成系统理解。书中的主要算法均给出了完整的源程序代码及其运行界面。为兼顾不同读者对编程语言的掌握程度,本书采用C语言作为程序开发语言,并且基于Win32控制台应用程序的形式展示程序运行结果。具体而言,本书10章内容之间的关系如图所示。由于编者水平有限,本书难免存在不足之处,恳请专家和读者批评指正。编者2024年1月
第1章绪论11.1计算机图形学基本概念11.1.1计算机图形学的定义11.1.2图形和图像11.1.3计算机图形学、数字图像处理与模式识别21.2计算机图形学发展历史21.3计算机图形学的应用41.3.1用户接口41.3.2计算机辅助设计41.3.3数字娱乐51.3.4计算机辅助绘图51.3.5计算机辅助教学61.3.6科学计算可视化61.3.7计算机艺术7习题8第2章计算机图形系统92.1计算机图形系统概述92.1.1计算机图形系统的功能92.1.2计算机图形系统的结构102.2计算机图形硬件设备102.2.1图形输入设备102.2.2图形显示设备122.2.3图形绘制设备172.3计算机图形软件182.3.1计算机图形软件分类182.3.2用户接口设计192.3.3基本交互式绘图技术21习题22计算机图形学原理与实现目录第3章OpenGL编程环境介绍233.1Visual Studio集成开发环境简介233.2使用Visual Studio 2022创建新项目233.3OpenGL简介263.3.1OpenGL概述263.3.2OpenGL的主要功能273.3.3OpenGL状态机简介283.3.4OpenGL状态机原型简介283.3.5Windows编程简介33习题36第4章基本图形生成算法374.1扫描转换的定义374.2直线的扫描转换384.2.1DDA画线法384.2.2中点画线法414.2.3Bresenham画线法454.3圆的扫描转换484.3.1根据圆的方程画圆484.3.2中点画圆法494.3.3Bresenham画圆法534.4区域填充564.4.1扫描线多边形填充算法564.4.2边缘填充算法634.4.3种子填充算法654.4.4其他填充算法684.4.5区域填充的属性处理694.5属性处理694.5.1直线的线型处理694.5.2直线的线宽处理704.5.3曲线的线宽处理744.6字符774.6.1基本概念774.6.2点阵字符774.6.3矢量字符774.7反走样784.7.1提高分辨率794.7.2简单区域取样804.7.3加权区域取样81习题82第5章二维变换和二维观察835.1图形变换基本知识835.1.1矢量和矩阵835.1.2齐次坐标855.2基本二维变换865.2.1平移变换865.2.2旋转变换865.2.3缩放变换875.2.4基本二维变换的矩阵表示885.2.5其他变换955.3二维复合变换1005.3.1连续平移1005.3.2连续旋转1005.3.3连续缩放1015.3.4通用基准点的变换1015.3.5通用方向的变换1045.3.6二维变换总结1065.4二维观察1075.4.1二维观察流程1075.4.2用户坐标系到观察坐标系的变换1085.4.3窗口到视区的变换1095.4.4二维裁剪概述110习题127第6章三维变换和三维观察1296.1三维变换概述1296.2三维几何变换1306.2.1三维平移变换1306.2.2三维变比变换1376.2.3三维旋转变换1396.2.4三维反射变换1436.2.5三维错切变换1456.2.6三维复合变换1476.3三维投影变换1576.3.1三维投影变换的分类1576.3.2三视图1596.3.3正轴测1616.3.4斜平行投影1646.3.5透视投影1666.4三维观察1736.4.1观察坐标系1736.4.2观察空间1746.4.3三维观察流程175习题176第7章三维对象的表示1777.1三维对象表示方法概述1777.1.1三维图形的基本问题1777.1.2数据模型1777.1.3过程模型1787.2多边形表面1797.2.1多边形表面概述1797.2.2多边形表面表示法1797.3二次曲面1807.3.1球面1807.3.2椭球面1807.3.3环面1807.3.4超二次曲面1807.4样条曲线概述1817.4.1样条的基本概念1817.4.2样条曲线的分类1817.5Hermite样条曲线1847.6Bzier曲线和曲面1867.6.1Bzier曲线的定义1867.6.2Bernstein基函数的性质1867.6.3常见的Bzier曲线1877.6.4Bzier曲线的性质1887.6.5Bzier曲线的绘制1907.6.6Bzier曲面1947.7B样条曲线和曲面1957.7.1B样条曲线的定义1957.7.2常见的B样条曲线1967.7.3B样条曲线的性质1987.7.4B样条曲线的分类1997.7.5B样条曲面1997.8空间分区表示方法1997.8.1立体构造1997.8.2八叉树2007.8.3BSP树2027.9非规则对象表示方法2027.9.1分形几何方法2027.9.2粒子系统2037.9.3基于物理的建模2057.9.4数据可视化205习题205第8章消隐计算2078.1消隐概述2078.1.1消隐的定义2078.1.2消隐的分类2078.1.3消隐算法的原则2088.2Z缓冲区算法2098.3区域扫描线算法2118.4深度排序算法2138.5光线跟踪算法2158.6BSP算法215习题216第9章颜色模型2179.1光的特性2179.1.1电磁频谱2179.1.2颜色的心理学特征2189.2颜色模型的定义2189.3标准基色和色度图2199.4RGB颜色模型2219.5CMY颜色模型2229.6HSV颜色模型222习题223第10章真实感图形绘制22410.1简单光照模型22410.1.1环境反射光22510.1.2漫反射光22510.1.3镜面反射光22610.1.4光强衰减22810.1.5颜色处理22810.2明暗处理23010.2.1恒定光强的明暗处理23010.2.2Gouraud明暗处理23010.2.3Phong明暗处理23210.3阴影处理23310.3.1自身阴影生成23310.3.2投射阴影生成23310.4透明处理23410.4.1透明效果的简单模拟23410.4.2考虑折射的透明处理23510.5整体光照模型与光线跟踪23610.5.1整体光照模型概述23610.5.2Whitted光照模型23710.5.3光线跟踪算法23810.6纹理映射23910.6.1颜色纹理处理23910.6.2几何纹理处理241习题242参考文献243