眩丽迷人的电脑艺术 图形

>>>  名人論史——近當代作家的史學觀點  >>> 簡體     傳統

发表日期 : 1993.09

对於萤幕上五光绚烂的图形不感兴趣者几稀。
国内进口的电脑图学或电脑绘图程式设计书籍不算多,
我列出八本,相形之下
对每本书的内容介绍就少,
目录之外顶多加点读後感。

不仅立法院很热闹,咱们的 Forum (论坛) 以及读者回响也热闹非凡。我听说六月份的论坛「国产书籍怪现象」在出版界涟漪阵阵,不知这金毛狮王是谁。

这一个月我想为大家介绍几本电脑绘图方面的书。这个领域很广,也有专为大学研究所设计的课程教材,不过这不是我要介绍的目标,我的目标放在 PC 软体人员。他们可能没有修过电脑图学,但对於萤幕上五光绚烂的绘图感到兴趣 (不感兴趣者几稀),也想自己动动手。换句话说我介绍的大半是那种书中有程式码,书後附磁片,看起来颇「实用」的工具书 (实在说我不知道工具书这三个字恰不恰当)。国内这样的书不算多 (比起满坑满谷的 User Guide、C/C++、Windows Programming),大约只十数本而已,其中许多由 M&T 出版。这次我列出的数量相当多,相形之下对每本书的内容介绍就少,原因是目录已经为我说了许多话,所以我顶多加点读後感。读者请注意我在不同情况下使用电脑绘图和电脑图学两个字眼的区别。低阶的绘图动作 (如点线圆) 我称之为电脑绘图,高阶而需要数学模型的动作 (如自由曲线曲面、隐线隐面消除、光影模拟、光迹追踪) 我称之为电脑图学。

说到这方面的工具书,洗镜光先生在本刊 1991/02、1992/01、1993/03「漫谈 Micro」专栏中介绍过 Graphics Gems (绘图宝石) 一二三册,当然是相当好的。国内好像没有书商代理 ?!

依我的构想,理想上学习 PC 电脑绘图进而至电脑图学的阶段大约如下 (但不一定是这样的顺序) :

1) PC video 卡。包括文字模式以及各种绘图模式的差别、video BIOS 的服务、各种模式下萤幕座标点 (x,y) 对应的位址、Herculus/EGA/VGA 卡片使用的位址空间、以及最重要的如何绘出一个点 (图素,pixel)。对於 Surper VGA 的 banking switch 切换最好也知道一些 (这就得有点记忆体定址观念了)。另外一些更接近硬体的主题,像是直接控制暂存器以求最快最快的绘点速度等,端看个人兴趣与否。这些都与所谓的电脑图学无关,但在实作时影响软体效率甚巨。

2) 基础的电脑绘图功夫 : 点、线、圆、弧的绘图方法。我们在国中就学过直线与圆方程式,到高中又加上二次曲线,但真以实数求解就太慢了,电脑绘图讲究的是速度、速度、速度。早有一些很好的演算法针对「萤幕由图素 (pixel) 构成的特性」而设计,全部以整数运算。利用这些整数演算法,再加上直接控制绘图卡暂存器以显示图素颜色,速度上没得更挑剔了。

3) 高阶一点的主题,如多边形截割、多边形填充、直线与几何物体的交点、点是否落在几何物体上 (或内或外)...等等。从学理上来说它们都不难,人眼一眼就可看出哪些部份在多边形内部要填颜色,哪些部份在多边形外部不需填入颜色。但是电脑没有所谓的大局观,贯穿任意多边形的一条直线上的某一点是在多边形的内或外,像这样的问题要电脑辨识是相当困难的。交点问题也不能真以代数方式求解,太慢了,这个领域里大家追求的就是速度。这些基础技术最後应用在处理三维空间立体图 (加上涂色) 时可能需要成千上万的相同计算。为了速度,在「以图素构成的萤幕」上各种解决问题的演算法就相继被开发出来,这其中排序的效率明显带有决定性影响。

4) 3D 网框架构 (透视、投影)。利用齐次 (homogenius) 座标以及各种特殊榘阵运算,将真实世界中的透视表现到画面上来,甚至包括特殊效果的扭曲、剪变。再困难些的就是隐藏线、隐藏面的计算,这一部份会大量运用上述 (3) 的技术。

5) 涂色 (Rendering)。欲进入这个领域,你必须对光线有些基本了解,包括光线的入射、反射、折射、散射,这些现象受到物体表面材质的影响,所以对於欲涂上颜色的物体材质也要有所认识。Ray Tracing (光迹追踪法) 是目前对光线处理的主流方法。

6) Animation 动画。动画当然是电脑图学的一支,可以利用调色盘的变化完成某些动画效果,但这只是简单的色彩流动 (例如水波) 而已。也可以使用多张图片交替显示的方法完成动画 (类似卡通)。由於速度的限制,PC 上的动画无法做到全彩全动的水准 (多媒体 Windows 上的 AVI 也不过是 160x120,每秒 15 张图像,小而不很连续)。

7) Fractal (碎形几何)。这部份我想就比较远离一般自修性质的电脑图学爱好者了。其实任何人都能感受 Fractal 带来的那种惊撼人心的效果,程式设计也毫无困难,但理论与背後隐藏的意义十分深奥。Fractal 属於混沌学 (Chaos) 的一支,可以用来描述自然界的几何 (称为碎形几何,不同於人工的方、圆、锥等欧几里德几何),於是电脑可以利用 Fractal 短短数条方程式模拟真实世界的景致,像是云、海浪、山貌、地形。除了实景,Fractal 也可以制作出色彩斑烂、诡谲变幻,看似不规则中带着规则的图形。

这一次书籍介绍大致就分为三类,一是绘图卡的低阶处理和基本绘图函式设计;一是三维立体图学 (透视、投影、涂色、阴影 ...);另一是令人惊心动魄的 Fractal。

背景资料 :
书名 Programmer's Guide to PC and PS/2 Video System
作者 Richard Wilton
出版 Microsoft Press
页数 544 章

0. 简介
1. IBM display hardware and firmware
2. 硬体的程式设计
3. 文数字模式
4. 绘图模式
5. pixel 程式设计
6. 直线
7. 圆和椭圆
8. 区域填充
9. 绘图文字
10. 文数字字元组
11. 位元区块与动画
12. 高等绘图程式技巧
13. 高阶语言中的绘图函式库

pc-video-system.jpg (17276 bytes) note: this is book fact of 2nd edition.

这本书对於 EGA/VGA 硬体的解释,非常清楚。书中发展出许多组合语言绘图函式,应用到 C 程式上速度十分令人满意。这些基础的绘图函式包括画点、直线、圆弧,以及区域填充,都是尽量利用低阶技术直接控制显示卡暂存器而完成。往低阶走固然速度愈来愈快,唯一恼人的是移植性降低。不过如果在设计低阶函式时能多放点心思在 API 的设计上,再把低阶模组独立出来,应该可以将此困扰降至最低。本书相当有实用性,第三波有中译本,译笔不错。我手头上只有中译本,所以列给各位的是中文目录。原文书是朋友带回来的,只剩书名与作者还记得。记得稍早 (也不过就是三年前) 还有同事抱着本书雅不愿与别人技术交流,不知现在资讯传播发达时代,是否还有这等胸襟狭隘之人。

 

背景资料 :
书名 Graphics Programming in C
作者 Roger T. Stevens
出版 M&T Books
页数 23 章

1. 简介
2. 绘图及 C 语言
3. CGA 和 Herculus
4. EGA 和 VGA
5. ROM BIOS 影像服务
6. 在 C 语言中使用 ROM BIOS 影像服务
7. 用於 Herculus 卡的绘图函式
8. 在萤幕上显示像点
9. 座标系统与边界修剪
10. 画线与榘形
11. 椭圆、圆和弧
12. 圆角榘形和多边形
13. Bezier 和 B-Spline 曲线
14. 转换和旋转
15. 产生绘图游标
16. 在绘图画面上使用文字
17. 立现式视窗和功能表
18. 三度空间绘图法
19. 三度空间上的阴影
20. 建立绘图函式库
21. 范例程式
22. 印出绘图画面
23. 部份维度图形 : 未来的展望

 

这本书一开始介绍了一点显示卡硬体架构,这一部份不如上一本书资料那麽丰富,叙述那麽详细,不过对於只想到此一游而不欲深入名山的人,应该是够了。第八章开始进入绘图程式设计。上一本书的绘图函式都以组合语言完成,这一本书使用 C 语言 (看看书名),不过也给了选择,它也有使用 inline assembly 的版本 (只在最基础的函式如绘点上)。後续数章开始讨论诸如直线、圆弧、截割、座标系统、区域填充、三度空间绘图等技巧,这些都是电脑图学的入门必修。讲这种主题的书不算少,但本书作者相当有名,而且他出了一系列有关电脑绘图的书 (等一下你就可以看到),考虑这一点的话,这本书有其优势。尤其第二十三章对碎形几何的概略描述,有助於阅读他的下两本关於 Fractal 的书籍。这本书我手上也是中译本 (儒林),译笔也不错。

追注 : 重新整理这篇稿子时,我想,既然我说上一页和这一页的两本书译笔都不错,也许您会想去书店找找看。於是我把两本书取出,却看不到在书的封面、封底、书背、内页或任何其他地方有原文书名以及原作者的记录(只有第一本书的译者序提到了原作者)。所以,如果不把它们的中文书名公布,显然您将大海捞针。

虽不忍心您大海捞针,但是我也不打算让不尊重别人者愈扬其名。我的看法是,早年国内还没有立法保护外文书之翻译权,所以无主翻译是「合法」的,版权问题实不必在今日再挖来讨论;但连把原书名原作者放在显着地位表示起码的尊敬以及对读者的负责,都不愿坦然为之,我感到十分难过。

不要找了,反正它们也活不过今年的「612 无版权外文中译图书大限」。... 1994.04.18

 

背景资料 :
书名 Programming in 3 Dimentions
作者 Christopher D.Watkins
Larry Sharp
出版 M&T Books
页数 16 章,466 页
售价 NT$ 750.0
磁片 Yes

Part I : Universal Routines
1. Introduction to the Modules
2. The Mathematics Module
3. The Graphics Interface Module
4. Using The Modules

Part II : Three Dimention Modeling
5. Modeling Theory and Database Structure
6. Adding Objects to a Scene
7. Sorting and Displaying Objects
8. The Modeling Program and Creating Animation
9. Creating Object Databases
10. Editing Scene Files

Part III : Ray Tracing
11. Ray-Tracing Theory
12. Ray Tracing Program
13. Image And Animation Creation with The Ray Tracer

Part IV : Animation
14. Animation
15. The Animation Program

Part V : Color Processing
16. Reducing Colors with the Color Histogram Processor

programming-in-3D.jpg (15042 bytes)

这一本书的所有程式以 Borland C++ 2.0 完成,显示卡设定在 VGA 和 SuperVGA 阶层。到底是比较新的书,不再去提Herculus 卡了。本书共分五部份。第一部份介绍书内的函式库,主要是向量数学和榘阵代数 (第二章),这是做三维图形计算时不可或缺的数学工具;另一个函式库是图形介面 (第三章),提供关於进入图形模式、设定图形模式、调色盘、点线圆等基础绘图函式,以及高阶的三维空间投影、透视、座标转换等函式,它们大量运用第二章的数学函式。这些章节并没有从电脑图学的基础观念说起,事实上本书型式比较像是列举一套 C 语言函式库并加简略说明。第四章光看章名不知道是做什麽,原来它是呼叫前两章的函式库做个示范。范例程式中牵扯到利用 IFS (Iterated Function System) 制作 Fractal 图形,没有什麽文字说明,所以没有这方面基础的读者不要想光靠程式内容来学习或思考。这一部份我认为应该到下两本书再来看 --- 如果你有兴趣的话。

我以前常会买一些附原始码的函式库,小小的、不贵的 (总在 US$ 100.0 以下),仔细研究以增进不同技术领域的程式功力,譬如说记忆体啦、使用者介面啦、绘图啦。这些函式库通常就是薄薄的一两片、顶多附个模组架构 (档案架构) 说明。有的说明文件还是放在档案中需得你自己印出来看。这本书给我的感觉有点儿像那样,不一样的是它的说明文件印成书。虽然我们不能怪它 (它并不比较贵),不过就我想像中的传道授业的书的身份,似乎不该是这样。从另一角度来说,市售的函式库是有维护的,这类书的函式库可以冠冕堂皇的说只是为了 "illustration purpose"。真的,它的 readme 档案上就是这麽说的,所以这个软体可能在开一个不存在的档案时当掉,也可能在不正常结束下没有回复你的文字模式,至使你必须使用 "mode co80" 这个 DOS 命令。

坏消息,我书中的磁片竟然是坏的,没有办法试试重新编译、联结的情况,也没有办法执行看看给读者更多说明。碰到这样的事情除了想「为什麽会是我」之外,也懒得采取什麽行动。

 

背景资料 :
书名 Photorealism and Ray Tracing in C
作者 Christopher D. Watkins
Stephen B. Coy
Mark Finlay
出版 M&T Books
页数 22 章,583 页
售价 NT$ 750.0
磁片 Yes

Part I : Standards and Universal Modules
1. Standards and The C Language
2. The Mathematics Module
3. The Graphics Interface Module
4. Using The Modules

Part II : Ray Tracing
5. Ray Tracer Math Modules
6. Ray Tracing Theory
7. The Ray Tracing Program
8. Ray-Object Intersection Tests
9. Seeing The Light
10. The Ray Tracer Code
11. How To Use The Ray Tracer

Part III : Production of Object Databases For The Ray Tracer
12. Procedural Object Databases
13. Z-Buffer Data

Part IV : CAD Production of Object Databases
14. The Three Dimensional Database Modeler

Part V : Image Processing Techniques in Computer Graphics
15. Image Processing

Part VI : Graphics Hardware
16. Graphics Hardware Drivers
16. Beyond Bob

ray-tracing-in-c.jpg (15975 bytes)

虽然本书主要作者之一 Watkins 同上一本书,以软体为主的内容方式也同上一本书,但我的观感好些了。有一些精致的图片表示三维空间、光迹追踪的观念,详细程度不能与教科书相比 (毕竟它有一半的篇幅放程式码呢),但至少没有基础的人可以稍稍有个倚赖。

但,还是太以软体为主! 以一个大型程式牵着书本鼻子走,并不是我个人认为好的书籍进行方式。三维影像加涂色的程式不可能小,但我并不企盼一个具备商业性的模组化的重覆使用性高的 (却大到不知道 main() 在哪里的) 图形函式库;我认为读者想学习的并不是语言技巧,也不是模组分割技术,花的书钱也不是为了买一套商用函式库,而是为了学习电脑图学观念技术及其实作示范。所以如果我是作者,我会选定一个目标 --- 好,就说是 Utah Teapot (电脑图学界顶顶有名的模型),告诉读者最终会得到一个茶壶三维光影图,然後书籍从点线弧开始,经过各种必须的过程 (这过程中就让读者经历了种种基础图学技术),一步一步最後完成我们的目标。

利用本书软体 (书附磁片上有) 实际制作一张三维空间图形非常非常耗时,我最後说服自己看看书上十六页全彩影像就好 (不得不承认自己的性子是急了些)。

 

背景资料 :
书名 Fractal Programming in C
作者 Roger T. Stevens
出版 M&T Books
页数 22 章,583 页
售价 NT$ 750.0
磁片 Yes

1. Introduction
2. What Are Fractals
3. Hardware Requirements
4. Saving and Compressing Display Data
5. Tools for Graphics Display Generation
6. The Lorenz and Other Strange Attractors
7. The Population Equation and Bifurcation Diagrams
8. The Snowflake and Other von Koch Curves
9. Peano Curves
10 The Hilbert Curve
11 The Sierpinski Curve
12 Trees
13 Working with Circles
14 The Mandelbrot Set
15 Julia Sets
16 Dragon Curves
17 Phoenix Curves
18 Three-Dimensional Dragons
19 Newton's Method
20 Brownian Motion
21 Fractal Landscapes
22 Iterated Function Systems

fractal-proramming-in-c.jpg (17565 bytes)

本书年代算是稍微久远一点了,1989 年出版的。前五章中除了第二章稍微简介 Fractal 之外,馀皆与 Fractal 无关。第四、五章说明原始码中使用的一些工具函式,这是作者在其另一本着作Graphics Programming in C 中发展的。许多绘图函式虽然Borland C 或 Microsoft C 函式库都已提供,作者还是自行发展,其理由是如此一来程式可在各种 C 编译器下编译,因为只用到共同拥有的函式。不过这样发展软体忒也辛苦了些。解决这种非标准绘图函式的困扰,一部份可以利用 #define 巨集来解决。但如果编译器之间的绘图函式没有一对一的话,这种作法也行不通。

一般人对於 Fractal 的第一个问题是 : 什麽是 Fractal ? 第二个问题是 : Fractal 作什麽用 ? 关於这两点,作者 Stevens 的解释令人觉得温暖(我意思是让人有看下去的勇气和兴趣)。如果给一条直线,任何人都知道其维度为 1;如果把这条直线延伸、扭曲、盘绕但绝不交叉,它的维度从传统几何的定义来说也是 1 (线上一只小蚂蚁必如是想);可是直觉告诉我们应该不是 1 (你看它不是占据着一个平面吗),好像是 2,可又不尽然。这种「维度不为整数」的几何就是 Fractal (碎形) 几何。这个答案轻描淡写,但我想对於初初接触到 Fractal 的读者是十分受用的。Fractal 有什麽用 ? 最早发现它的 Dr. Benoit Mandelbrot 认为 :

传统几何用以描述人为物件 (方、圆、锥...) 十分理想,碎形几何用来描述自然界的物件则相当合适。

电脑在进行迭代 (iteration) 时,叁数的变化如果以图形描述,会产生十分有趣的特徵 : (1) 它们绝不重覆,(2) 它们自我类似 (把局部放大来看,会出现与原形十分近似的形状)。它们都很美丽 (这倒是见仁见智,有人觉得毛骨悚然)。这种曲线所具备的特性,符合碎形几何的定义,这就是碎形曲线。

阅读 Fractal 相关书籍时,字典得翻勤一些,你常会看到奇怪字眼诸如帆索、泡沫、海绵、凝乳,这都是 Mandelbrot 检视这些前所未见前所未闻的图案时给的名称。Fractal 这一词是 Mandelbrot 於 1975 年在其作品 (也就是那些奇异诡谲的曲线) 即将出版前,在其儿子的拉丁字典获得的灵感。拉丁文中有一个形容词是 fractus,英文中的同语根字语有破碎 (fracture) 和破片 (fraction),於是他自创出 fractal 这一新字眼。

一条碎形曲线内含吓死人的复杂,但又隐隐然有着乱中有序的结构,简简单单的电脑程式就可以让个人电脑玩家在自己的个人电脑上绘出吸引人的碎形曲线(但如果你土法炼钢,得一张图得花大半天)。

为何 Fractal 重要 ? 原因是自然界中看似复杂的东西竟可以 Fractal 来描述,更令人惊讶的是描述的方程式非常简短。以 DNA (去氧核醣核酸) 为例,记录着生命的奥秘,可能只是寥寥数语就传递了分歧发展的重复过程。Fractal 可以应用在人体的肺部支气管网路、心脏的传导纤维。一张极为复杂的影像,可以藉着找出其碎形维度,然後找出其碎形方程式,然後以三言两语描述它,这应用在哪里 ? 对了,影像压缩。本刊上一期的「压缩技术」一文最後有一篇以碎形压缩为题目的文章可供叁考。(编按 : 指的是微电脑传真杂志)

本书从第六章以後,都是针对 Fractal 中的某一种主题成立一章,并列出程式。程式都非常简短,第一次接触 Fractal 的人可能大吃一惊,这麽短的程式能产生那麽复杂、绚烂的图形。第八章到第十三章都以相同手法制作一些自我模仿的图形 : 先以一个 Initiator (通常只是简单的直线或三角形、四方形),再在其边线上取代以所谓的 Generator,不断进行下去。这种方法以递回程式技巧最容易实作出来。程式很短,但仔细想它却很叫人头痛--- 递回程式向来如此。

第十四章的 Mandelbrot Set 是 Fractal 领域中顶顶有名的图腾,相信看过 Fractal 图形的人一定都看过这张图。Mandelbrot 原是IBM 工程师,涉猎领域甚广,现已因开创一门学门 (当然不只是他一人功劳) 而名列大师人物。我举混沌-不测风云的背後一书 (注) 对 Mandelbrot Set 的精彩描述以飨读者 :

『Mandelbrot Set 是数学中最复杂的对象,地老天荒也无法将它看尽。它的光环边缘满布棘刺,螺纹丝路四处纠缠旋绕,垂挂着球茎状精密结构,像上帝耕耘的葡萄,大大小小闪烁着丰盈幻化的辉彩。没有办法将各种形状分门别类或编号』。

放大百万倍後的一个角落可能发现一个与原大小相似的外形,想来真是有点令人恐怖。

(注:混沌这本书原作者是 James Gleick,纽约时报科技专栏作家;林和译, 天下文化出版。对混沌和碎形几何有兴趣的人,不妨先看看这中译本。 十一章,403 页,NT$ 220)。

第十五章的 Julia Set 是与 Mandelbrot Set 同享盛名的图形,这其实是 50 年前的法国数学家作品,竟然可以在 Mandelbrot Set 中找到。第二十、二十一章是 Fractal 的实际应用。Mandelbrot 曾经提出英国海岸线有多长的问题,答案永远视测量的单位而定,因为一个类似两脚器的设备不可能观察其两脚之间的碎形变化。那麽,以 Fractal 来制作地图上的海岸线是最生动最自然的了。另外,Fractal 可以模拟自然景观,创造电脑图学的另一支。

书後长达 24 页的附录 A 是工具函式库的原始码。长达 138 页的附录 B 是针对 Herculus 卡写的程式原始码,其实用价值不高,因为一来单色卡已日渐淘汰,二来观看 Fractal (尤其是 Mandelbrot Set) 而没有彩色那是入宝山而空手返。

磁片中含所有原始码,以及两个分别为 Borland C (tools.lib) 和 Microsoft C (mtools.lib) 的函式库。这些原始码我分别以 Microsoft C 7.0 和 Borland C 3.1 均可顺利编译联结。

 

背景资料 :
书名 Advanced Fractal Programming in C
作者 Roger T. Stevens
出版 M&T Books
页数 13 章,305 页
售价 NT$ 450.0
磁片 No. (另购)

1. Introduction.
2. Painlessly Moving To C++
3. Useful Functions For Fractal
4. The Mandelbrot Set Revisited
5. The Core Program
6. Using The Distance Method With The Mandelbrot Set
7. Transcendental Functions
8. Orthogonal Polynomials
9 Some Barnsley Fractals
10 Plasmas
11 Three Dimensional Techniques
12 L-Systems
13 Iterated Function Systems

advanced-fractal-programming-in-c.jpg (15254 bytes)

这本书是上一本的延续,同一作者同一主题,不过是将 Fractal 这一领域的新发展再写续集。程式设计使用 C++ 语言,主要是为了可以使用 C++ 的 overload operator,方便复数运算。书上的软体增加了档案能力 (使用 ZSoft 的 PCX 档格式)。模组设计比上一本好一些,独立出一个 Core 程式,搭配特定的"Fractal Engine" 和绘图函式即可产生特定的 Fractal 图形。新书的风格与前一本差不多,但是书後没有附磁片,莫怪本书便宜的多。

 

背景资料 :
书名 Fractal Creations
作者 Timothy Wegner
Mark Peterson
出版 Waite Group Press
页数 3 章,315 页
售价 US$ 34.95
磁片 Yes


1. Fractals : A Primer
2. Using Fractint
3. Fractal Types

fractal creation.jpg (10846 bytes)

较之前两本书着重在程式设计教导,本书就完全不同了。它的方式是以软体 (即书附的 Fractint) 为主,所以书中有一整章 (第二章) 介绍 Fractint 这个软体的使用;102 页,乖乖,一本书去了大半。程式员唯一可看的技术部份是附录 C。

Fractint 这套软体运用各种软体技巧,并考虑到 Fixed Point 的运算,所以产生并绘制 Fractal 图形的速度很快。它并支援各式各样的绘图模式。原始码并不附在磁片上,可以从 CompuServe 上抓。国内 WAN (广域网路) 并不十分普及,因此这对读者可说十分不便。书上说四位作者互不相识,书後四张像片正是他们四个人第一次彼此见面 (纸上见面),平时沟通全在 CompuServe 上。这倒新鲜,根据我对书籍制作的了解,这种新潮作法会使我对书籍的一致性与连贯性毛毛的。

第一章是对 Fractal 的概论介绍。比起 Fractal Programming in C,本书看起来硬梆梆一些。第二章介绍如何使用 Fractint 软体,内建 68 种不同的方程式产生不同的 Fractal,档案格式是 GIF (Graphics Interchange Format)。第三章针对此软体内建的 68 种 Fractal 型态做一个列举说明,包括其分类、名称、方程式、一些些描述,以及图片 (黑白的)。

 

背景资料 :
书名 Fractals for Windows
作者 Timothy Wegner
Mark Peterson
Bert Tyler
Pieter Branderhorst
出版 Waite Group Press
页数 6 章,358 页
售价 US$ 34.95
磁片 Yes

1. Fractals : A Primer
2. Winfract Tutorial
3. Fractal Recipes
4. Winfract Reference
5. Fractal Types
6. Winfract's Source Code
Appendix A. Winfract and Windows Video Drivers
Appendix B. The Graphics Interchange Fromat
Appendix C. The Stone Soup Group And The Winfract Authors

fractal-for-windows.jpg (16651 bytes)

有些人已经成为 Windows 程式设计的狂热份子,看到此书心跳加速,瞳孔又要放大了,以为即使不懂电脑图学,不懂Fractal,至少学点 Windows 图形方面的程式技巧吧。那麽,这一本不是这样的人想要的。

Winfract 是上一本书中 Fractint 软体的 Windows 版本,这一次原始码附在磁片上。第六章专门介绍其原始码的档案与目的,总共有 32 页,但完全没有讲设计理念。虽然它给了我们原始码,我们还是没办法把这本书视为如何在 Windows 环境下发展 Fractal 的程式技巧书籍,它的重点放在 Fractal 的观念与整理,以及卖你一套 Winfract 软体。我发现 Waite Group 出版社的书籍许多都是这种方式 : 以软体为主,书反倒成了配角。

磁片虽然附有程式码,但从其中学习如何撰写程式不是件容易的事,因为 : (1) 整套软体太巨大;(2) 多人合作,风格迥异;(3) 从 DOS 程式的 Fractint 移植而来,恐怕有包袱。

附录 A 有关於调色盘的技术问答,虽是短短的 4 页,满好的,相关资料并不常见。

 

尾声

主持无责任书评九个月 (中间空白一个月),字字推敲十分疲倦。老人似乎已在梦中把我的一支五彩笔取走了,那麽该是说斯卡也达的时候 ! 九个月下来我已经得了人格分裂症,略带狂妄略带臭屁的侯捷并不是真实人生的我。这其实有趣,我说侯捷不是我,而正在下笔的人署名是侯捷,好似庄周梦蝶,分不清是蝶梦周还是周梦蝶。

读者两极化的反应,曾经带给我许多安慰许多懊恼。为什麽要评外文书 ? 第一篇开门的时候早已说明。有好几次读者回响提到「废话」这两个字,老实说我不以为然。期望以一种比较有看头的 (或许是我自以为的) 方式来进行,并把个人技术心得夹杂在里头。然而,好吧,我承认这样的回响确实影响了我,影响我的写作意愿。

最近以来在杂志上看到不少热烈讨论国内电脑书籍的文章,诚可喜也。我们的电脑中文书数量不可谓不多,但是在某个层面以上有深度的贫血,在某个层面以下又营养过剩。偏偏这「某」层面老实说稍低了些。朋友们聊起来,站在读者的立场,多数人有悲观的看法,站在作者的立场,许多人也有悲观的看法。前者因为他们找不到想看的书,後者因为他们不相信用心尽力写出一本好书能够在书海中脱颖而出。我个人却是审慎的乐观。虽然目前电脑书市就像唱片市场一样的战国,一出书可能就淹没在滚滚洪流之中,然而桃李不言下自成蹊,读者的评断力将是最後的审判。我们也不要吝於给予掌声,作者们获得了鼓励与荣耀,後续作品必然更严谨,没有人不爱惜羽毛。作者战战兢兢,好书就相续出笼。国内不是没有好的电脑着作,执着的工作者,如果我们能够有一个固定栏位公开讨论书籍,并且大家热烈支持,自然能够形成舆论。这一点,微电脑传真开风气之先,我首先表达敬意。

许多人批评书籍时流於自我意识,不是自己想看的内容,一律不屑一顾。於是技术者批评入门书写的肤浅,入门者批评技术艰深的书写给谁看。不同层次的书有不同层面的贡献,这是大家平心静气之下必须承认的。

读者回响中表示希望看到这个专栏延伸到中文书来的人很多,我也期盼它的出现。这个专栏不是我的,我只是主持人。侯捷不适合主持中文书评,请原谅。

感谢前後两位总编支持,允许这麽多闲话家常的文章在这麽专业技术水准的刊物上存活九个月。地址仍旧没有敢放在杂志社,但您的建言很快就会转到我的手上。要向亲爱的读者说再见了,由衷谢谢您。


侯捷 2010-07-15 08:32:57

[新一篇] 美麗的電腦新世界-- 多媒體

[舊一篇] 忽聞海外有仙山(曾銘源)
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表