计算机图形学:应用Java 2D和3D
作者 : Hong Zhang;Y. Daniel Liang
译者 : 孙正兴 张 岩 蒋 维
出版日期 : 2008-04-08
ISBN : 7-111-23360-2
定价 : 55.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 418
开本 : 16开
原书名 :
原出版社: Prentice Hall
属性分类: 教材
包含CD :
绝版 :
图书简介

畅销教材金牌作者Y.Daniel Liang力作
  本书提供了一个完整而权威的计算机图形学介绍,它并不需要低层次的编程或高深的数学背景。作者权衡了在软件和硬件方面的最新进展,结合高层次的Java 2D和Java 3D API的应用和发展来讲授基本概念。
  本书首先介绍计算机图形系统各部分是如何结合到一起的,而后,循序渐进地介绍各种二维和三维概念和技术,从简单的二维坐标空间到高级的三维纹理及光照和阴影等。通过Java代码范例和样本图像对关键概念进行了解释,目的是使专业人士和学生都可以极其方便地理解计算机图形建模和特殊绘制技术。

  覆盖范围:
  Java,Java 2D和Java 3D如何简化计算机图形学开发
  二维基础:绘制管道,对象、世界和设备空间,坐标系,图形基元、合成规则等
  高级二维图形:B样条曲线、自定义图形基元、分形等
  三维基础:体系结构、场景图和场景图成分
  可视形状对象和三维图形模型中的构建单元
  几何变换、仿射变换和透视投影的运用
  观察:将三维虚拟世界场景映射为二维图像
  交互和动画:将动态变化插入到三维场景中
  三维曲线和曲面:超越Java 3D的内置能力

图书特色

图书前言

2001年3月3日,千禧之年的首个奥斯卡奖项授予了罗伯·库克(Rob Cook)、洛伦·卡彭特(Loren Carpenter)和埃德·卡特穆尔(Ed Catmull)等三位计算机科学家,以表彰“他们在动景绘制领域所取得的像Pixar的RenderMan绘制器那样重大进展。”这个令人难以置信的事件象征着一度只是作为深奥的研究性课题的计算机图形学与应用,开始走入数字社区,成为时尚生活的基本元素。计算机硬件、图形应用与网络技术的快速发展,使计算机图形学在主流计算技术中变得不可或缺。
  用数字计算机建模与绘制虚拟形体是计算机图形学的主要目标。这个处理过程涉及从数学与计算机科学到心理学与美学等范围广泛的学科门类。针对计算机图形学中从宇宙天体的大模型到基本图元像素化的小细节的建模与渲染问题,已经开发了大量深奥而尖端的方法、算法与范例。要自如地应对该学科的整个内容,就得全面深入地覆盖许多相关领域的知识。正是因为自身的复杂性与深奥的数学知识,使得传统的计算机图形学课程被排除在计算机科学的标准本科课程计划之外。
  不过,我们相信,新技术的发展以及设计良好且便捷易用的图形编程包的推出,将使开设基本图形学课程变得切实可行。这样的发展形式与编程语言的进化情形存在相似之处。在仅有机器指令之类的低级语言可用的时代,编程一度是非常单调乏味的工作。高级语言的发展将程序员从低级的技术细节中解放出来。较抽象级的程序处理更容易且更符合逻辑。随着硬件与编译器技术的进步,因为抽象所引起的性能损失显得微不足道。今天,大部分程序员再不需要用机器语言或汇编语言编程。计算机图形学编程所走过的道路与此类似。在计算机图形学的许多方面,可移植的高级系统正在迅速取代单调乏味的低级编程方法。同时,迅速发展的硬件技术也在弥补两者在性能上表现出的差距。
  本书关注的主要焦点集中在计算机图形学的基本概念与Java 2D和Java 3D图形编程应用上。我们不讨论低级实现的技术细节,而是强调使用现有图形包开发实用程序的技能。这样做,使我们得以给出一本介绍性的图形学教科书,适合计算机科学与工程本科生和大多数计算机从业人员使用。
  Java 2D和Java 3D就是基于这种考虑而推出的理想的图形包。作为高级综合图形包,它们给出了合乎需求的抽象层次,并且与平台无关,所提供的编程能力也是最新的。
  Java 2D和Java 3D是Java平台的组成部分。Java虽然是一门相当新的程序设计语言,但是,因为具有诸如平台无关、简单及支持面向对象程序设计之类的独有特征,使得它迅速流行起来。Java 2D和Java 3D提供强大、自然及面向对象的图形建模和渲染接口。
  本书的读者对象是想学习计算机图形学基本概念与技能,并且开始使用Java 2D和Java 3D编程的学生和计算机从业人员。不过,它不是关于Java 2D或Java 3D的另外一本指南,而是旨在向读者介绍计算机图形学基础知识。功能强大的Java包正是实现该目标的便捷工具。
  使用本书时,需要具备基本的Java编程知识,包括GUI编程(AWT与Swing)。附录B演示了用AWT与Swing组件编程的不同之处。学过几何与线性代数等基本数学课程对于使用本书很有帮助,但不是必需的。附录A简单回顾了一些相关的数学概念。
  配套网站
  网址为www.cs.armstrong.edu/liang/graphics的配套网站包含如下资源:
  ·复习题答案
  ·编号为偶数的编程习题的解答
  ·书中例子的源代码
  ·资源链接
  ·勘误表
  教师资源网站
  可从www.prenhall.com/liang/graphics或者www.cs.armstrong.edu/liang/graphics访问教师资源网站,其中包含下列资源:
  ·PowerPoint幻灯片,带有交互按钮,用以查看突显语法的全彩源代码,并且不离开幻灯片就可以运行程序。
  ·样本考题。
  ·所有习题的解答。学生可以在本书配套网站中获得编号为偶数的习题的解答。
  有些读者要求索取教师资源网站的资料。请注意,这些资料仅为教师提供,索取资料的要求将不再予以回复。
  致谢
  阿姆斯特朗亚特兰大州立大学计算机科学系是良好的工作场所。感谢Ray Greenlaw及我们的同事对本书的支持。
  感谢匿名评论人和学生们给予的批评、评述和建议,这极大地提升了本书的质量。
  能与富有传奇色彩的Prentice Hall出版公司计算机科学团队共事是一件特别令人愉悦与荣耀的事情。感谢Marcia Horton, Tracy Dunkelburger, Robin O誃rien, Christianna Lee, Jennifer Cappello, Barrie Reinhold, Mack Patterson, Vince O誃rien, Camille Trentacoste, Donna Crilly, Xiaohong Zhu及其同事们对书籍出版事宜的组织、管理与促进,对Robert Lentz的编辑校对工作一并致谢。


  Hong Zhang(hong@armstrong.edu)
  Y. Daniel Liang(liang@armstrong.edu)
  www.cs.armstrong.edu/liang/graphics

封底文字

畅销教材金牌作者Y.Daniel Liang力作 本书提供了一个完整而权威的计算机图形学介绍,它并不需要低层次的编程或高深的数学背景。作者权衡了在软件和硬件方面的最新进展,结合高层次的Java 2D和Java 3D API的应用和发展来讲授基本概念。 本书首先介绍计算机图形系统各部分是如何结合到一起的,而后,循序渐进地介绍各种二维和三维概念和技术,从简单的二维坐标空间到高级的三维纹理及光照和阴影等。通过Java代码范例和样本图像对关键概念进行了解释,目的是使专业人士和学生都可以极其方便地理解计算机图形建模和特殊绘制技术。 覆盖范围: Java,Java 2D和Java 3D如何简化计算机图形学开发 二维基础:绘制管道,对象、世界和设备空间,坐标系,图形基元、合成规则等 高级二维图形:B样条曲线、自定义图形基元、分形等 三维基础:体系结构、场景图和场景图成分 可视形状对象和三维图形模型中的构建单元 几何变换、仿射变换和透视投影的运用 观察:将三维虚拟世界场景映射为二维图像 交互和动画:将动态变化插入到三维场景中 三维曲线和曲面:超越Java 3D的内置能力

作者简介

Hong Zhang;Y. Daniel Liang:Hong Zhang: 阿姆斯特朗亚特兰大州立大学计算机科学系副教授。他的研究方向包括生物信息学、医用计算机运算、计算机图形学和图像处理。他从匹兹堡大学获得博士学位。
Y. Daniel Liang:  Y. Daniel Liang 普度大学终身教授,阿姆斯特朗亚特兰大州立大学计算机科学系教授。他所编写的Java教程在美国大学Java课程中采用率最高,同时他还兼任Prentice Hall Java系列丛书编辑。

译者简介

孙正兴 张 岩 蒋 维:暂无简介

译者序

计算机图形学是计算机技术的重要组成部分,一直是学术界和工业界共同关注的热点学科,它不仅丰富了计算技术的内容和形式,更架起了计算技术与各学科领域应用间的桥梁,极大地拓展了计算技术的应用范围,还催生了诸如计算机辅助设计和制造、可视化、地理信息系统、计算机动画、虚拟现实、数字娱乐、人工生命等大量新兴的技术领域。如果说操作简便的图形用户界面和千姿百态的世象万物造型是前期计算机图形学研究和应用成果的典型表现,那么,《指环王》、《哈利波特》和《变形金刚》等影片和《最终幻想》、《魔兽世界》和《古墓丽影》等游戏中栩栩如生的造型、惊心动魄的场景、令人震撼的效果、身临其境的感觉和高度沉浸其中的体验则是当今计算机图形学之魅力的综合体现。在普适计算时代,计算机图形学更将具有不可替代的重要作用。
  计算机图形学涉及从数学与计算机科学到心理学与美学等多学科领域,知识体系庞大,学科分支繁多,应用范围广泛,这给大多数学习者带来了困难。同时,计算机图形学具有很强的实践性,需要学习者运用编程技能去实现其中的算法和技术,才能真正领悟计算机图形学的基本原理,从理论、技术和应用等不同层次上理解计算机图形学方法,进而品味计算机图形学所带来的乐趣。
  本书将计算机图形学的基本原理和编程实践有机地结合起来,一方面,清晰地理清计算机图形学的知识脉络,以循序渐进的方式扼要地介绍2D和3D计算机图形学的基本概念和基本原理,涵盖3D计算机图形学相关的高级技术及其最新发展;另一方面,通过精心挑选的Java 2D和Java 3D图形编程实例对计算机图形学中的知识点作了详细解释,可以帮助读者更好地学习、理解和掌握计算机图形学和Java 2D和Java 3D编程应用。
  本书的翻译由南京大学计算机科学与技术系孙正兴(http://cs.nju.edu.cn/szx/)领导项目组全体研究人员承担。张岩负责第1章和第2章初译,蒋维负责第6章和附录B初译,远博负责第5章和第12章初译,徐文晖负责第3章初译、张尧烨负责第4章初译,周志刚负责第11章初译,姚伟负责第8章初译,李毅负责第10章初译,刘凯负责第9章初译,王斌负责第7章和附录A初译,宋沫飞参加了部分章节的校对;孙正兴、张岩、蒋维和远博对全书进行了校正,孙正兴对全书进行了统稿和审核。解放军理工大学谭明金老师对本书的翻译工作提供了极大的支持和帮助,在此表示衷心感谢!


  译  者
  2007年12月

图书目录

出版者的话
专家指导委员会
译者序
前言
第1章  计算机图形学综述 1
1.1  引言 1
1.2  计算机图形学编程技术的发展 2
1.2.1  硬件层 3
1.2.2  操作系统层的支持 7
1.2.3  GKS 和PHIGS 9
1.2.4  OpenGL 11
1.2.5  Java 13
1.3  Java编程语言 14
1.4  Java 2D 18
1.5  Java 3D 20
1.6  相关领域 23
1.7  参考资料 23
第2章  2D图形学:基础 27
2.1  引言 27
2.2  2D图形绘制过程 27
2.3  2D几何模型与坐标系 28
2.4  Graphics2D 类 29
2.5  绘图方程 33
2.6  几何模型 35
2.6.1  形状 35
2.6.2  实例 37
2.7  构造区域几何模型 43
2.8  一般路径 45
第3章  2D图形学:绘制细节 51
3.1  引言 51
3.2  颜色和涂色 52
3.2.1  颜色空间 52
3.2.2  颜色 52
3.2.3  涂色 56
3.3  笔划 58
3.4  仿射变换 61
3.5  复合变换 68
3.6  透明度和合成规则 71
3.7  裁剪 74
3.8  文本和字体 76
第4章  2D图形:高级话题(可选) 85
4.1  引言 85
4.2  样条曲线 85
4.3  自定义基元 91
4.4  图像处理 94
4.5  创建分形图像 101
4.6  动画 104
4.7  打印 112
第5章  基本3D图形 118
5.1  引言 118
5.2  3D绘制过程 118
5.3  Java 3D API概述 120
5.3.1  一个简单示例 120
5.3.2  安装Java 3D 122
5.4  Java 3D场景图 123
5.5  超结构 125
5.6  节点 126
5.6.1  组节点 126
5.6.2  叶节点 128
5.7  节点组件 129
5.8  Java 3D程序的结构 130
5.9  背景和边界 134
5.10  场景图编译和能力位 140
第6章  图形内容 148
6.1  引言 148
6.2  点和向量 148
6.3  几何特征 150
6.3.1  类GeometryArray 151
6.3.2  类GeometryStripArray 154
6.3.3  类IndexedGeometryArray 155
6.3.4  法向量 159
6.4  类GeometryInfo 161
6.4.1  使用GeometryInfo类 161
6.4.2  创建多边形网格 165
6.5  几何基元 169
6.6  字体和文本 172
6.7  外观和属性 172
第7章  几何变换 183
7.1  引言 183
7.2  3D仿射变换 183
7.2.1  变换矩阵 184
7.2.2  类Transform3D 188
7.2.3  旋转 190
7.3  场景图的变换 198
7.4  复合变换 201
7.5  用变换构造几何体 206
7.5.1  拉伸 206
7.5.2  旋转 208
7.5.3  变换和共享分支的实例 211
第8章  视图 218
8.1  引言 218
8.2  投影 219
8.3  视图的定义 220
8.4  Java 3D的视图模型 222
8.4.1  Java 3D视图配置 223
8.4.2  兼容模式 223
8.4.3  SimpleUniverse中的视图设置 227
8.4.4  建立自己的视图 230
8.5  拾取 234
8.6  头部跟踪 239
第9章  光照与纹理 248
9.1  引言 248
9.2  光源 249
9.3  光照模型 254
9.4  Java 3D 光照模型 255
9.5  大气衰减和景深效果处理 259
9.6  纹理映射 263
9.6.1  创建2D纹理映射 263
9.6.2  纹理坐标 267
9.6.3  结合纹理映射与光照 268
9.6.4  纹理坐标生成 271
第10章  行为和交互 279
10.1  引言 279
10.2  行为 279
10.3  交互 286
10.3.1  鼠标行为 287
10.3.2  键盘行为 291
10.3.3  视图平台行为 293
10.4  行为和拾取 297
10.4.1  拾取和鼠标行为 297
10.4.2  数据可视化 300
第11章  动画 307
11.1  引言 307
11.2  Alpha对象 307
11.3  插值器 311
11.4  变形 322
11.5  细节层次 327
11.6  公告板 331
第12章  其他3D主题 338
12.1  引言 338
12.2  3D曲线 338
12.3  曲面 342
12.3.1  B巣ier曲面 342
12.3.2  犹他茶壶 346
12.4  声音 349
12.5  阴影 352
12.6  几何变化 357
12.7  离屏绘制 363
12.8  3D纹理 367
附录A  计算机图形学的数学背景 376
附录B  用AWT和Swing进行GUI编程 394
索引 404

教学资源推荐
作者: 李柏年 吴礼斌 主编 张孔生 丁华 参编
作者: 赵云龙 葛广英 编著
参考读物推荐
作者: 恒盛杰资讯 编著
作者: [美]马修·贾斯蒂斯(Matthew Justice) 著
作者: 于中华,黄桂钦等
作者: [美]迈克尔·吉内塞雷斯(Michael Genesereth),[美]维奈·K.乔杜里(Vinay K. Chaudhri) 著