目录
第1章VC 绘图程序设计/1
1.1使用CDC类函数绘制图形1
1.1.1使用单文档程序绘图1
1.1.2绘制具有真实感的三维图形7
1.1.3交互绘图程序设计10
1.1.4绘制矩形15
1.1.5在指定位置输出文本16
1.2画笔与画刷19
1.2.1画笔类及其函数19
1.2.2画刷类20
1.3位图图像操作21
1.3.1提取位图上一点的颜色值21
1.3.2获取图像区域的颜色值23<p>目录</p> <p>第1章VC 绘图程序设计/1</p> <p>1.1使用CDC类函数绘制图形1</p> <p>1.1.1使用单文档程序绘图1</p> <p>1.1.2绘制具有真实感的三维图形7</p> <p>1.1.3交互绘图程序设计10</p> <p>1.1.4绘制矩形15</p> <p>1.1.5在指定位置输出文本16</p> <p>1.2画笔与画刷19</p> <p>1.2.1画笔类及其函数19</p> <p>1.2.2画刷类20</p> <p>1.3位图图像操作21</p> <p>1.3.1提取位图上一点的颜色值21</p> <p>1.3.2获取图像区域的颜色值23</p> <p>1.4绘图与动画程序实例24</p> <p>1.4.1小圆的弹性运动24</p> <p>1.4.2抛物运动27</p> <p>1.4.3小圆沿着螺旋线上升29</p> <p>1.4.4逐帧动画制作31</p> <p>1.4.5使用Timer事件函数绘制图形32</p> <p>1.4.6移动鼠标进行书写35</p> <p>1.5Win32应用程序中绘图与动画制作36</p> <p>1.5.1用多种填充形式制作动画36</p> <p>1.5.2使用颜色渐变制作动画37</p> <p>习题138</p> <p>第2章二维图形绘制与填充/43</p> <p>2.1直线段绘制算法43</p> <p>2.1.1使用直线方程计算函数值43</p> <p>2.1.2DDA微分绘制方法44</p> <p>2.1.3Bresenham算法45〖1〗计算机图形学(VC 实现)(第2版)目录[3]〖3〗2.2二次曲线绘制47</p> <p>2.2.1使用方程绘制二次曲线48</p> <p>2.2.2一般平面曲线的绘制50</p> <p>2.2.3圆的绘制算法研究52</p> <p>2.2.4抛物线的平移与旋转55</p> <p>2.2.5二次贝塞尔曲线绘制算法56</p> <p>2.3拟合曲线59</p> <p>2.3.1*小二乘法拟合59</p> <p>2.3.2贝塞尔曲线61</p> <p>2.3.3B样条曲线65</p> <p>2.4插值曲线66</p> <p>2.4.1简单的逐段多项式插值方法67</p> <p>2.4.2Hermite曲线67</p> <p>2.4.3样条曲线68</p> <p>2.5基于代数方程的基本规则图形填充70</p> <p>2.5.1矩形与三角形填充70</p> <p>2.5.2椭圆填充72</p> <p>2.5.3抛物线围成的封闭区域填充73</p> <p>2.6多边形填充73</p> <p>2.6.1多边形填充的复杂性分析74</p> <p>2.6.2扫描线填充75</p> <p>2.6.3种子填充80</p> <p>2.7二维分形图绘制82</p> <p>2.7.1绘制树82</p> <p>2.7.2绘制分形山84</p> <p>习题285</p> <p>第3章三维数据的二维投影/89</p> <p>3.1三维数据投影89</p> <p>3.1.1三维数据与二维显示89</p> <p>3.1.2绘制空间直角坐标系90</p> <p>3.2三维螺旋线的平行投影91</p> <p>3.2.1参数方程及三维空间点的二维绘制91</p> <p>3.2.2不同角度的三维螺旋线投影93</p> <p>3.3三维数据的透视投影95</p> <p>3.3.1平行投影与透视投影95</p> <p>3.3.2观察坐标系下的一点透视投影96</p> <p>3.4裁剪98</p> <p>3.4.1二维图形裁剪98</p> <p>3.4.2三维图形裁剪98</p> <p>3.5视点变化下的多面体绘制99</p> <p>3.5.1线框正方体投影绘制99</p> <p>3.5.2视点变化下的线框正方体绘制101</p> <p>3.6隐藏面检测101</p> <p>3.6.1隐藏线面101</p> <p>3.6.2一��正方体的六个面102</p> <p>3.6.3背面检测方法103</p> <p>3.6.4多面体的隐藏面计算104</p> <p>3.6.5其他检测方法104</p> <p>习题3106</p> <p>第4章OpenGL/108</p> <p>4.1VC 中运行OpenGL程序108</p> <p>4.1.1在VC 中加入glut108</p> <p>4.1.2绘制点与线109</p> <p>4.1.3绘制三角形与四边形110</p> <p>4.2OpenGL函数解析(一)114</p> <p>4.2.1颜色设置函数glClearColor与glColor114</p> <p>4.2.2绘制函数glBegin与glEnd115</p> <p>4.2.3窗口初始化函数glutInitWindowSize等116</p> <p>4.2.4OpenGL核心函数116</p> <p>4.3OpenGL函数解析(二)117</p> <p>4.3.1调用函数绘制形体117</p> <p>4.3.2裁剪函数glOrtho119</p> <p>4.3.3glutSolidSphere等119</p> <p>4.3.4光照函数glLight120</p> <p>4.3.5OpenGL实用函数120</p> <p>4.4一个运动的正方体121</p> <p>4.4.1三维正方体绘制与函数gluLookAt121</p> <p>4.4.2OpenGL旋转函数glRotate123</p> <p>4.4.3使用鼠标控制旋转轴125</p> <p>4.5具有颜色插值效果的多面体126</p> <p>4.5.1多面体绘制126</p> <p>4.5.2修改参数128</p> <p>4.6OpenGL函数解析(三)129</p> <p>4.6.1平移函数glTranslate与缩放函数glScale129</p> <p>4.6.2面法向设置函数glNormal3fv129</p> <p>4.6.3双缓存函数glutSwapBuffers129</p> <p>4.6.4透视投影函数glFrustum130</p> <p>4.6.5工具函数glut131</p> <p>4.7OpenGL交互操作函数132</p> <p>4.7.1鼠标操作132</p> <p>4.7.2键盘操作133</p> <p>4.7.3菜单制作134</p> <p>4.8绘制实例135</p> <p>4.8.1绘制五角星135</p> <p>4.8.2运动的彩色正方体137</p> <p>习题4140</p> <p>第5章样条曲面/147</p> <p>5.1样条曲线147</p> <p>5.1.1三维空间贝塞尔曲线147</p> <p>5.1.2曲线的拼接148</p> <p>5.1.3三维空间B样条曲线148</p> <p>5.1.4三维空间分段插值曲线151</p> <p>5.2贝塞尔曲面151</p> <p>5.2.1贝塞尔曲面的定义152</p> <p>5.2.2双一次贝塞尔曲面152</p> <p>5.2.3双二次贝塞尔曲面154</p> <p>5.2.4双三次贝塞尔曲面的16个控制点155</p> <p>5.2.5曲面特性157</p> <p>5.3B样条曲面绘制157</p> <p>5.3.1B样条曲面定义157</p> <p>5.3.2双二次B样条曲面158</p> <p>5.4OpenGL曲线曲面绘制160</p> <p>5.4.1曲线绘制160</p> <p>5.4.2曲面绘制162</p> <p>5.4.3绘制光滑曲面165</p> <p>5.5OpenGL函数解析(四)167</p> <p>5.5.1计算二维网格函数glEvalMesh167</p> <p>5.5.2二维求值函数glMap2f168</p> <p>习题5169</p> <p>第6章几何造型与光照模型/174</p> <p>6.1几何造型基本单元的组织174</p> <p>6.1.1线框模型175</p> <p>6.1.2表面模型175</p> <p>6.1.3实体模型176</p> <p>6.2实体模型构造方法177</p> <p>6.2.1边界表示法177</p> <p>6.2.2分解表示法178</p> <p>6.2.3扫描造型法179</p> <p>6.3场景构造与模型的重用180</p> <p>6.3.1场景构造180</p> <p>6.3.2模型重用181</p> <p>6.3.3布尔运算181</p> <p>6.4三维数据模型: 地形图182</p> <p>6.4.1绘制地形图程序182</p> <p>6.4.2程序结构185</p> <p>6.4.3读取数据文件186</p> <p>6.4.4网格地形绘制186</p> <p>6.4.5加入灯光效果188</p> <p>6.5OpenGL中的光照效果189</p> <p>6.5.1按右键移动光源189</p> <p>6.5.2安装多个光源192</p> <p>6.5.3多个光源下的多个球体194</p> <p>6.6OpenGL光照函数195</p> <p>6.6.1关于glLight195</p> <p>6.6.2多面体的光照效果196</p> <p>6.7简单光照模型198</p> <p>6.7.1镜面反射与视点位置198</p> <p>6.7.2漫反射与环境光200</p> <p>6.7.3Phong光照模型201</p> <p>6.8明暗插值与阴影生成202</p> <p>6.8.1明暗插值方法202</p> <p>6.8.2阴影生成203</p> <p>6.8.3透明性203</p> <p>6.8.4整体光照模型204</p> <p>习题6204</p> <p>第7章纹理映射: 飘动的图像与旋转的地球/208</p> <p>7.1使用Win32应用程序运行OpenGL程序208</p> <p>7.1.1关于Win32应用程序208</p> <p>7.1.2一个飘动的图像210</p> <p>7.1.3修改程序制作更多的飘动效果220</p> <p>7.2构建OpenGL程序运行框架223</p> <p>7.2.1函数CreateGLWindow223</p> <p>7.2.2函数KillGLWindow223</p> <p>7.2.3函数LRESULT CALLBACK WndProc224</p> <p>7.2.4函数int WINAPI WinMain224</p> <p>7.2.5OpenGL的glaux辅助函数225</p> <p>7.3网格制作与图像映射226</p> <p>7.3.1顶点生成226</p> <p>7.3.2网格制作226</p> <p>7.3.3运动的网格227</p> <p>7.3.4图像定义为纹理228</p> <p>7.3.5图像映射到网格228</p> <p>7.4OpenGL函数解析(五)229</p> <p>7.4.1OpenGL纹理映射229</p> <p>7.4.2OpenGL纹理定义函数glTexImage229</p> <p>7.4.3OpenGL纹理控制函数glTexParameter230</p> <p>7.4.4纹理与多边形颜色的融合230</p> <p>7.4.5OpenGL纹理坐标生成函数glTexCoord231</p> <p>7.4.6OpenGL纹理映射函数应用实例232</p> <p>7.5旋转的地球235</p> <p>7.5.1程序实现235</p> <p>7.5.2去掉图像的白边238</p> <p>7.5.3球的上下左右移动238</p> <p>习题7239</p> <p>第8章不规则图形: 粒子系统与迭代吸引子/241</p> <p>8.1使用粒子系统制作爆炸效果241</p> <p>8.1.1粒子系统241</p> <p>8.1.2爆炸效果的程序实现241</p> <p>8.1.3程序解析246</p> <p>8.1.4修改程序实现更多效果248</p> <p>8.1.5使用VC 制作爆炸效果250</p> <p>8.1.6使用3ds Max制作下雪动画252</p> <p>8.2基于图像的图形绘制254</p> <p>8.2.1图像动画制作254</p> <p>8.2.2基于图像的三维图形建模255</p> <p>8.3OpenGL图像操作256</p> <p>8.3.1二值图形绘制256</p> <p>8.3.2读写像素258</p> <p>8.3.3像素复制261</p> <p>8.4OpenGL函数解析(六)263</p> <p>8.4.1OpenGL函数glDrawBuffer与glReadBuffer263</p> <p>8.4.2OpenGL函数glutBitmapCharacter264</p> <p>8.4.3OpenGL图像操作函数266</p> <p>8.5迭代吸引子图形绘制266</p> <p>8.5.1正弦函数与二元二次随机多项式函数迭代267</p> <p>8.5.2调整正弦函数观察迭代结果268</p> <p>8.5.3离散余弦变换基函数作为辅助函数269</p> <p>习题8271</p> <p>第9章飞机动画制作与改进/275</p> <p>9.1使用单文档运行OpenGL程序275</p> <p>9.1.1单文档OpenGL程序275</p> <p>9.1.2星空闪烁动画279</p> <p>9.1.3将项目框架加入到VC 选项中281</p> <p>9.2飞机模型282</p> <p>9.2.1运行飞机动画游戏程序282</p> <p>9.2.2飞机数据模型分析284</p> <p>9.2.3OpenGL材质函数glMaterialfv291</p> <p>9.3动画制作294</p> <p>9.3.1飞机的飞行294</p> <p>9.3.2发射子弹295</p> <p>9.3.3键盘的使用296</p> <p>9.3.4关于动画297</p> <p>习题9298</p> <p>附录A期末试题/299</p> <p>参考文献/317</p>显示全部信息前 言前言前言<br />本书第1版出版5年来,收到一些教师与读者的指正与建议,作者也在几年的使用过程中进行了总结、分析与思考。除了个别的错误外,本书主要修改了关于OpenGL的部分,增加了OpenGL的篇幅,将OpenGL与图形学原理的讲解结合到一起;加入了一些OpenGL函数解析,同时也梳理了原教材的内容。计算机图形学的研究内容庞杂而繁多,凡是与计算机绘图相关的内容都是图形学研究的对象,讲解哪些内容,实难取舍。第2版的主导思想没有变,即讲述图形学基本原理,包括直线绘制算法、区域填充算法、三维数据的二维投影、隐藏面检测方法、光照模型等;讲解语言(VC )、结构以及算法在图形学中的应用;讲解OpenGL是如何进行图形绘制以及动画制作的,让OpenGL的使用与对算法的理解相互促进。各种计算机课程,应该有机联系在一起。语言软件的学习与使用既是其他课程的基础,也是一个阶段性的目的,所以在本书中,坚持强化语言的使用。因为各校的学时不同,所以应选择相应的内容进行讲解。第1章是一些基本的(基于VC 的)绘图知识,不过,第1章并不是后面章节的基础,建议讲解6学时左右;第2章中有一些图形学二维算法,例如直线与圆的绘制、区域填充等,讲解和上机练习4~6学时;第3章讲解投影、消隐等算法,图形学基本的、重要的算法集中安排在第2、3章里,以理解为目的,可讲解8~10学时;第4章讲解<span> </span>OpenGL基本内容,建议讲解和上机练习6学时左右;第5章样条曲面与第6章几何造型、光照模型也是经典的图形学内容,可以讲解6~10学时;第7~9章是动画制作实例,如果想提高学生这方面的能力,可以**讲解,讲解和上机练习18学时左右。在目前出版物中,图形学习题不多,所以在附录中将本校近几年的图形学期末试题附上,供教师和同学们参考借鉴。于万波参加了全书的设计,编写了第1~3章,并*后整理成稿,于硕参加编写了该书的第4、5、6、9章,周东升参加编写了第7、8章。书中个别例题、习题参考了胡欢、陈述杏、黄一彬、刘博、张艳平、杨心语、叶世利、陈妍颖等同学的作业,在此表示感谢。〖1〗计算机图形学(VC 实现)(第2版)前言[3]〖3〗*后感谢龙启铭编辑的信任、支持与指导。期待着大家喜欢本书,也期待着得到大家的批评与建议。作者邮箱: yu_wb@sohu.com或者yu_wb@126.com。<br />作者2017年1月显示全部信息媒体评论评论免费在线读