d=0
4
4
0+1=1
9+2=11
1+4=5
x>=y
结束
3)Bresenham算法思想:
当ΔD>0时,若ΔDV<=0,则取D,否则取V;
当ΔD<0时,若ΔHD<=0,则取H,否则去D;
当ΔD=0时,取D
1)中点画圆算法只用到整数的加法、减法和左移(乘2)运算,效率较高并且适合用硬件实现。
中点算法利用八对称性画圆,从当前已获得的象素递推出下一个象素。
2)二阶差分算法利用八对称性画圆,用差分法消除中点算法中的乘法运算,提高了中点算法的效率
3)Bresenham算法利用四分圆对称性画圆,
每次只需检查误差项(增量)的符号
椭圆的中点算法区域填充的步骤
区域填充的步骤及算法:
1、确定填表充区域,即确定被填充的象素2、确定填充的颜色
主要方法:
扫描线法、边缘填充法、种子填充法。
矩形区域的填充算法:
扫描线法的步骤、扫描线相交时交点的选取原则、边界上交点的选取原则原则:
左闭右开,下闭上开
多边形的边的分类表(ET)、活性边表(AET)
例:
画出如图所示的多边形的边的分类表(ET)及对应的活性边表(AET)
2
0
7
3.5
-1.5
7
7
2
8
11
0
8
9
2
8
11
0
8
x
x
y
x
x
y
x
x
y
x
x
y
6
p4
p5
p5
p6
5
5
2
8
5
-1.5
7
4
p3
p4
3
11
0
8
2
2
0
7
1
5
-3
2
5
3
3
0
p1
p2
p2
p3
种子填充算法的思想及其适用的设备只适用于光栅扫描设备
1、种子象素压入堆栈
2、若堆栈非空,即有区域中象素在堆栈中,做如下循环:
A.栈顶象素出栈;
B.将出栈象素置为多边形颜色。
C.按左、上、右、下四个方向左右顺序检查与出栈象素相邻的四个象素,若其中某象素不在边界置为多边形颜色,则将该象素推入堆栈。
ASCII的编码
GB2312-80的编码,可表示的汉字个数和图形符号个数6763个基本汉字
7445个图形字符202个一般符号
字符库:
存储字符的形状的数据库
点阵字符(存储及显示)
点阵字符的存储(点阵字符是由位图表示的,保存字符就是保存它的位图)
例:
16*16点阵汉字:
16*16=256位(32个字节)
常用汉字6763个:
6763*32=216416字节16*24=384位(48字节)6763*48=324K字节
需要压缩技术
点阵字符的显示:
·从字库中将字的位图检索出来。
·将检索到的位图写出到帧缓存中。
矢量字符(存储及显示)显示:
首先从字库中将它的字符信息。
然后取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符。
点阵字符:
存储量大,易于显示
矢量字符:
存储量小,美观,变换方便;但需要光栅化后才能显示。
线宽的处理是指绘制多个像素宽的图形。
通常有线刷子、方形刷子和区域填充的三种方法。
采用扫描线算法对多边形进行填充,请写出EL、AEL的结构,并分析扫描线算法的步骤和处理扫描线的步骤。
答:
活化边AET:
指与当前扫描线相交的多边形的边,也称为活性边。
YmaxX△X(即1/k)
边的分类表ET:
把有效边按与扫描线交点x坐标递增的顺序存放在一个链表中,此链表称为有效边表。
有效边表的每个结点:
YmaxX1/knext
算法步骤:
(1)确定多边形所占有的最大扫描线数,得到多边形顶点的最小和最大y值(ymin和ymax)。
(2)从y=ymin到y=ymax,每次用一条扫描线进行填充。
(3)对一条扫描线填充的过程可分为四个步骤:
a.求交
b.排序
c.交点配对
d.区间填色
4、若用扫描线填充法将顶点为P0,P1,P2,P3,P4,P5,P6的多边形填充。
请写出其边分类表EL及y=8时的活化链表。
答:
边分类表EL如下:
y=8时,活化链表为:
用扫描线填充法将顶点为P0(2,5),P1(2,10),P2(9,6),P3(16,11),P4(18,4),P5(12,2),P6(7,2)的多边形填充。
写出填充步骤。
答:
(1)建立边分类表EL:
(2)写出每一条扫描线的活化链表以及交点进行配对和着色:
y=2,AEL
交点:
(7,2)(12,2),着色两点间所有点
y=3,AEL
交点:
(5.3,3)(15,3),根据左闭右开原则,着色(5,3)(15,3)之间所有点
y=4,AEL
交点:
(3.6,4)(18,4),根据左闭右开原则,着色(3,4)(18,4)之间所有点
y=5,AEL
交点:
(2,5)(17.7,5),根据左闭右开原则,着色(2,5)(17,5)之间所有点
y=6,AEL
交点:
(2,6)(9,6)(9,6)(17.4,6),按X大小配对,并根据左闭右开原则,着色
(2,6)与(9,6),(9,6)与(17,6)之间的所有点
y=7,AEL
交点:
(2,7)(7.3,7)(10.4,7)(17.1,7),按X大小配对,并根据左闭右开原则,着色(2,7)与(7,7),(10,6)与(17,6)之间的所有点
y=8,AEL
交点:
(2,8)(5.6,8)(11.8,8)(16.8,8),按X大小配对,并根据左闭右开原则,着色(2,8)与(5,8),(11,8)与(16,8)之间的所有点
y=9,AEL
交点:
(2,9)(3.9,9)(13.2,9)(16.5,9),按X大小配对,并根据左闭右开原则,着色(2,9)与(3,9),(13,9)与(16,9)之间的所有点
y=10,AEL
交点:
(2,10)(2.2,10)(14.6,10)(16.2,10),按X大小配对,根据左闭右开原则,着色(2,10)与(2,10),(14,10)与(16,10)之间的所有点
y=11,AEL交点(16,11)(16,11),着色点(16,11)。
种子填充算法的思想及其适用的设备
种子填充算法——根据已知多边形区域内部的一个象素点来找到区域内其它象素点,从而对多边形区域内部进行填充。
四向连通区域及八向连通区域的定义和区别
八向连通区域:
各象素在水平、垂直、及四个对角线方向都是是边通的。
即从区域内任一点出发,可水平、垂直、及四个对角线方向移动到达区域内任一点。
四向连通区域:
各象素在水平垂直四个方向是边通的。
即从区域内任一点出发,可水平/垂直移动到达区域内任一点。
4连通与8连通区域的区别连通性:
4连通可看作8连通区域,但对边界有要求
–对边界的要求
第四章曲线和曲面表示
曲线的三种表示方法曲线的表示形式
显示表示y=kx+b
隐式表示f(x,y)=0
参数表示
平面直线及园的参数表示
●直线参数方程
园参数方程
切矢量、法矢量、曲率和挠率的概念及定义
对于三维参数曲线,曲线上任一点的切矢量可用矢量P′(t)表示,P′(t)=[x′(t)y′(t)z′(t)]。
其大小反映了曲线关于参数t在该点处的变化速度,其方向趋于该点的切线方向。
对于一般参数t,若|dP/dt|≠0,则有
对于弧长参数s,
对于空间的参数曲线,所有垂直于切矢量T的矢量都是法矢量
设以弧长s为参数,则参数曲线上任一点的曲率定义为k=|dT/ds|。
称ρ=1/k为曲率半径。
仍设以弧长s为参数,则参数曲线上任一点的挠率定义为τ=|dB/ds|,它反映了曲线在该点处扭出其密切平面的速率。
确定曲线为平面曲线的充要条件是,曲线上任意点处的挠率等于零
密切平面、法平面及副法平面的定义。
曲线上某一点处就有一束法线,它们在一个平面上,我们称此平面为曲线在该点处的法平面
在曲线算法中,线性插值和二次插值的基本思想和实现步骤。
线性插值就是给定函数f(x)的两个不同的点(x1,y1)和(x2,y2),构造一个线性插值函数φ(x)=ax+b近似代替函数f(x)。
根据插值的定义可以确定系数a和b,因而可得线性插值函数为
多项式插值——采用多项式函数去插值给定的数据点,即对于给定的点Pi(i=0,1,…,n),要构造多项式函数y=P(x),使得yi=P(xi)。
几何约束矩阵和基矩阵的概念。
参数曲线的归一化表示(几何约束矩阵和基矩阵)。
三次Hermite曲线几何约束矩阵
三次Hermite曲线的基矩阵MH
三次Hermite曲线的基函数(调合函数)MH.T
三次Bezier曲线的几何约束矩阵
,
基矩阵
。
第五章图形变换
图形变换——指对图形的几何信息经过几何变换后产生新的图形。
齐次坐标系——就是N维向量由N+1维向量来表示。
一个N维向量的齐次坐标表示不惟一。
用户坐标系——用户为处理自已的图形时所采用的坐标系,单位由用户自己决定。
规范化设备坐标系——将各个设备坐标系中的数据化为统一的数据范围从而得到的设备坐标系。
二维图形的几何变换(平移、旋转、放缩、对称)
1.平移变换:
其中,
是物体在三个坐标方向上的位移量。
2.旋转变换:
绕Z轴旋转的公式为:
绕X轴旋转的公式为:
绕Y轴旋转的公式为:
2.缩放变换:
写出透视变换矩阵和各种投影(三视图、正轴测和斜投影)变换矩阵。
答:
透视变换矩阵形式为:
主视图:
俯视图:
侧视图:
正轴测:
斜投影:
二维图形的复合变换例:
求一二维复合变换矩阵T,其功能为先将图形在X方向向右平移6,在Y方向向上平移8,再将图形逆向旋转45度。
已知三角形ABC各顶点的坐标A(1,2)、B(5,2)、C(3,5),相对直线Y=4做对称变换后到达A’、B’、C’。
试计算A’、B’、C’的坐标值。
(要求用齐次坐标进行变换,列出变换矩阵)
解:
(1)将坐标系平移至P1(0,4)点
(2)以X轴对称
(3)将坐标系平移回原处
(4)变换矩阵:
T=TA*TB*TC=
(5)求变换后的三角形ABC各顶点的坐标A’、B’、C’
A’:
XA'=1,YA'=6
B’:
XB'=5,YB'=6
C’:
XA'=3,YA'=3
窗口——在用户坐标系中的图形根据需要常用一个矩形区域确定一个矩形部分,然后将这个区域内的图形输出到屏幕上去,这个矩形称这窗口。
视区——在图形设备的显示范围内,由设备坐标系定义的一个矩形区域。
第六章几何造型
表示形体的三种模型:
(线框模型、表面模型、实体模型)
凸多边形——是指这样一类多边形:
在多边形内任选两个点,将这两个点用线段连接后,此线段上所有的点都在多边形内。
第七章立体真实感图形
图形消隐——计算机为了反映真实的图形,把隐藏的部分从图中消除。
简述消隐算法的分类。
1.物体空间的消隐算法:
物体空间是物体所在的空间,即规范化投影空间。
这类算法是将物体表面上的
个多边形中的每一个面与其余的
个面进行比较,精确求出物体上每条边或每个面的遮挡关系。
计算量正比于
。
2.图象空间的消隐算法:
图象空间就是屏幕坐标空间,这类算法对屏幕的每一象素进行判断,以决定物体上哪个多边形在该象素点上是可见的。
若屏幕上有
个象素点,物体表面上有
个多边形,在该类消隐算法计算量正比于
。
3.物体空间和图象空间的消隐算法P192
简述深度缓存算法及其特点。
答:
深度缓存算法是一种典型的、也是最简单的图象空间的消隐算法。
在屏幕空间坐标系中,
轴为观察方向,通过比较平行于
轴的射线与物体表面交点的
值(又称为深度值),用深度缓存数组记录下最小的
值,并将对应点的颜色存入显示器的帧缓存。
深度缓存算法最大的优点是简单。
它在
、
、
方向上都没有进行任何排序,也没有利用任何相关性。
算法复杂性正比于
。
在屏幕大小,即
一定的情况下,算法的计算量只与多边形个数
成正比。
另一个优点是算法便于硬件实现,并可以并行化。