《三维图形、动画编程实例》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:侯阳,迪克编
  • 出 版 社:北京:海洋出版社
  • 出版年份:1993
  • ISBN:7502737960
  • 页数:526 页
图书介绍:

简介 1

目录 1

第一部分 通用例程 6

第一章 模块简介 6

1.1 头文件 6

1.1.1 DEFS.H 6

1.1.2 GLOBALS.H 7

1.1.3 MATHB.H 7

1.1.4 GRAPHB.H 9

1.2 编译模块 10

第二章 数学模块 11

2.1.2 CosD和SinD 24

2.1.3 Power 24

2.1.1 Radians和Degrees 24

2.1 数值函数 24

2.1.4 Log 25

2.1.5 Exp10 25

2.1.6 Sign和IntSign 25

2.1.7 IntSqrt 25

2.1.8 IntPower 26

2.1.9 MIN和MAX 26

2.1.10 MIN3和MAX3 26

2.1.11 MIN4和MAX4 26

2.2 矢量和矩阵例程 27

2.2.1 Vec和VecInt 27

2.2.2 UnVec和UnVecInt 27

2.2.3 VecDot 27

2.2 4 VecCross 28

2.2.9 VecAdd 29

2.2.8 VecSub和VecSubInt 29

2.2.5 VecLen 29

2.2.6 VecNormalize 29

2.2.7 VecMatxMult 29

2.2.10 VecAdd3 30

2.2.11 VecCopy和VecCopyInt 30

2.2.12 VecLinComb 30

2.2.13 VecScalMult,VecScalMultI和VecScalMutlInt 30

2.2.14 VecAddScalMult 30

2.2.15 VecNull和VecNullInt 30

2.2.16 VecElemMult 31

2.2.17 VecMin和VecMax 31

2.2.18 VecNcgate 31

2.3 关系变换例程 31

2.3.1 ZeroMatrix 31

2.3.4 Rotate3D 32

2.3.2 Translate3D 32

2.3.3 Scale3D 32

2.3.5 Multiply3DMatrices 33

2.3.6 MatCopy 33

2.3.7 PrepareMatrix 33

2.3.8 PrepareInvMatrix 34

2.3.9 Transform 34

2.4 伪随机数生成 34

2.4.1 InitRand 34

2.4.2 Rand 34

2.4.3 RandInt 34

3.1.3 Pre_Cale 35

3.1.2 Calc_Offsets 35

3.1.1 Scal_Mode 35

第三章 图形界面模块 35

3.1 基本图形函数 35

3.1.4 Plot 36

3.1.5 Clear_Palette 36

3.1.6 Set_Palette 36

3.1.7 Init_Palette 36

3.1.8 Init_Palette_2 37

3.1.9 Cycle_Palctte 37

3.1.10 Swap 37

3.1.11 Circle 37

3.1.12 Draw 38

3.1.13 Init_Graphics 38

3.1.14 Set_Graphics_Mode 38

3.2.1 Init_Plotting 39

3.2.3 Map_Coordinates 39

3.2.2 Init_Perspective 39

3.1.15 Wait_For_Key 39

3.2 三维画图例程 39

3.1.17 Title 39

3.1.16 Exit_Graphies 39

3.2.4 Cartesian_Plot_3D 40

3.2.5 Cylindrical_Piot_3D 40

3.2.6 Spherical_Plot_3D 41

3.2.7 Draw_Line_3D 41

3.3 像素例程 41

3.3.1 Put_Pixel 41

3.4.1 Put_Axis_And_Palette 42

3.4.2 Display_Axis 42

3.4 坐标轴和调色板例程的建立 42

3.2.2 Get_Pixel 42

3.4.3 Display_Palette 43

3.4.4 Axis_And_Palette 43

第四章 使用模块 58

4.1 三维迭代功能系统程序 58

4.1.1 3D-AVR.C IFS程序 58

4.1.2 3D-IFS.C IFS程序 65

4.2 彩和等离子体生成程序 67

4.3 三维轨道模拟程序 71

4.4 一个递归的植物和树生成程序 79

4.5 线性单元自动程序 81

4.6 平面单元自动程序 89

4.7 生命单元自动程序 89

5.1 如何构造对象 90

第五章 模型理论和数据库结构 90

第二部分 三维模型 90

5.2 有关坐标系统的注释 94

5.2.1 浮点和整数坐标 94

5.3 创建对象 94

5.4 声明Vertex和Facet数组 95

5.5 加载和保存数组数据 95

5.6 手工生成数据文件 96

第六章 增加对象到景象 98

6.1 对象数据库结构 98

6.2 初始化和加载对象缓冲区 99

6.3 增加边缘反射器到景象 100

6.4 从磁盘文件增加对象 100

第七章 排序和显示对象 102

7.1 排序对象 102

7.2 在屏幕上画对象 103

7.3 显示对象及其反射 104

7.4 前面是什么 105

第八章 模型建立程序和创建动画 106

8.1 关系变换 106

8.2 观察点和光源矢量 106

8.3 平面法线矢量 107

8.4 光照模型 107

8.5 表面可见性测试 108

8.6 镜像屏幕缓冲区 108

8.7 多边形表面填充例程 109

8.8 写到临时文件 110

8.9 3DMODEL.C程序 110

第九章 创建对象数据库 139

9.1 增加顶点 141

9.3 用MAKEOBJS.C创建对象 142

9.2 初始化顶点数据库生成程序 142

9.4 生成锥面和金字塔数据文件 145

9.5 生成柱面数据文件 148

9.6 生成球面数据文件 150

9.7 生成环面数据文件 153

9.8 生成旋转面数据文件 155

9.9 生成栅格数据文件 160

第十章 编辑景象文件 164

10.1 生成动画脚本 164

10.1.1 创建景象文件 165

10.1.2 加载已有景象文件 165

10.1.3 编辑景象文件 165

10.1.4 保存景象文件到磁盘 165

10.2.1 SPHRPLAN.SCN 166

10.2 动画脚本 166

10.2.2 SPHRWALL.SCN 176

10.2.3 SPINTOR.SCN 198

10.2.4 SOLOFREVSCN 215

第三部分 光线跟踪 263

第十一章 光线跟踪理论 263

11.1 光线跟踪基础 263

11.2 计算光线/对象相交 265

11.3 面相交 265

11.4 二次表面相交 266

11.5 平面对象相交 266

11.6 平行四边形相交 267

11.7 光线跟踪算法 268

12.2 编排约束条件 271

12.1 定义景象:RT文件 271

第十二章 光线跟踪程序 271

12.3 加载RT文件 273

12.4 光线跟踪程序 277

12.5 常量和变量 277

12.6 main程序 278

12.7 初始化噪音函数 279

12.8 扫描景象 279

12.9 跟踪光线 280

12.10 确定颜色 281

12.11 创建纹理表面 282

12.12 完整光线跟踪 282

第十三章 用光线跟踪程序创建图像和动画 345

13.1 光线跟踪动画文件创建程序 346

13.2 BOUNCE.C 346

13.2.1 BOUNCE.C 347

13.2.2 BOUNCE2.C 351

13.2.3 DNA.C 355

13.2.4 ENGINE.C 362

13.2.5 NEWTCRAD.C 369

13.2.6 ORBIT.C 376

13.2.7 ROBOT.C 382

13.2.8 SPIN2.C 387

13.2.9 WAVES.C 392

13.3 光线跟踪的单帧重放 395

13.3.1 DIE CARD.C 395

13.3.2 CANNON C 405

13.3.3 DESERT.C 413

13.3.4 MOUNT.C 417

13.3.5 DESK.C 427

13.3.6 PIANO.C 434

13.3.7 POOLTABL.C 442

13.3.8 TETRA.C 451

13.3.9 TETSPHR2.C 459

13.3.10 WAVYORB C 465

第十四章 动画技术 469

14.1 计算机动画和手工动画 469

14.2 动画方法 470

14.3 平滑技术 470

第十五章 动画程序 471

15.1 ANIMATE C变量 471

15.2.4 Set_Palette 472

15.2.3 Plot 472

15.2.6 Exit_Graphics 472

15.2.5 Init_Graphics 472

15.2.1 Set_Mode 472

15.2 ANIMATE C的函数 472

15.2.2 Init_Screen 472

15.2.7 Set_Text_Screen 473

15.2.8 Allocate_Memory 473

15.2.9 Free_Memory 473

15.2.10 Max 473

15.2.11 Get_Key 473

15.2.12 Get_ANI_File_Name 473

15.2.13 Init_Cells 473

15.2.18 V_Line 474

15.2.22 Animate 474

15.2.21 Init_D_Meter 474

15.2.20 Update_D_Meter 474

15.2.19 Draw_D_Meter 474

15.2.17 H_Line 474

15.2.16 Find_Brightest_Color 474

15.2.15 Do_Title 474

15.2.14 Init_Window 474

15.2.23 Load_Cells 475

15.3 ANIMATE C控制 476

15.4 运行ANIMATE.C 476

第五部分 彩色处理 488

第十六章 用彩色频率分布处理程序减少颜色 488

16.1 彩色频率分布处理程序 488

16.2 PROCESS.C程序和PROCESS.H头文件 489

16.2.1 ANI文件格式 490

16.2.2 DISPRGB.C程序 490

16.2.3 关于图形卡 490

附录A 数学和图形模块函数 503

附图 511