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

  • 购买积分:13 如何计算积分?
  • 作  者:孔令德编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302243519
  • 页数:374 页
图书介绍:本书是为适应各类大学本科生学习《计算机图形学基础教程(Visual C++)》教材而编写的配套实验教程。

第一部分 教学实验实验任务书 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 绘制任意斜率的直线段 27

2.1 实验目的 27

2.2 实验要求 27

2.3 效果图 27

2.4 实验准备 28

2.5 实验步骤 28

2.5.1 定义颜色类CRGB 28

2.5.2 设计CLine直线类 31

2.5.3 消息映射 36

2.5.4 写出实验报告 40

2.6 思考与练习 40

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

3.1 实验目的 44

3.2 实验要求 44

3.3 效果图 44

3.4 实验准备 45

3.5 实验步骤 45

3.5.1 人机交互技术 45

3.5.2 双缓冲技术 47

3.5.3 绘制多边形 48

3.5.4 设计CPtrArray类 48

3.5.5 有效边表填充算法 49

3.5.6 写出实验报告 57

3.6 思考与练习 57

实验4 二维几何变换 60

4.1 实验目的 60

4.2 实验要求 60

4.3 效果图 60

4.4 实验准备 61

4.5 实验步骤 61

4.5.1 静态切分视图框架 61

4.5.2 设计左窗格视图 64

4.5.3 设计CTestDoc类 68

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

4.5.5 设计二维几何变换类 69

4.5.6 设计双缓冲 73

4.5.7 读入图形顶点 74

4.5.8 绘制图形 74

4.5.9 碰撞检测 75

4.5.10 定时器函数 75

4.5.11 禁止背景刷新函数 76

4.5.12 写出实验报告 76

4.6 思考与练习 76

实验5 直线段裁剪 79

5.1 实验目的 79

5.2 实验要求 79

5.3 效果图 79

5.4 实验准备 80

5.5 实验步骤 80

5.5.1 定义CP2类 80

5.5.2 OnDrw()函数 81

5.5.3 绘制裁剪窗口 81

5.5.4 鼠标左键按下函数 82

5.5.5 鼠标移动函数 82

5.5.6 编码函数 83

5.5.7 裁剪函数 84

5.5.8 写出实验报告 86

5.6 思考与练习 86

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

6.1 实验目的 88

6.2 实验要求 88

6.3 效果图 88

6.4 实验准备 89

6.5 实验步骤 89

6.5.1 立方体数学模型 89

6.5.2 三维变换 90

6.5.3 正交投影 92

6.5.4 设计三维点类 92

6.5.5 定义三维变换类 94

6.5.6 定义点表 99

6.5.7 定义面表 99

6.5.8 绘制立方体线框模型 100

6.5.9 键盘控制 100

6.5.10 动画控制 101

6.5.11 写出实验报告 103

6.6 思考与练习 103

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

7.1 实验目的 105

7.2 实验要求 105

7.3 效果图 105

7.4 实验准备 106

7.5 实验步骤 106

7.5.1 透视投影变换的实现 108

7.5.2 定义点表 109

7.5.3 定义面表 110

7.5.4 绘制立方体 110

7.5.5 缩小立方体 111

7.5.6 放大立方体 111

7.5.7 写出实验报告 111

7.6 思考与练习 111

实验8 动态三视图 114

8.1 实验目的 114

8.2 实验要求 114

8.3 效果图 114

8.4 实验准备 115

8.5 实验步骤 115

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

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

8.5.3 建立齐次三维点类 116

8.5.4 建立表面类 118

8.5.5 内存复制 119

8.5.6 三视图变换矩阵 120

8.5.7 矩阵相乘函数 122

8.5.8 绘制多面体斜等测图 122

8.5.9 绘制三视图 124

8.5.10 写出实验报告 124

8.6 思考与练习 124

实验9 动态绘制Bezier曲线 127

9.1 实验目的 127

9.2 实验要求 127

9.3 效果图 127

9.4 实验准备 128

9.5 实验步骤 128

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

9.5.2 德卡斯特里奥函数 129

9.5.3 绘制Bezier曲线 130

9.5.4 绘制控制多边形 130

9.5.5 鼠标左键按下函数 131

9.5.6 鼠标右键按下函数 132

9.5.7 鼠标移动函数 132

9.5.8 写出实验报告 132

9.6 思考与练习 133

实验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雪花 144

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 设计光源类CLight 205

15.5.3 设计材质类CMaterial 207

15.5.4 设计光照类CLighting 208

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

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

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

15.5.8 设计变换类 212

15.5.9 写出实验报告 217

15.6 思考与练习 217

实验16 球体Gouraud光照模型 220

16.1 实验目的 220

16.2 实验要求 220

16.3 效果图 220

16.4 实验准备 221

16.5 实验步骤 221

16.5.1 双线性光强插值模型 221

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

16.5.3 读入顶点表 222

16.5.4 读入面表 223

16.5.5 计算面片顶点的颜色 224

16.5.6 绘制球面 224

16.5.7 写出实验报告 226

16.6 思考与练习 226

实验17 球体Phong光照模型 228

17.1 实验目的 228

17.2 实验要求 228

17.3 效果图 228

17.4 实验准备 229

17.5 实验步骤 229

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

17.5.2 修改CAET类 230

17.5.3 修改CZBuffer类 230

17.5.4 光照环境初始化 239

17.5.5 绘制球面函数 240

17.5.6 写出实验报告 241

17.6 思考与练习 241

实验18 立方体纹理映射 244

18.1 实验目的 244

18.2 实验要求 244

18.3 效果图 244

18.4 实验准备 245

18.5 实验步骤 245

18.5.1 定义CFace类 245

18.5.2 读入位图纹理 246

18.5.3 定义面表 247

18.5.4 绘制立方体 249

18.5.5 填充立方体表面 249

18.5.6 写出实验报告 252

18.6 思考与练习 252

第二部分 课程设计课程设计任务书 257

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

Ⅰ.1 设计目标 259

Ⅰ.2 设计效果 259

Ⅰ.3 总体设计 261

Ⅰ.4 类的设计 262

Ⅰ.5 视图的设计 278

Ⅰ.6 结论 289

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

Ⅱ.1 设计目标 291

Ⅱ.2 设计效果 291

Ⅱ.3 总体设计 293

Ⅱ.4 类的设计 294

Ⅱ.5 视图的设计 297

Ⅱ.6 结论 306

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

Ⅲ.1 设计目标 308

Ⅲ.2 设计效果 308

Ⅲ.3 总体设计 310

Ⅲ.4 类的设计 314

Ⅲ.5 视图的设计 334

Ⅲ.6 结论 343

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

Ⅳ.1 设计目标 345

Ⅳ.2 设计效果 345

Ⅳ.3 总体设计 347

Ⅳ.4 类的设计 347

Ⅳ.5 视图的设计 353

Ⅳ.6 结论 356

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

Ⅴ.1 设计目标 358

Ⅴ.2 设计效果 359

Ⅴ.3 总体设计 359

Ⅴ.4 类的设计 361

Ⅴ.5 视图的设计 369

Ⅴ.6 结论 373

参考文献 374