《计算机图形学实验及课程设计 Visual C++版 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:孔令德,康凤娥著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302489498
  • 页数:378 页
图书介绍:本书提供了18个实验项目和5个课程设计项目,可以满足18次实验及5周课程设计任务。实验项目编排上由浅入深,通过定义基础类、直线类、变换类、填充类、光照类,最终构造了三维动态光照场景。

第一部分 教学实验 3

实验任务书 3

实验1绘制金刚石图案 4

1.1实验目的 4

1.2实验要求 4

1.3效果图 4

1.4实验准备 5

1.5实验步骤 5

1.5.1创建Test工程实验框架 5

1.5.2绘制金刚石图案 15

1.5.3写出实验报告 24

1.6思考与练习 24

实验2绘制任意斜率的直线段 28

2.1实验目的 28

2.2实验要求 28

2.3效果图 28

2.4实验准备 29

2.5实验步骤 29

2.5.1定义颜色类CRGB 29

2.5.2设计CLine直线类 32

2.5.3消息映射 37

2.5.4写出实验报告 41

2.6思考与练习 41

实验3交互式绘制多边形 45

3.1实验目的 45

3.2实验要求 45

3.3效果图 45

3.4实验准备 46

3.5实验步骤 46

3.5.1人机交互技术 46

3.5.2双缓冲技术 48

3.5.3绘制多边形 49

3.5.4设计CPtrArray类 49

3.5.5有效边表填充算法 50

3.5.6写出实验报告 58

3.6思考与练习 58

实验4二维几何变换 61

4.1实验目的 61

4.2实验要求 61

4.3效果图 61

4.4实验准备 62

4.5实验步骤 62

4.5.1静态切分视图框架 62

4.5.2设计左窗格视图 65

4.5.3设计CTestDoc类 69

4.5.4设计包含齐次坐标的二维点类CP2 69

4.5.5设计二维几何变换类 70

4.5.6设计双缓冲 74

4.5.7读入图形顶点 75

4.5.8绘制图形 75

4.5.9碰撞检测 76

4.5.10定时器函数 76

4.5.11禁止背景刷新函数 77

4.5.12写出实验报告 77

4.6思考与练习 77

实验5直线段裁剪 80

5.1实验目的 80

5.2实验要求 80

5.3效果图 80

5.4实验准备 81

5.5实验步骤 81

5.5.1定义CP2类 81

5.5.2 OnDrw()函数 82

5.5.3绘制裁剪窗口 82

5.5.4鼠标左键按下函数 83

5.5.5鼠标移动函数 83

5.5.6编码函数 84

5.5.7裁剪函数 85

5.5.8写出实验报告 87

5.6思考与练习 87

实验6立方体线框模型正交投影 89

6.1实验目的 89

6.2实验要求 89

6.3效果图 89

6.4实验准备 90

6.5实验步骤 90

6.5.1立方体数学模型 90

6.5.2三维变换 91

6.5.3正交投影 93

6.5.4设计三维点类 93

6.5.5定义三维变换类 95

6.5.6定义点表 100

6.5.7定义面表 100

6.5.8绘制立方体线框模型 101

6.5.9键盘控制 101

6.5.10动画控制 102

6.5.11写出实验报告 104

6.6思考与练习 104

实验7立方体线框模型透视投影 106

7.1实验目的 106

7.2实验要求 106

7.3效果图 106

7.4实验准备 107

7.5实验步骤 107

7.5.1透视投影变换的实现 109

7.5.2定义点表 110

7.5.3定义面表 111

7.5.4绘制立方体 111

7.5.5缩小立方体 112

7.5.6放大立方体 112

7.5.7写出实验报告 112

7.6思考与练习 112

实验8动态三视图 115

8.1实验目的 115

8.2实验要求 115

8.3效果图 115

8.4实验准备 116

8.5实验步骤 116

8.5.1建立多面体的数据结构 116

8.5.2创建2×2静态切分窗格 117

8.5.3建立齐次三维点类 117

8.5.4建立表面类 119

8.5.5内存复制 120

8.5.6三视图变换矩阵 122

8.5.7矩阵相乘函数 123

8.5.8绘制多面体斜等测图 123

8.5.9绘制三视图 125

8.5.10写出实验报告 125

8.6思考与练习 126

实验9交互绘制Bezier曲线 128

9.1实验目的 128

9.2实验要求 128

9.3效果图 128

9.4实验准备 129

9.5实验步骤 129

9.5.1 Bezier曲线的分割递推德卡斯特里奥算法 129

9.5.2德卡斯特里奥函数 130

9.5.3绘制Bezier曲线 131

9.5.4绘制控制多边形 131

9.5.5鼠标左键按下的函数 132

9.5.6鼠标右键按下的函数 133

9.5.7鼠标移动的函数 133

9.5.8写出实验报告 133

9.6思考与练习 134

实验10交互绘制三次B样条曲线 135

10.1实验目的 135

10.2实验要求 135

10.3效果图 135

10.4实验准备 136

10.5实验步骤 136

10.5.1三次B样条曲线的几何性质 136

10.5.2绘制控制多边形 137

10.5.3绘制三次B样条曲线 138

10.5.4鼠标移动函数 138

10.5.5写出实验报告 139

10.6思考与练习 139

实验11旋转的Koch雪花 142

11.1实验目的 142

11.2实验要求 142

11.3效果图 142

11.4实验准备 143

11.5实验步骤 143

11.5.1 Koch曲线的生成元 143

11.5.2绘制Koch雪花 145

11.5.3双缓冲函数 145

11.5.4分形函数 146

11.5.5 Koch函数 147

11.5.6写出实验报告 147

11.6思考与练习 147

实验12颜色渐变立方体 150

12.1实验目的 150

12.2实验要求 150

12.3效果图 150

12.4实验准备 151

12.5实验步骤 151

12.5.1定义矢量类CVector 151

12.5.2定义颜色点类 154

12.5.3定义点表 155

12.5.4定义面表 156

12.5.5绘制物体 156

12.5.6颜色渐变有效边表填充算法 157

12.5.7写出实验报告 165

12.6思考与练习 165

实验13地理划分线框球 169

13.1实验目的 169

13.2实验要求 169

13.3效果图 169

13.4实验准备 170

13.5实验步骤 170

13.5.1球体几何模型 170

13.5.2绘制球体 173

13.5.3写出实验报告 175

13.6思考与练习 175

实验14交叉条消隐 180

14.1实验目的 180

14.2实验要求 180

14.3效果图 180

14.4实验准备 181

14.5实验步骤 181

14.5.1交叉条数学模型 181

14.5.2叠加条数学模型 183

14.5.3消隐算法 184

14.5.4定义深度缓冲点表 185

14.5.5定义深度排序点表 186

14.5.6设置坐标系 187

14.5.7禁用深度缓冲绘制交叉条 187

14.5.8启用深度缓冲绘制交叉条 188

14.5.9深度排序函数 188

14.5.10设置背景色为黑色 189

14.5.11深度缓冲消隐算法 189

14.5.12写出实验报告 199

14.6思考与练习 199

实验15立方体光照模型 201

15.1实验目的 201

15.2实验要求 201

15.3效果图 201

15.4实验准备 202

15.5实验步骤 202

15.5.1简单光照模型 202

15.5.2设计光源类CLightSource 205

15.5.3设计材质类CMaterial 207

15.5.4设计光照类CLighting 208

15.5.5设计默认光源颜色和材质颜色 211

15.5.6设计红色、绿色和蓝色光源菜单项 211

15.5.7设计红宝石、绿宝石和蓝宝石材质菜单项 212

15.5.8设计变换类 213

15.5.9写出实验报告 217

15.6思考与练习 217

实验16球体Gouraud光照模型 221

16.1实验目的 221

16.2实验要求 221

16.3效果图 221

16.4实验准备 222

16.5实验步骤 222

16.5.1双线性光强插值模型算法 222

16.5.2设置光源颜色和材质颜色 222

16.5.3读入网格小面表 223

16.5.4读入网格顶点表 224

16.5.5计算面片顶点的颜色 225

16.5.6绘制球面 226

16.5.7写出实验报告 227

16.6思考与练习 227

实验17球体Phong光照模型 229

17.1实验目的 229

17.2实验要求 229

17.3效果图 229

17.4实验准备 230

17.5实验步骤 230

17.5.1 Phong双线性法矢插值模型 230

17.5.2修改CAET类 231

17.5.3修改CZBuffer类 231

17.5.4光照环境初始化 240

17.5.5绘制球面函数 241

17.5.6写出实验报告 242

17.6思考与练习 242

实验18立方体纹理映射 245

18.1实验目的 245

18.2实验要求 245

18.3效果图 245

18.4实验准备 246

18.5实验步骤 246

18.5.1定义CFacet类 246

18.5.2读入位图纹理 247

18.5.3定义面表 248

18.5.4绘制立方体 250

18.5.5填充立方体表面 250

18.5.6写出实验报告 253

18.6思考与练习 253

第二部分 课程设计 259

课程设计任务书 259

课程设计Ⅰ基本图元光栅扫描演示系统 261

Ⅰ.1设计目标 261

Ⅰ.2设计效果 261

Ⅰ.3总体设计 263

Ⅰ.4类的设计 264

Ⅰ.5视图的设计 281

Ⅰ.6结论 293

课程设计Ⅱ 递归动态球体演示系统 294

Ⅱ.1设计目标 294

Ⅱ.2设计效果 294

Ⅱ.3总体设计 296

Ⅱ.4类的设计 297

Ⅱ.5视图的设计 300

Ⅱ.6结论 309

课程设计Ⅲ圆环动态纹理演示系统 311

Ⅲ.1设计目标 311

Ⅲ.2设计效果 311

Ⅲ.3总体设计 313

Ⅲ.4类的设计 317

Ⅲ.5视图的设计 337

Ⅲ.6结论 346

课程设计Ⅳ动态光源演示系统 348

Ⅳ.1设计目标 348

Ⅳ.2设计效果 348

Ⅳ.3总体设计 350

Ⅳ.4类的设计 350

Ⅳ.5视图的设计 356

Ⅳ.6结论 360

课程设计Ⅴ 3DS接口演示系统 361

Ⅴ.1设计目标 361

Ⅴ.2设计效果 362

Ⅴ.3总体设计 362

Ⅴ.4类的设计 364

Ⅴ.5视图的设计 372

Ⅴ.6结论 376

参考文献 378