第1章 准备上手 1
1.1 开发环境的准备 2
1.2 Java动画编程的运行环境 2
1.3 Java 3D的运行环境 5
1.4 小结 7
第2章 Java动画程序设计基础 8
2.1 使用Java Applet显示动画界面 9
2.2 使用Java Application显示动画界面 12
2.3 合并Java Applet程序和Java Application程序 16
2.4 使用多线程控制动画 20
2.5 动画界面的布局 22
2.5.1 边框布局管理器 23
2.5.2 卡片布局管理器 25
2.5.3 流布局管理器 27
2.5.4 网格布局管理器 30
2.5.5 网格包布局管理器 32
2.6 小结 36
第3章 动画程序的图像处理实例 37
3.1 加载和显示图像 38
3.1.1 在Java Applet中加载和显示图像 38
3.1.2 在Java Application中加载和显示图像 39
3.2 使用Media Tracker加载显示图像 41
3.3 抓取图像像素 43
3.4 用图像过滤技术产生不同的处理效果 47
3.4.1 CropImageFilter 47
3.4.2 ReplicateScaleFilter和AreaAveragingScaleFilter 49
3.4.3 RGBImgaeFilter 52
3.4.4 ImageFilter 55
3.5 双缓冲技术避免图像的闪烁 61
3.6 Java 2D图像处理实例 65
3.6.1 缓冲区图像实例 65
3.6.2 查找表过滤实例 70
3.6.3 重调过滤实例 75
3.6.4 颜色转换过滤实例 79
3.6.5 卷积过滤实例 82
3.6.6 仿射变换实例 86
3.7 小结 90
第4章 曲线与曲面应用实例 91
4.1 编写Bezier曲线 92
4.1.1 de Casteljau算法 92
4.1.2 中点离散算法 95
4.2 编写B样条曲线 98
4.3 在Java 2D中生成曲线 105
4.3.1 二次曲线 106
4.3.2 三次曲线 109
4.4 绘制曲面 112
4.5 小结 120
第5章 在Java 3D中创建基本几何形体 121
5.1 Java 3D场景图 122
5.2 生成点 126
5.2.1 用PointArray创建点 126
5.2.2 用IndexedPointArray创建点 128
5.2.3 使用PointAttributes修改点的大小和形状 131
5.3 生成线 132
5.3.1 用LineArray创建直线 132
5.3.2 用IndexedLineArray创建直线 134
5.3.3 用LineStripArray创建折线 136
5.3.4 用IndexedLineStripArray创建折线 139
5.3.5 使用LineAttributes修改直线的外观 141
5.4 生成面 142
5.4.1 用TriangleArray创建三角形面 143
5.4.2 用IndexedTriangleArray创建三角形面 145
5.4.3 用TriangleStripArray创建连续三角形面 147
5.4.4 用IndexedTriangleStripArray创建三角形面 150
5.4.5 用TriangleFanArray创建三角形面 154
5.4.6 用IndexedTriangleFanArray创建三角形面 157
5.4.7 用QuadArray创建四边形面 162
5.4.8 用IndexedQuadArray创建四边形面 165
5.5 生成基本几何形体 168
5.5.1 使用Box创建长方体 169
5.5.2 使用ColorCube创建彩色立方体 171
5.5.3 使用Cone创建圆锥体 171
5.5.4 使用Sphere创建球体 172
5.5.5 使用Cylinder创建圆柱体 174
5.6 小结 175
第6章 Java 3D编程实例 176
6.1 颜色与光照 177
6.1.1 环境光 177
6.1.2 定向光 180
6.1.3 点光源 182
6.1.4 聚光源 185
6.2 材质 188
6.3 纹理贴图 192
6.3.1 在简单的几何形体上绘制纹理 192
6.3.2 在面上绘制纹理 195
6.3.3 设置纹理边界的模式 199
6.3.4 设置过滤 202
6.3.5 设置TextureAttribute 205
6.4 小结 208
第7章 Java 3D动画编程实例 209
7.1 鼠标交互 210
7.2 键盘交互 213
7.3 Picking行为 215
7.4 自定义行为 219
7.4.1 WakeupOnAWTEvent自定义行为 219
7.4.2 WakeupOnElapsedTime自定义行为 223
7.4.3 复杂的自定义行为 227
7.5 使用Alpha对象 235
7.6 颜色内插器ColorInterpolator 239
7.7 交换值内插器SwitchValueInterpolator 242
7.8 变换内插器TransformInterpolator 246
7.8.1 使用PositionInter polator内插器 246
7.8.2 使用RotationInterpolator内插器 249
7.8.3 使用ScaleInterpolator内插器 251
7.8.4 使用RotPosScalePathInterpolator内插器 255
7.8.5 使用RotPosScaleTCBSplinePathInterpolator内插器 260
7.9 透明度内插器TransparencyInterpolator 263
7.10 LOD 267
7.11 Bilboard 270
7.12 Morph 273
7.13 小结 279
第8章 图像自然渐变的实现 280
8.1 二维图像交融渐变实例 281
8.1.1 生成图像交融渐变产生的图像 281
8.1.2 生成图像交融渐变产生的动画 285
8.2.1 基于一对线对的渐变过程 288
8.2 基于线对的渐变实例 288
8.2.2 基于多对线对的渐变过程 292
8.3 基于网格的渐变实例 300
8.4 综合实例:人脸自然渐变实例 308
8.5 小结 327
第9章 分布式动画编程实例 328
9.1 一个应用RMI框架结构的实例 329
9.2 编写一个简单的RMI分布式应用 330
9.3 实现RMI中的参数传递实例 334
9.4 利用RMI回调编写聊天服务器 342
9.5 用RMI构建分布式动画应用实例 350
9.6 小结 369
第10章 两个有趣的动画实例 371
10.1 水波动画 372
10.2 分形动画 377
10.3 小结 381