登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書

『簡體書』计算机图形学(VC++实现)(第2版)

書城自編碼: 2975027
分類:簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 于万波、于硕
國際書號(ISBN): 9787302461241
出版社: 清华大学出版社
出版日期: 2017-05-01
版次: 2 印次: 1
頁數/字數: 316/477000
書度/開本: 128开 釘裝: 平装

售價:HK$ 56.6

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
历史的深度
《 历史的深度 》

售價:HK$ 66.7
中国漆艺技法全书:工艺原理与基础技法
《 中国漆艺技法全书:工艺原理与基础技法 》

售價:HK$ 181.7
晋朝的死结
《 晋朝的死结 》

售價:HK$ 101.2
文明的冲突:东西方文明的第一次交锋(第2版)
《 文明的冲突:东西方文明的第一次交锋(第2版) 》

售價:HK$ 82.8
神经形态光子学 Neuromorphic Photonics
《 神经形态光子学 Neuromorphic Photonics 》

售價:HK$ 194.4
困顿与超越 : 心理学家的逆境人生与智慧指引
《 困顿与超越 : 心理学家的逆境人生与智慧指引 》

售價:HK$ 67.9
Web3时代的AI战略:构建BASICs框架,引领企业数字化转型
《 Web3时代的AI战略:构建BASICs框架,引领企业数字化转型 》

售價:HK$ 90.9
一岁一喜欢
《 一岁一喜欢 》

售價:HK$ 49.2

 

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


第5章样 条 曲 面曲线与曲面是计算机图形学中重要的研究对象,是计算机绘图与动画技术的核心要素。在计算机中,可以用离散的点来描述曲线曲面,也可以用直线段或者小平面片拼接在一起表示曲线曲面。平面曲线可以用一个一维数组来描述,数组下标作为横坐标,数组元素的值作为纵坐标;空间曲线可以用三个一维数组来描述,每个数组分别为X、Y、Z值,这便是参数方程表示方法;曲面可以用三维数组表示,也可以用一些三角形或者四边形的顶点数组表示。5.1样 条 曲 线在第2章中介绍了二维贝塞尔曲线等,现在讨论三维空间的样条曲线,主要是贝塞尔曲线与B样条曲线。5.1.1三维空间贝塞尔曲线第2章中介绍的各种曲线都可以扩展到三维空间中来。例如,2.3节中的式(28)表示的曲线是平面贝塞尔曲线,如果增加一个表达式,如式(51)所示,那么就表示三维空间中的贝塞尔曲线。xt=ni=0xiBi,ntyt=ni=0yiBi,ntzt=ni=0ziBi,nt(51)式(51)中的n就是曲线的次数,当n=3时,式(51)就表示空间三次贝塞尔曲线。Bi,nt=Cinti1-tn-i是伯恩斯坦多项式,这与二维情形相同。式(212)是平面贝塞尔曲线的通用矩阵表示形式,在三维空间中,这个表示形式不变,只是Pt=xtytzt,P0=x0,y0,z0,,P3=x3,y3,z3。〖1〗计算机图形学(VC实现)(第2版)第5章样条曲面[3]〖3〗例如,当P\[3\]\[4\]={{1256},{1.57115},{2365.5}},即4个控制点依次是(1,1.5,2),(2,7,3),(5,11,6),(6,5,5.5)时,其三维空间中的贝塞尔曲线如图51所示。图51空间三次贝塞尔曲线空间贝塞尔曲线的两个端点即是两端的控制点,其他控制点用来控制曲线的形状,图51有4个控制点,生成的贝塞尔曲线是三次贝塞尔曲线。和空间三次贝塞尔曲线类似,让式(217)中的Pt=xt,yt,zt,就可以表示空间三次B样条曲线段。上面介绍的各种曲线本质上都是多项式曲线,只因为给定的初始条件不同,或者曲线对控制点的要求不同,所以产生了区别。各种曲线是可以互相转换的。5.1.2曲线的拼接两条曲线端点处的函数值决定是否能实现拼接,函数值相同才可以拼接到一起。如果端点处的切线斜率(一阶导数)也相同就可以实现平滑拼接,没有折起的棱角。有时根据具体问题,要求拼接时函数值相同、一阶导数相同、二阶导数也相同,如果是三维空间曲线拼接,还要求导数的方向也相同,这是一种更高要求的连接。2.4.2节中的Hermite曲线给出了端点坐标值以及端点处的切向量,所以该方法绘制的曲线容易实现平滑拼接。如果两段贝塞尔曲线要实现光滑拼接(一阶导数相同),那么需要满足一定的条件。下面例题研究的是两段三次贝塞尔曲线连接问题。【例51】给定4个控制点P1、P2、P3、P4,绘制出的三次贝塞尔曲线记为C1,再根据另外4个控制点P4、P5、P6、P7可以绘制出三次贝塞尔曲线C2。问这7个顶点满足什么条件时两条曲线在P4点光滑拼接(导数相等)?由贝塞尔曲线的性质: 贝塞尔曲线起点处切线与终点处切线分别是特征多边形的第一条边和最后一条边所在直线。所以,当P3、P4、P5在一条直线上时,两条空间三次贝塞尔曲线在P4点光滑拼接。关于B样条曲线段的连接比较自然,看5.1.3节内容。5.1.3三维空间B样条曲线B样条曲线也属于一种由基函数乘以系数构造的参数曲线,其基函数与贝塞尔曲线不同,所以具有不同的性质。【例52】给定4个控制点P1、P2、P3、P4绘制出的三次B样条曲线段记为C1;再给定一点P5,绘制出由P2、P3、P4、P5控制的三次B样条曲线段记为C2,观察曲线段C1 与C2的关系。三次B样条曲线的基函数如下所示。F0,3t=16-t3 3t2-3t 1F1,3t=163t3-6t2 4F2,3t=16-3t3 3t2 3t 1F3,3t=16t3三次B样条曲线段的参数方程如下所示:xt=F0,3tx0 F1,3tx1 F2,3tx2 F3,3tx3yt=F0,3ty0 F1,3ty1 F2,3ty2 F3,3ty3zt=F0,3tz0 F1,3tz1 F2,3tz2 F3,3tz3建立单文档项目,在视图文件中OnDraw函数的前面写入函数Draw3如下所示: void Draw3float k\[4\]\[3\],int color,CDC p{float x,y,z;floatf3t\[4\],kk\[4\]\[3\]={0};forint i=0;ikk\[i\]\[j\]=k\[i\]\[j\];forfloat t=0;t{f3t\[0\]=16.0-powt,3 3powt,2-3t 1; f3t\[1\]=16.03powt,3-6powt,2 4; f3t\[2\]=16.0-3powt,3 3powt,2 3t 1; f3t\[3\]=16.0powt,3; x=f3t\[0\]kk\[0\]\[0\] f3t\[1\]kk\[1\]\[0\] f3t\[2\]kk\[2\]\[0\] f3t\[3\]kk\[3\]\[0\];y=f3t\[0\]kk\[0\]\[1\] f3t\[1\]kk\[1\]\[1\] f3t\[2\]kk\[2\]\[1\] f3t\[3\]kk\[3\]\[1\];z=f3t\[0\]kk\[0\]\[2\] f3t\[1\]kk\[1\]\[2\] f3t\[2\]kk\[2\]\[2\] f3t\[3\]kk\[3\]\[2\];p-SetPixelintx 100,inty 100,color;}}在OnDraw函数中写入调用函数Draw3的代码,写入后OnDraw函数的代码如下所示(其中粗体是加入的语句): void CBbbView::OnDrawCDC pDC{CBbbDoc pDoc=GetDocument;ASSERT_VALIDpDoc;TODO: add draw code for native data hereFloat xyz1\[4\]\[3\]={{20,100,110},{70,120,10},{200,60,20},{250,20,160}};Draw3xyz1,0,pDC;Float xyz2\[4\]\[3\]={{70,120,10},{200,60,20},{250,20,160},{150,16,178}};Draw3xyz2,0,pDC;}编译运行,绘制出如图52(a)所示的投影图形。图52三次B样条曲线在三个坐标轴上的投影(0SetPixelintx 100,inty 100,color;修改为 p-SetPixelintx 100,intz 100,color;绘制出如图52(b)所示的投影图形。把这个语句再修改为 p-SetPixelinty 100,intz 100,color;绘制出如图52(c)所示的投影图形。该程序绘制的曲线是三维空间中的曲线,在三个坐标平面上的投影都是样条曲线。本来是绘制两段曲线,但是这两段曲线(无缝地)拼接在一起了。为了更好地观察拼接情况,把语句 forfloat t=0;tfordouble v=0;v{x\[m\]\[n\]\[0\]=1-u1-vcv\[0\]\[0\] u1-vcv\[1\]\[0\] 1-uvcv\[2\]\[0\] uvcv\[3\]\[0\];x\[m\]\[n\]\[1\]=1-u1-vcv\[0\]\[1\] u1-vcv\[1\]\[1\] 1-uvcv\[2\]\[1\] uvcv\[3\]\[1\];x\[m\]\[n\]\[2\]=1-u1-vcv\[0\]\[2\] u1-vcv\[1\]\[2\] 1-uvcv\[2\]\[2\] uvcv\[3\]\[2\];n;}}绘制出的图形如图54(a)所示。图54双一次贝塞尔曲面如果把控制点赋值语句修改为下面所示,每次运行,或者调整运行后文档窗口,都可以重新绘制出新的曲面,图54(b)、(c)就是随机生成的两个曲面。 double cv\[4\]\[3\];forint i=0;iSelectObject&b;forint r=0;rxx\[r\]=cv\[r\]\[0\]-p\[0\]p\[2\]cv\[r\]\[2\] 100;yy\[r\]=cv\[r\]\[1\]-p\[1\]p\[2\]cv\[r\]\[2\] 100;pDC-Ellipsexx\[r\],yy\[r\],xx\[r\] 10,yy\[r\] 10;}运行程序,除绘制出双一次贝塞尔曲面外,还绘制出4个控制点。为了显示清楚,用小椭圆代替了点。5.2.3双二次贝塞尔曲面在式(54)中,当n=m=2时,得到的曲面称为双二次贝塞尔曲面。当n=m=2时,给定n 1m 1=9个点Pij=xij,yij,zij,其中i=0,1,2;j=0,1,2。代入式(57)得: Pu,v=2i=02j=0PijBi,2uBj,2v0u1,0v1(57)其中,基函数为B0,2u=u2-2u 1,B1,2u=-2u2 2u,B2,2u=u2B0,2v=v2-2v 1,B1,2v=-2v2 2v,B2,2v=v2把式(57)所示双二次贝塞尔曲面的参数方程整理成矩阵表示形式为Pu,v=[u2u1]1-21-220100P00P01P02P10P11P12P20P21P221-21-220100v2v1(58)其中,顶点矩阵实际上是3个矩阵,即9个控制点的X,Y,Z阵。即矩阵P00P01P02P10P11P12P20P21P22相当于下面3个矩阵x00x01x02x10x11x12x20x21x22,y00y01y02y10y11y12y20y21y22,z00z01z02z10z11z12z20z21z22(59)对于每一个固定的(u,v),对于式(59)中的每一个矩阵(给定数值后),代入式(58),都可以得到一个数值;3个矩阵得到3个数值,便是一个空间点的坐标(x,y,z)。式(59)中的数值就是贝塞尔曲面的控制点的坐标。图55是借助于MATLAB软件绘制的双二次贝塞尔曲面。图559个控制点的双二次贝塞尔曲面及其控制网格其9个控制点的坐标的X、Y、Z值如下所示: X=\[0 0.50001.000000.50001.000000.50001.0000\]Y=\[0000.50000.50000.50001.00001.00001.0000\]Z=\[0.54680.59780.90530.75960.81440.10880.09630.05800.7884\]其中,有4个控制点在曲面(的4个角)上。5.2.4双三次贝塞尔曲面的16个控制点当n=m=3时,式(54)表示的曲面称为双三次贝塞尔曲面。当n=m=3时,给定n 1m 1=16个点Pij=xij,yij,zij,其中i=0,1,2,3;j=0,1,2,3。代入式(510),得: Pu,v=3i=03j=0PijBi,3uBj,3v0u1, 0v1(510)其中,基函数为B0,3u=u3 3u2-3u 1B1,3u=3u3 6u2 3uB2,3u=-3u3 3u2B3,3u=u3B0,3v=v3 3v2-3v 1B1,3v=3v3 6v2 3vB2,3v=-3v3 3v2B3,3v=v3把式(510)整理成矩阵形式为Pu,v=[u3u2u1]-13-313-630-31000000P00P01P02P03P10P11P12P13P20P21P22P23P30P31P32P33-13-313-630-31000000v3v2v1通常在实际工作中,一般使用三次以下的贝塞尔曲面进行物体建模与图形设计。三次贝塞尔曲面已经具有足够的形状变化。图56就是一个16个控制点控制的三次贝塞尔曲面,同时(为了清晰)只绘制出了y轴方向的网格线。图5616个控制点的双三次贝塞尔曲面及其y轴方向上的控制网格网格(控制)点的坐标点X、Y、Z分量如下所示: X=00.33330.66671.000000.33330.66671.000000.33330.66671.000000.33330.66671.0000Y=00000.33330.33330.33330.33330.66670.66670.66670.66671.00001.00001.00001.0000Z=0.77530.95600.73680.69210.10620.90740.56210.31270.44220.13610.69200.53650.99690.95940.49990.6120这个曲面也是在MATLAB中编写程序、使用方程绘制的。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.