第一章 实习导引 1
1.1 实习教程简介 1
1.2 实习要求 1
1.3 实习环境介绍 2
1.3.1 VC十+环境下实现图形显示 2
1.3.2 VC十+环境下画像素的方法 12
1.3.3 VC++中基本绘图函数 14
第二章 基本图形的生成 22
2.1 直线生成算法 22
2.1.1 产生直线的DDA算法 22
2.1.2 产生直线的Bresenham算法 23
2.2 圆的生成算法 24
2.2.1 产生圆的增量算法 24
2.2.2 产生圆的Bresenham算法 25
2.2.3 中点圆算法 25
2.3 椭圆生成算法 26
2.4 实例 27
第三章 区域填充 45
3.1 基于交点计算的多边形扫描线填充 45
3.2 边相关多边形扫描线填充 47
3.3 简单种子填充 51
3.4 扫描线种子填充 53
3.5 实例 54
第四章 图形变换 73
4.1 二维几何变换 74
4.2 三维几何变换 74
4.3 投影变换 75
4.4 实例 78
第五章 图形裁剪 84
5.1 二维线段裁剪 84
5.1.1 Cohen-Sutherland线段裁剪算法 84
5.1.2 梁友栋-Barsky直线裁剪算法 86
5.1.3 Nicholl-Lee-Nicholl(NLN)直线裁剪算法 88
5.1.4 凸多边形窗口对线段裁剪的Cyrus-Beck算法 90
5.2 二维多边形裁剪 92
5.2.1 凸多边形窗口对多边形裁剪的Sutherland-Hodgman算法 92
5.2.2 任意多边形窗口对多边形裁剪的Weiler-Atherton算法 94
5.3 字符串裁剪 95
5.4 三维Cohen-Sutherland直线裁剪算法 96
5.5 实例 97
第六章 曲线 103
6.1 拉格朗日插值曲线 103
6.2 三次样条曲线 106
6.3 Bezier曲线 109
6.3.1 Bezier曲线的定义及算法 109
6.3.2 Bezier曲线的几何作图法 110
6.4 B样条曲线 112
6.5 实例 114
第七章 交互技术 129
7.1 约束、网格及引力场技术 129
7.1.1 约束 129
7.1.2 网格 130
7.1.3 引力场 131
7.2 橡皮筋及拖动技术 131
7.3 拾取技术 132
7.4 实例 133
第八章 消隐 157
8.1 外法向量法消除隐藏线 157
8.2 深度缓冲区算法 160
8.3 深度排序算法(画家算法) 162
8.4 扫描线算法 163
8.5 区域细分算法 164
8.6 实例 166
附录一 C语言环境下画像素的方法 185
附录二 OpenGL环境下画图的方法 187
参考文献 192