第一章 计算机图形设备、系统和应用计算机图形学是研究怎样利用计算机来显示、生成和处理(也可以加入输入、输出)图形的原理、方法和技术的一门学科。
点阵法是用具有颜色信息的点阵来表示图形的一种方法,它强调图形由哪些点组成,并具有什么灰度或色彩。
参数法是以计算机中所记录图形的形状参数与属性参数来表示图形的一种方法。
通常把参数法描述的图形叫做图形(Graphics)把点阵法描述的图形叫做图象(Image)3、计算机图形学相关的学科:
计算机图形学试图从非图象形式的数据描述来生成(逼真的)图象。
数字图象处理旨在对图象进行各种加工以改善图象的视觉效果。
计算机视觉是研究用计算机来模拟生物外显或宏观视觉功能的科学和技术。
计算计图形学软件系统的种类:
用现有的某种计算机语言写成的子程序包;
扩充某种计算机语言,使其具有图形生成和处理功能;
专用的图形系统。
输入设备:鼠标器、光笔、触摸屏、坐标数字化仪、图形扫描仪鼠标器:光电式、机械式和光机式,将鼠标器的25针D型阴极插座与计算机的一个串行通信口,com1或com2,即rs232插座相连。
触摸屏:电阻式、电容式、红外线式(容易给人突发的感觉)、声表面波式,其中声表面波式性能较好,电阻式和电容式可能因为屏幕灰尘、元件失效而出错。
坐标数字化仪的性能参数为:最大有效幅面,数字化的速率,最高分辨率。
图形扫描仪的性能参数为:幅面、分辨率(单位:dpi-每英寸取样的点数)、支持的颜色。
显示设备:阴极射线管、等离子显示器、液晶显示器。
CRT包括:电子枪(灯丝、阴极、控制栅、加速电极、聚焦系统)、偏转系统、荧光屏三部分。
CRT技术指标:分辨率(在水平和垂直方向上单位长度能识别的最大光点数,光点称为象素)、显示速度(一般要大于30帧/秒人眼才不感到闪烁)。
电子枪的作用:利用电子枪产生高速的经过聚焦的电子束。
图形绘制设备:又称图形硬拷贝设备,包括打印机和绘图仪。
打印机分为撞击式的和非撞击式的,分别包括针式打印机和喷墨打印机、激光打印机。
计算机图形系统起码应该具有计算、存储、对话、输入、输出等五方面的功能。
虚拟现实系统:又称为虚拟现实环境,是指用计算机生成一个实时三维空间。用户在其中可以“自由地”运动,随意观察周围的景物,并可以通过一些特殊的设备与虚拟物体进行交互操作。
计算帧缓冲存储器的容量:
分辨率:800*600
颜色数:256
颜色插找表:10位可以计算得:
颜色位面数:log2256
同时显示的颜色数:210
容量:800*600*log2256位(注意单位:字节、千字节等)
第二章 计算机图形的标准化和窗口系统计算机图形的标准通常是指图形系统及相关应用系统中各界面之间进行数据传送和通信的接口标准,以及供图形应用程序调用的子程序功能及其格式标准,后者称为子程序界面标准。
计算机图形元文件(CGM)、计算机图形接口(CGI):面向图形设备;
计算机图形核心系统(GKS)、三维图形核心系统(GKS-3D)、程序员层次交互式图形系统(PHIGS)、图形程序库(GL):面向图应用软件;
基本图形转换规范(IGES)、产品数据转换规范(STEP):面向图形应用系统中工程和产品数据模型的作用和关系及其文件格式的标准
GKS的坐标系:
用户坐标系:专供用户应用程序使用;
规格化的设备坐标系:与设备无关的二维直角坐标系,坐标取值范围在0到1之间;
设备坐标系:图形设备在处理图形时所需要用到的坐标系,各种设备均有各自的设备坐标系。
GKS-3D还提供了:
观察参考坐标系规格化投影坐标系第三章 交互技术与用户接口
1、用户接口的常用形式:
子程序库:选择一种合适的高级语言作为主语言,用此语言扩展一系列的过程或函数调用,用以实现有关的图形设计和处理;
专用语言:功能与子程序库类似,内容包括面向图形和交互处理应用的专门语句,也包含高级程序设计语言的功能;
交互命令:人与计算机运行的程序之间传递信息的形式,而子程序包中每个子程序的功能以及专用语言中的有关语句都可以按照命令方式提供用户使用。
交互设备:实现交互技术,完成交互任务的基础。对其评价从三个层次进行:
设备层:关注设备的硬件性能;
任务层:对相同的交互任务用不同的交互设备来比较交互技术的效果;
对话层:对一系列的交互任务进行比较。
逻辑上分为6种:
定位设备:输入一个点的坐标;
笔划设备:输入一系列点的坐标;
数值设备:输入一个整数或实数;
选择设备:由一个整数得到某种选择;
拾取设备:通过一种拾取状态来判别一个显示着的图形;
字符串设备:输入一串字符。
交互任务:
定位;
选择任务;
文本;
定向:确定形体的方向,包括其反馈类型、自由度、精度;
定路径:一系列定位和定向任务的结合,与时间、空间有关;
定量:在最大与最小数值之间确定一个值;
三维交互任务:设计定位、选择和旋转;
组合交互任务:如对话框、构造(如橡皮筋方式画直线段)、动态控制(便于画水平、垂直约束线,或拖动等)。
交互技术:
选择技术:光笔选择、功能键;
定位技术:鼠标、输入坐标、光笔或叉丝定位;
定向技术:输入角度值,用操纵杆控制;
定路径技术;
定量技术:键入数值;
文本技术:输入字符、语音识别、菜单选择、笔划识别;
橡皮筋技术:针对变形类的要求,动态地、连续地将变形过程表现出来;
徒手画技术:实现用户任意画图;
拖动技术:将形体在空间的移动动态地、连续地表现出来。
输入控制:
请求方式:输入设备在应用程序的控制下工作,程序在输入请求发出后一直被置于等待状态直到数据输入。
取样方式:此时,应用程序和输入设备同时工作,当输入设备工作时,存储输入数据,并不断地更新当前数据,当程序要求输入时,程序采用当前数据。
事件方式:每次用户对输入设备的一次操作以及形成的数据叫做一个事件(Event)。 思想:一般一个事件发生时,往往来不及进行处理,于是,就要把事件按先后次序排成队列,以便先进先出,即先到的事件进入排队,先被取出进行处理。当某设备被置成事件方式,程序和设备同时工作。
混合使用:一个应用程序同时可在几种输入模式方式下应用几个不同的输入设备来进行工作。
第四章 基本图形生成算法图形的扫描转换或光栅化:在光栅显示器上确定一个象素集合及其颜色,用于显示一个图形的过程。
具体算法题均要画图作为参考。
直线的扫描转化:
注意:根据直线的斜率决定走步的方向。
数值微分法(DDA):为一增量算法y=y+k。用到浮点数,每一步均四舍五入,不利于硬件实现;
中点画线法:当前点、候选点、候选点的中点M、判别式(d=F(M)=ax+by+c)、判别式的增量(根据当前d的符号增量也不同);
Bresenham算法:误差项d,用e替换,主要记整数算法。
小数算法—E初值:-0.5,增量:k,当y走步,e=e-1。
整数算法—(e=e*2dx)E初值:-dx,增量:2dy,当y走步,e=e-2dx。
3、园的扫描转换:
8分画圆法:利用园的对成性(关于x轴、y轴、直线x=y和直线x=-y);
中点画圆法:当前点、候选点、候选点的中点M、判别式(d=F(M)=x2+y2-r2)、判别式的增量(根据当前d的符号增量也不同)。用e=d-0.25替换后,注意为了保证d<0 与e<-0.25对应,此时的等号必须与“〉”放在一起,可得到整数的中点画圆法。
4、椭圆的扫描转换:中点算法的推广。
椭圆方程:F(x,y)=b2x2+a2y2-a2b2=0
上半部与下半部的分界点:弧上斜率为-1的点(即法向量两分量相等的点,2b2x=2a2y);
若在当前中点,法向量的y分量比x分量大,即2b2 (x+1)<2a2 (y-0.5)而在下一个中点,不等号改变方向,则说明椭圆弧从上部分转入下部分。
上半部:候选点——正右方、右下方,x走步时+1;下半部:候选点——正下方、右下方,y走步时-1。
5、多边形域的填充:
(1)x-扫描线算法:步骤—求交、排序、交点配对、填色。
问题:a顶点交点的取舍问题:解决方法—构成顶点的边位于扫描线上方的条数;
b边界的扩大化问题:左闭右开,下闭上开。
缺点:求交、排序开销大。
(2)有序边表算法:Y向连贯性算法(参看例题),记住边表结构、活性边表结构、计算过程。
缺点:各种表的维持和排序开销大。
(3)边填充算法:
基本思想:对每条扫描线和每条多边形的交点,将该扫描线上交点右方的所有象素取补。
改进:加栅栏,减少重复填充点。
边标志算法:边界打标志—填充,布尔量指示当前状态,初始为假,遇到标记点则取反,为真时填色,否则不填色。
(4)种子填充算法:递归算法
·区分四向连通区域(通过上下左右四个方向移动的组合,在不越出边界的前提下到达区域内的任何区域)和八向连通区域(上、下、左、右、左上、左下、右上、右下)
·四向算法和八向算法
·步骤:种子象素入栈,当栈非空时重复“栈顶象素出栈—出栈象素填色—按右上左下顺序检查四象素,如未填色则入栈”
6、线宽与线型:
直线线宽:
方刷子:一个正方形,比真实直线粗,极端情况—斜率=1
线刷子:一条线段,当直线斜率在(-1,1)间—垂直线刷子,否则—水平线刷子,比真实直线细,极端情况—斜率=1
圆弧线宽:与直线类似。
7、字符:
点阵字符:为每个字符建立一个字符掩膜,表示该字符像素图案的一个点阵;
矢量字符:采用矢量代码序列表示字符的各个笔划。
8、线段裁剪:
Cohen-sutherland算法:
·编码方法:四位,每位对应一条窗口边界
·简取条件:code1^code2=0
·简弃条件:code1&code2<>0
步骤:
·①编码
·②是否简取或简弃,如是退出
·③求交点,分成两部分,重复②
中点分割算法:与(1)一样,只是不求直线与窗口的边界的交点,而是不断二分。退出条件:·全部简取或简弃 ·满足精度要求
9、反走样:参看例题。
第六章 曲线和曲面
Bezier曲线:由一组折线集,或称之为Bezier特征多边形来定义的。曲线的起点、终点与多边形的起点、终点重合,且多边形的第一条边与最后一条边表示了曲线在起点和终点处的切矢量方向。曲线的形状趋于特征多边形的形状。
缺点:·多边形的顶点个数决定了Bezier曲线的阶次,当n较大时,多边形对Bezier曲线的控制减弱;·Bezier曲线不能局部修改第七章 图形变换
1、齐次坐标表示就是用n+1维向量表示一个n维向量。具有不唯一性。规范化齐次坐标表示就是h=1的齐次坐标表示。
2、用户域:程序员用来定义草图的整个自然空间——特征:连续无限的
窗口区:用户指定的任意区域—<=用户域
屏幕域:设备输出图形的最大区域——特征:有限的整数域
视图区:任何小于或等于屏幕域的区域。
窗口—视图的坐标变换:平移—比例—反向平移(结合图7-2-2)
3、基本的二维变换矩阵以及相对于某点的变换(参看例题)。
注意:·旋转的正方向问题;·整体缩放因子缩放效果问题
4、投影变换分类:
·根据投影中心与投影平面之间的距离:平行投影(无限)和透视投影(有限)
·平行投影根据投影方向不同:正平行投影(垂直于投影平面)和斜平行投影(不垂直于投影平面)
·透视投影根据主灭点的个数不同:一点透视、二点透视、三点透视。
5、灭点:
不平行于投影面的平行线的投影会汇聚到一个点,这个点称为灭点(Vanishing Point)。平行于投影面的平行线的投影不一定保持平行,两条线可能会重合。
坐标轴方向的平行线在投影面上形成的灭点称作主灭点。一点透视有一个主灭点,即投影面与一个坐标轴正交,与另外两个坐标轴平行。两点透视有两个主灭点,即投影面与两个坐标轴相交,与另一个坐标轴平行。三点透视有三个主灭点,即投影面与三个坐标轴都相交。