
本书全面系统地介绍了计算机辅助设计(CAD)技术的基础知识及应用。内容包括计算机辅助设计技术的初步知识、计算机图形学的基本概念、图形几何变换和二维图形生成技术、交互与接口技术、三维图形显示和产品造型基本原理与实现方法,并结合流行软件,介绍了实用二维、三维绘图软件的功能和使用方法,在本书附录中还提供了教学实验指示书,在配书光盘中提供了教学实验工作平台软件包。本书选材深度和广度适当,既包含经典的理论基础知识,也反映了近年来计算机辅助设计技术发展的新动向。本书面向的主要读者为高等院校理工科学生,同时也适合工科硕士研究生阅读,还可作为已在工作岗位的设计师、工程师及技术人员的培训教材。 本书配有教师用电子教案。
计算机辅助设计(computeraided design,CAD)是计算机最早的、最重要的应用之一,也是计算机科学和技术发展最主要的推动力之一。半个世纪以来,伴随着人类社会科学技术发展史上的奇葩和硕果——计算机的产生、发展和成熟,计算机辅助设计技术也经历了产生、发展和成熟的过程。目前,计算机辅助设计已成为现代社会各行各业都不可缺少的技术基础和可持续发展的必要手段,并已创造出极其巨大的社会财富。理所当然地,“计算机辅助设计技术基础”这门课程作为理工科学生必修或选修的计算机技术基础课程,受到广大师生的高度重视,并已纳入高等院校计算机基础教育课程的范畴。十多年来,清华大学计算机科学与技术系每学期都开出面向全校本科生的“计算机辅助设计技术”课程,教学效果甚好,颇受欢迎。
为满足实际教学的迫切需要,我们立足于将本书作为理工科本科生学习计算机基础知识的主要教材之一,根据较准确而合理的教学定位要求,吸纳了近几年相关科学技术的新成果,结合长期教学所积累的实践经验,编写出这本教材。虽然本书面向的主要读者为理工科本科生,但也同时考虑到工科硕士生有关的教学需求。从近年来已广为重视的终身教育观念和我国推广CAD技术应用的实际要求出发,编写时还充分考虑了继续教育的需要,因此,本书也可作为培训已在工作岗位的设计师、工程师及技术人员的教材。“计算机辅助设计技术”课程是一门实用性很强的课程,对学生的实践动手能力应有所要求,为此本书附有上机实验指示书,并提供教学实验框架软件,可满足基本教学需要。
此外,还有必要指出,作为本科生的“计算机辅助设计技术”课程教学的主要参考书,本书的第5章、第6章及第7章有部分内容难度比较高,教学中可以适当降低要求,在课堂上也可以只作粗浅的介绍,或简略之。若选本书作为大专班课程教学参考书,实际教学内容更应有所调整,可完全精简掉三维真实感图形、参数造型以及OpenGL编程等难度比较高的内容。至于更广义的CAD技术知识,例如可视化技术、CIMS和PDM等,已超出本课程的教学要求,不必纳入本书,可参阅相关的专著。
为配合教学需要,在本书的配书光盘中提供了教学实验框架的软件,任课教师可根据具体情况选定题目作为课后作业,学生可直接利用光盘所提供的实验框架完成作业。
本书第1章由唐龙和许忠信编写;第2章由许忠信编写;第3章由徐玉华编写;第4章由许忠信、徐玉华编写;第5章由唐龙编写;第6章由孙延奎编写;第7章由徐玉华、许忠信和孙延奎编写;附录由徐玉华编写。全部书稿经集体讨论审定。限于作者水平、精力和时间,书中难免有疏漏或差错之处,恳请读者指正。
第1章CAD概论1
1.1CAD系统发展概况1
1.1.1什么是CAD技术1
1.1.2CAD技术的发展1
1.1.3CAD系统的分类5
1.1.4CAD系统的应用6
1.2CAD系统硬件基础7
1.2.1计算机主机7
1.2.2图形输入设备7
1.2.3图形显示设备10
1.2.4图形硬拷贝输出设备16
1.3CAD系统软件基础18
1.3.1CAD软件的技术特点19
1.3.2CAD软件对硬软件环境的要求19
1.3.3CAD系统中的软件20
1.4小结22
习题22
第2章图形变换23
2.1预备知识23
2.1.1世界坐标系和设备坐标系23
2.1.2矢量运算24
2.1.3矩阵运算24
2.1.4齐次坐标26
2.1.5仿射变换与几何不变性26
2.2窗口视图变换27
2.2.1窗口区和视图区27
2.2.2窗口视图变换27
2.2.3二维图形输出流水线28
2.3二维几何变换29
2.3.1几种基本的二维几何变换29
2.3.2二维几何变换的齐次坐标表示32
2.3.3二维几何变换的组合35
2.3.4二维变换矩阵的功能分块36
2.4三维几何变换37
2.4.1右手系与左手系37
2.4.2基本三维几何变换37
2.4.3三维几何变换的组合39
2.4.4三维变换矩阵的功能分块40
2.5二维裁剪41
2.5.1线段裁剪41
2.5.2多边形裁剪42
2.5.3字符裁剪43
2.6小结45
习题45
第3章二维图形生成技术47
3.1图素及其属性47
3.2常用直线图形生成算法49
3.2.1逐点比较法49
3.2.2数值微分法(DDA法)50
3.2.3布雷森汉姆(Bresenham)直线生成算法51
3.2.4常用直线图形生成举例52
3.3剖面线与填充56
3.3.1不含小岛的封闭多边形内画剖面线的矢量求交算法56
3.3.2含小岛的封闭多边形内画剖面线的矢量求交算法57
3.3.3像素区域填充算法58
3.3.4扫描线区域填充算法59
3.4字符及符号61
3.4.1概述61
3.4.2矢量汉字和矢量字符的存储与显示61
3.5二次曲线62
3.5.1圆弧和椭圆弧的拟合法62
3.5.2二次曲线的参数拟合法66
3.6自由曲线68
3.6.1曲线的光滑连接69
3.6.2抛物线参数样条曲线69
3.6.3Hermite曲线70
3.6.4贝塞尔(Bezier)曲线71
3.6.5B样条曲线75
3.7小结78
习题79
第4章交互技术与用户接口80
4.1交互技术80
4.1.1交互设备80
4.1.2交互任务82
4.1.3交互技术83
4.2用户接口84
4.3实际交互系统的构造86
4.3.1有关原则说明86
4.3.2交互式用户接口的实现88
4.4小结100
习题100
第5章三维图形显示101
5.1三维图形处理过程101
5.2投影变换103
5.2.1投影变换概述103
5.2.2透视投影105
5.2.3平行投影108
5.3观察空间的定义和转换113
5.3.1观察空间的定义113
5.3.2空间转换116
5.4三维裁剪123
5.5消隐技术124
5.5.1基本概念124
5.5.2深度缓存算法126
5.5.3扫描线算法127
5.6真实感图形生成技术129
5.6.1真实感图形129
5.6.2简单光反射模型130
5.6.3增量式光反射模型134
5.6.4整体光照模型136
5.6.5光线跟踪算法138
5.6.6反走样140
5.6.7阴影生成技术141
5.7小结142
习题142
第6章三维几何造型基础143
6.1概述143
6.2三维几何造型145
6.2.1线框模型145
6.2.2表面模型146
6.2.3实体模型157
6.2.4参数化几何造型165
6.3特征造型168
6.3.1特征造型的特点和作用168
6.3.2特征的定义169
6.3.3特征的分类170
6.3.4参数化特征造型171
6.4小结171
习题173
第7章计算机辅助设计常用软件介绍174
7.1AutoCAD 2000应用软件174
7.1.1AutoCAD 2000简介174
7.1.2二维图形的绘制177
7.1.3图形的编辑181
7.1.4尺寸标注185
7.1.5设计中心187
7.1.6图纸的布局与打印输出188
7.1.7三维图形的绘制190
7.23DS MAX R3使用指南200
7.2.13DS MAX R3概述200
7.2.23DS MAX R3主要术语和概念202
7.2.33DS MAX R3的建模211
7.2.43DS MAX R3的材质和贴图213
7.2.53DS MAX R3的灯光、摄像机与环境设定214
7.2.63DS MAX R3的动画215
7.2.73DS MAX R3的应用实例216
7.3OpenGL224
7.3.1OpenGL概述224
7.3.2OpenGL的基本操作225
7.3.3Windows系统下的OpenGL函数226
7.3.4OpenGL的基本程序结构227
7.3.5OpenGL的状态机制229
7.3.6OpenGL中的图元绘制230
7.3.7坐标变换233
7.3.8应用变换的一个实例239
7.3.9光照处理242
74小结245
附录A上机实验指示书246
附A.1实验内容和要求246
附A.2用C++语言编程246
附A.2.1上机环境简介246
附A.2.2用C语言编程上机题248
附A.2.3源程序中的作业环境及其他相关代码249
附A.2.4有关的CDC类中的成员函数251
附A.3交互技术和用户接口实验257
附A.3.1实验要求257
附A.3.2使用的函数补充说明258
参考文献261