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