《计算机图形学》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:任爱华,谢淼编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121121838
  • 页数:517 页
图书介绍:本书介绍计算机图形学基本理论和实践,重点讲述光栅图形的生成和显示技术以及图形软件的应用实例。全书共分14章,包括常用的计算机图形设备的介绍,光栅图形生成的扫描算法,图形的各种变换、裁减和消隐算法,曲线、曲面的生成,图形交互技术以及真实感图形生成的基本理论和各种处理技术等内容。本书的特点是:算法简单、实用,并结合作者的教学实践,介绍一些适于计算机专业本科学生学习和掌握的计算机图形学基本原理和技术。

第1章 绪论 1

1.1 计算机图形学基本概念 2

1.2 计算机图形学的典型应用领域及其分类 3

1.2.1 典型应用领域 3

1.2.2 应用分类 6

1.3 交互式图形学 7

1.3.1 交互式概念 7

1.3.2 交互式图形系统框架 8

1.4 计算机图形学及相关技术的发展 11

1.4.1 图形学发展历程 11

1.4.2 输出技术 13

1.4.3 输入技术 17

1.4.4 软件可移植性及图形标准 18

1.5 图形学当前的研究动态 18

1.5.1 真实感图形实时绘制 19

1.5.2 计算机动画 19

1.5.3 与计算机网络技术的紧密结合 20

1.6 本章小结 20

1.7 习题与思考 21

1.8 参考文献 21

第2章 常用图形软件简介 22

2.1 平面类 22

2.1.1 ANIMO 22

2.1.2 CorelDRAW 23

2.1.3 Illustrator 23

2.1.4 ImageReady 23

2.1.5 PageMaker与InDesign 24

2.1.6 Painter 24

2.1.7 Paint Shop Pro 24

2.1.8 PhotoImpact 24

2.1.9 PhotoLine 25

2.1.10 PhotoShop 25

2.1.11 Photoshop Elements 26

2.2 三维类 26

2.2.1 3D Studio Max 26

2.2.2 Bryce 27

2.2.3 Canoma 27

2.2.4 COOL 3D 28

2.2.5 Dimensions 28

2.2.6 Extreme 3D 28

2.2.7 Houdini 28

2.2.8 Lightscape 29

2.2.9 LightWave 3D 29

2.2.10 Maya 29

2.2.11 Mental Ray 30

2.2.12 Poser 30

2.2.13 RenderMan 30

2.2.14 Rhino 3D 31

2.2.15 SoftImage 3D/XSI 31

2.2.16 Sumatra 32

2.2.17 Swift 3D 32

2.3 多媒体类 32

2.3.1 After Effects 32

2.3.2 Authorware 32

2.3.3 Combustion 33

2.3.4 Digital Fusion 33

2.3.5 Director 33

2.3.6 Premiere 34

2.3.7 Ulead Video Studio 34

2.3.8 Toolbook 34

2.4 网络类 35

2.4.1 DreamWeaver 35

2.4.2 Drumbeat 35

2.4.3 Fireworks 35

2.4.4 Flash 35

2.4.5 FreeHand 36

2.4.6 FrontPage 36

2.4.7 GIF Animator 37

2.4.8 Swish 37

2.5 工程类 38

2.5.1 ACIS 38

2.5.2 3D Studio VIZ 38

2.5.3 AutoCAD 39

2.5.4 AutoDesk VIZ 39

2.5.5 CAXA 39

2.5.6 MicroStation 40

2.5.7 Pro/Enginer 40

2.5.8 Unigraphics 40

2.6 工具类 40

2.6.1 ACDSee 41

2.6.2 SWF Browse 41

2.6.3 EXE2SWF 41

2.6.4 FiLMBOX 41

2.6.5 FlashForge 41

2.6.6 Konvertor 42

2.6.7 SnagIt 42

2.7 编程类 42

2.7.1 Cg图形编程语言 42

2.7.2 C#中图形编程 42

2.7.3 Delphi中图形编程 43

2.7.4 OpenGL 43

2.7.5 RomPager Java图形包 43

2.7.6 VC++中图形编程功能 43

2.7.7 VRML虚拟现实建模语言 43

2.8 本章小结 44

2.9 习题与思考 44

第3章 基于光栅扫描的二维图元生成算法 45

3.1 直线的扫描变换 45

3.1.1 基本增量算法 46

3.1.2 中点画线算法 48

3.1.3 Bresenham画线算法 52

3.2 圆与椭圆的扫描变换 55

3.2.1 圆的扫描变换 55

3.2.2 椭圆的扫描变换 67

3.3 区域填充 71

3.3.1 多边形域的填充 71

3.3.2 圆域的填充 85

3.3.3 图案填充 85

3.4 线宽与线型的处理 86

3.4.1 直线线宽的处理 86

3.4.2 圆弧线宽的处理 88

3.4.3 线型的处理 89

3.5 字符 90

3.5.1 矢量字符 90

3.5.2 点阵字符 91

3.5.3 字型技术 92

3.5.4 字符输出 93

3.6 裁剪 95

3.6.1 窗口视口变换 96

3.6.2 线段裁剪 96

3.6.3 多边形裁剪 108

3.6.4 字符裁剪 117

3.7 反走样基础 118

3.7.1 提高分辨率 119

3.7.2 简单的区域反走样算法 119

3.7.3 卷积积分与反走样算法 120

3.7.4 半色调技术 121

3.8 本章小结 122

3.9 习题与思考 123

3.10 参考文献 123

第4章 图形硬件与图形软件标准化 124

4.1 图形输入设备 124

4.1.1 键盘 125

4.1.2 鼠标器 127

4.1.3 键盘与鼠标的接口及其标准 129

4.1.4 触摸屏 129

4.1.5 坐标数字化仪 131

4.1.6 图形扫描仪 132

4.1.7 数码相机 133

4.1.8 手写笔 135

4.2 图形输出设备 135

4.2.1 图形显示设备 135

4.2.2 图形绘制设备 146

4.3 图形处理设备 149

4.3.1 图形处理器 149

4.3.2 视频控制器 150

4.3.3 显示处理器 150

4.4 图形标准化概述 151

4.5 图形程序接口标准 152

4.5.1 GKS标准 152

4.5.2 GKS-3D标准 154

4.5.3 PHIGS标准 155

4.5.4 非官方图形标准 158

4.6 图形元文件 158

4.6.1 GKSM和VDM文件 158

4.6.2 CGM文件 159

4.7 设备接口标准 160

4.7.1 VDI虚拟设备接口 160

4.7.2 CGI计算机图形设备接口 160

4.8 应用程序接口标准 161

4.8.1 概述 161

4.8.2 原始图形交换规范(IGES) 161

4.8.3 产品模型数据转换标准(STEP) 163

4.9 本章小结 166

4.10 习题与思考 167

第5章 几何变换 168

5.1 二维变换 168

5.1.1 平移变换 168

5.1.2 比例变换 169

5.1.3 旋转变换 169

5.2 齐次坐标系和二维变换的矩阵表示 171

5.2.1 平移变换 171

5.2.2 比例变换 172

5.2.3 旋转变换 173

5.2.4 刚体变换和仿射变换 173

5.2.5 对称变换 175

5.3 二维变换的组合 175

5.3.1 关于任意点P1旋转变换物体 175

5.3.2 关于任意点P1比例变换物体 176

5.3.3 综合变换 176

5.4 窗口到视口的变换 177

5.4.1 基本概念 177

5.4.2 视窗变换实例WindowToViewport的设计 178

5.5 仿射变换的效率问题 182

5.6 三维变换的矩阵表示 183

5.7 三维变换的组合 186

5.7.1 实例一 186

5.7.2 实例二 189

5.8 坐标系的变换 190

5.9 三维变换中的对称变换矩阵 193

5.10 本章小结 194

5.11 习题与思考 195

第6章 三维视图 196

6.1 投影 196

6.1.1 透视投影 198

6.1.2 平行投影 198

6.2 三维视图的定义 202

6.3 平面几何投影的计算 205

6.4 平面几何投影的实现 209

6.4.1 平行投影 210

6.4.2 透视投影 212

6.4.3 三维规格化裁剪盒的裁剪 214

6.4.4 在齐次坐标系中裁剪 215

6.4.5 映射到视区 217

6.4.6 视图变换实现方法小结 218

6.5 坐标系名称 218

6.6 本章小结 219

6.7 习题与思考 220

第7章 三维图形的绘制实践 221

7.1 交互式图形系统应用实例介绍 221

7.1.1 Photoshop制作爆炸效果 221

7.1.2 用Photoshop制作立体台灯 225

7.2 奖杯的制作 229

7.3 利用VC设计三维投影程序 236

7.3.1 用户界面的设计 237

7.3.2 视图过程的简化处理 237

7.3.3 程序结构的设计 242

7.4.4 物体模型的描述 243

7.3.5 视图类的设计 245

7.3.6 3DViewing的具体实现 245

7.4 利用OpenGL图形包编制应用程序 254

7.4.1 OpenGL的构成及工作流程 254

7.4.2 OpenGL的运行环境要求 255

7.4.3 OpenGL的应用程序开发 255

7.5 本章小结 272

7.6 习题与思考 273

7.7 参考文献 273

第8章 图形用户界面与交互技术 274

8.1 交互任务 275

8.2 交互技术 276

8.2.1 定位操作 277

8.2.2 选图 278

8.2.3 实数输入设备 280

8.2.4 字符输入 280

8.2.5 功能选择 281

8.2.6 几何约束 281

8.2.7 拖动 283

8.2.8 橡皮筋技术 283

8.2.9 图形变比 284

8.2.10 引力场效果 285

8.2.11 标尺和导向线 286

8.2.12 坐标显示 286

8.2.13 菜单 287

8.2.14 在三视图上作三维输入 287

8.2.15 扫描表示 288

8.3 图形输入模式 288

8.4 图形输出属性及其处理方法 290

8.4.1 直线的属性 290

8.4.2 多边形填色的属性 290

8.4.3 字符的属性 291

8.4.4 符号的属性 291

8.4.5 属性的组合控制 291

8.4.6 属性的查询 292

8.5 设计人机图形交互的一般原则 292

8.5.1 简单易学 292

8.5.2 提供反馈 292

8.5.3 出错处理 293

8.5.4 设计的一致性 293

8.5.5 可扩充性 293

8.6 交互技术应用实例 293

8.6.1 界面设计 293

8.6.2 结构设计 294

8.6.3 程序实现 295

8.6.4 程序小结 295

8.7 本章小结 295

8.8 练习与思考 296

8.9 参考文献 296

第9章 真实感图形的显示 297

9.1 消隐处理 298

9.1.1 消隐的基础知识 298

9.1.2 常用的消隐方法 298

9.2 光照模型及浓淡处理 305

9.2.1 漫射光照明 305

9.2.2 点光源照明和镜面反射 306

9.2.3 浓淡形成算法 308

9.2.4 整体光照明模型 308

9.3 计算机色彩的构成 310

9.4 透明 312

9.5 阴影 312

9.6 纹理 313

9.7 三维真实感图形显示 314

9.7.1 多面体的仿真显示 314

9.7.2 曲面的仿真显示 315

9.7.3 视线投射算法 315

9.8 真实感图形显示技术应用实例 316

9.8.1 光照模型实例 316

9.8.2 阴影模型实例 320

9.8.3 纹理模型实例 323

9.9 本章小结 327

9.10 习题与思考 327

9.11 参考文献 327

第10章 曲线与曲面 328

10.1 曲线的产生 328

10.1.1 DDA曲线生成算法 328

10.1.2 内插法 331

10.2 自由曲线 338

10.2.1 三次参数样条曲线段 338

10.2.2 三次Bézier曲线段 342

10.2.3 三次B样条曲线段 345

10.2.4 NURBS曲线 350

10.3 曲面 350

10.3.1 Coons曲面 350

10.3.2 Bézier曲面 352

10.3.3 B样条曲面 353

10.3.4 特殊曲面的生成 354

10.4 曲线与曲面实例 355

10.4.1 曲线DDA算法实例 355

10.4.2 Bézier曲面算法实例 355

10.5 本章小结 358

10.6 习题与思考 358

第11章 实体建模 359

11.1 实体的表示 360

11.1.1 参考坐标系 360

11.1.2 元素的定义 361

11.1.3 常用的形体表示方式 363

11.2 二维图形数据结构 369

11.2.1 数据的逻辑结构 369

11.2.2 数据的物理结构 370

11.3 三维形体数据结构 370

11.4 实体建模实例 373

11.4.1 实例程序功能与设计 373

11.4.2 详细设计与实现效果 373

11.5 本章小结 378

11.6 习题与思考 378

第12章 计算机动画技术简介 379

12.1 动画技术的发展与分类 379

12.1.1 动画技术的发展历程 379

12.1.2 动画的种类划分 380

12.2 计算机动画制作的关键技术和技巧 381

12.2.1 制作动画的基本步骤 381

12.2.2 关键帧动画 382

12.2.3 渐变和变形物体动画 383

12.2.4 形状过渡 385

12.2.5 过程动画 385

12.2.6 人体动画与关节动画 386

12.2.7 运动捕获技术 386

12.2.8 设定运动路径 387

12.2.9 换页法 387

12.2.10 位图运算法 387

12.3 计算机动画的实现技术 388

12.3.1 动画播放 388

12.3.2 利用C语言中getimage()和putimage()函数实现动画 389

12.3.3 多重屏幕页 389

12.4 程序举例 390

12.4.1 利用C语言编程实现动画 390

12.4.2 利用网页动画制作软件Flash直接生成网页动画 391

12.5 计算机动画发展的未来 391

12.6 本章小结 392

12.7 习题与思考 393

第13章 简单图形系统的实现 394

13.1 画板系统的需求分析 395

13.2 设计考虑 395

13.2.1 设计思路 395

13.2.2 设计层次 396

13.3 界面设计 397

13.4 类的设计 399

13.4.1 图形类 400

13.4.2 CShapeManager类 423

13.4.3 CHistory类 432

13.4.4 对一些自动生成类的介绍 434

13.5 三维图形系统实例 440

13.5.1 物体及场景的绘制 441

13.5.2 鼠标交互技术 443

13.6 图形系统设计的一般原则 445

13.7 习题与思考 446

第14章 虚拟现实与可视化技术 447

14.1 虚拟现实 447

14.1.1 虚拟现实采用的关键技术 447

14.1.2 虚拟现实系统的应用分类 448

14.1.3 虚拟现实的应用前景 449

14.2 科学计算可视化 451

14.2.1 可视化的主要特点及应用 451

14.2.2 三维可视化技术 453

14.2.3 矢量场可视化的研究 453

14.3 虚拟现实编程实例——虚拟生活小区 455

14.3.1 虚拟现实造型语言 455

14.3.2 实例介绍 458

14.4 本章小结 466

14.5 习题与思考 467

14.6 参考文献 467

第15章 立体显示技术 468

15.1 立体显示研究背景及基本概念 468

15.1.1 立体显示的基本概念 468

15.1.2 电视与显示器的变革 468

15.1.3 立体显示产品与研究现状 469

15.2 立体视觉基本原理 470

15.2.1 视差 470

15.2.2 立体感原理与立体成像系统的任务 470

15.3 立体显示技术与思想综述 471

15.3.1 立体显示的分类 471

15.3.2 时间复用的显示方式 471

15.3.3 同步显示方式 471

15.3.4 立体显示系统的组成 471

15.3.5 体视显示方式 472

15.3.6 自体视显示方式 472

15.4 立体图像的获取 476

15.4.1 用立体摄像机对拍摄立体图像 476

15.4.2 用深度摄像机拍摄立体图像 477

15.4.3 通过平面图像生成立体图像 478

15.5 立体显示技术所需要的编码技术 478

15.5.1 基于视差和深度的编码 478

15.5.2 混合分辨率编码 479

15.5.3 多视点编码 479

15.6 立体视频在Internet上的传输 479

15.7 立体显示技术展望及应用 480

15.7.1 立体显示技术的发展方向 480

15.7.2 立体显示技术的潜在应用 480

15.8 本章小结 481

15.9 习题与思考 481

15.10 参考文献 482

附录A 空间与矩阵概念 483

A1 空间 483

A1.1 标量 483

A1.2 向量空间 483

A1.3 仿射空间 485

A1.4 欧几里得空间 486

A1.5 投影 487

A1.6 Gram-Schmidt正交化 487

A1.7 参考书目 488

A2 矩阵 488

A2.1 定义 488

A2.2 矩阵运算 489

A2.3 行矩阵与列矩阵 489

A2.4 秩 490

A2.5 表示法的变化 490

A2.6 叉积 491

A2.7 特征值和特征向量 492

A2.8 参考书目 493

附录B 动画制作综合实例之摔跤游戏的制作 494

B.1 游戏功能描述 494

B.2 设计思路 495

B.3 详细设计与实现概述 496

B.3.1 菜单模块的实现 496

B.3.2 界面安排与绘制模块的实现 497

B.3.3 声音处理模块的实现 501

B.3.4 游戏信息、摔跤相关知识、帮助模块的实现 501

B.3.5 保存玩家分数模块的实现 502

B.3.6 游戏程序控制模块的实现 502

B.4 总结与延伸 507

参考文献 509

图形学概念索引 510