第3讲 计算机图形学基础

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在此仅从CAD需求角度来介绍相关研究内容: 工程产品设计中的二维工程图、三维实体模型的显示 本章主要介绍:二维基本图形生成原理、图形变换原理、图 形显示流程
பைடு நூலகம்.1 基本图形生成算法
直线的生成算法
画一条从(x1, y1)到(x2, y2)的直线,实质上是一个发现最佳逼近直 线的象素序列,并填入色彩数据的过程,这个过程也称为直线光栅化
直线Bresenham算法
1 0 1 2 3 4 5
过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序 计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列象素 中与此交点最近的象素。
不需乘除运算
d d d d
圆弧的生成算法
典型算法有扫描转换算法(斜率<1)、中点算法及Bresenham算法
最常用的两种算法: 直线DDA(直接微分算法)
直线中的每一点坐标都可以由前一点坐标变化一个增量(Dx, Dy) 而得到,即表示为迭代式:xi+1=xi+Dx,yi+1=yi+Dy,并有关系:Dy =
m· Dx,(m<1)迭代式的初值为直线的起点(x1, y1)
Line: P0(0, 0)-- P1(5, 2) 3 2
注意:在数学上两个浮点数可以严格相等,但计算机表示的浮点数有误差, 难以绝对相等,相应地,求交运算中要引进容差。 i)当两个点的坐标值充分接近时,即其距离充分近时,就被认为是重合的 点,一般取∆ =10-6或更小的数。 ii)当两条直线的夹角接近0度(一般取∆ =10-6或更小)时,就被认为 是两条平行线。 iii)同样,共线、共面、平行面等的判断也是近似的。
y y=-x y=x
P P1
M
(x,y)
P2
椭圆的生成算法
p0 (0, b)
F F y x
曲线的生成算法
F y
F x
包容盒计算
包围盒(大多采用矩形包容盒,也有球包容盒及其它包容盒)计 算是对图形元素进行求交、编辑和拾取的前提。
直线的包围盒计算直接利用其特征点——起始点和终点就 可得到。
设坐标P经过n次变换T1,T2,…,Tn 到P*,则变换结果 为: P* = PT1T2…Tn = PT
3.2.1 二维变换
a b 点的变换可以通过矩阵运算来实现,令 T c d 称T为变换矩阵,有:
a b x' y' x y ax cy bx dy c d
这里[x’,y’]为变换后点的坐标,[x,y]为变换前点 的坐标,变换矩阵中a,b,c,d的不同取值,可以实现 各种不同变换,从而达到对图形进行变换的目的 。
xl
ym
1
齐次坐标
在平移变换中,我们将[x y]扩充为[x 实际上是由二维向量变为三维向量。 y 1] 这种用三维向量表示二维向量的方法叫做齐次坐 标法。进一步推广,用n+1维向量表示n维向量的方法 称之为齐次坐标法。 所谓齐次坐标就是用n+1维向量表示n维向量得到 的坐标。对齐次坐标进行坐标变换称为齐次变换,相 应的变换矩阵称为齐次变换矩阵。
x'
y' x
y
a c
b ax cy d
bx dy
而这里的cy,bx均非常量,因此用原来的2×2的变 换矩阵是无法实现平移变换。
将变换矩阵增加一行一列,实 施对点进行平移变换
x
y 1
x
1 0 0 y 1 0 1 0 l m 1
剖面线算法
剖面线是一组等距的平行线,用填充算法 速度慢,直接画线更快,算法步骤: i) 按多边形的初始条件及剖面线的角度和 间距,计算剖面线的范围和数量; ii) 求剖面线与轮廓边的相交位置; iii)对剖面线上的交点进行排序,并按奇偶 规则绘制有效剖面线段。 简化算法:跳过顶点处交点判断
图形反走样算法
求交算法
求交计算是常用算法。区域填充时要求线段交点, 消隐算法需要直线和平面多边形的求交等。 求交运算比较复杂,为减小计算量,求交计算前, 先用凸包进行粗略比较,先排除显然不相交情形。 求交计算是CAD系统的重要部分,其准确性与效率 直接影响CAD系统的可靠性与实用性。
求交问题可以分为两类 : 求交点:线线求交、线面求交 求交线:面面求交
(2)种子填色(Seed Filling)算法 这类算法建立在多边形边界的图象形 式数据之上,并需提供多边形界内一 点的坐标,一般只能用于人机交互填 色,而难以用于程序填色。
表示内点
表示边界点
从多边形内部点出发,沿四个方向(或八个方向) 扩散搜索区域内所有待填充的象素点,适用于交 互绘图。其算法步骤: i)多边形边界给特定颜色; ii)内部填充颜色给另外的颜色; iii)从内部点 ( x, y ) 开始,检测该点与边界和 填充色是否相同,均不相同则填充该点; iv)检测相邻点与边界和填充色是否相同,均不 相同则填充该点; v)重复步iv)直至所有象素点被填充。
该算法直接基于象素算法,不必求交。
裁剪算法
确定图形中哪些部分落在显示区之内,以便显示落在显示区内的那 部分图形。这个选择过程称为裁剪 只有窗口内的物体才能显示出来。因此,窗口之外的物体都是不 可见的,可以不参加标准化转换及随后的显示操作,节约处理时 间。裁剪(clipping)是裁去窗口之外物体的一种操作。
cos Tr sin
sin cos
x ' Rcos Rcoscos Rsinsin xcos ysin y' Rsin Rsincos Rcossin ycos xsin
3. 计算机图形学基础
3.1 基本图形的生成
简单图形的生成 区域填充和剖面线 裁剪
3.2 图形变换
二维变换 三维变换 投影变换
3.3 图形显示流程
回顾显示器显示原理
常规显示器上的图形由荧光屏的点阵组 成,电子束按行列次序扫描点矩阵,并 由显示内容来控制所扫描的点是否发亮, 每扫描一遍称为一帧 荧光屏上画面的每一点称为一个象素(Pixel)。每个象素都对 应于Buffer中的一个存储单元,里面存放着该象素的显示颜色值。 象素的颜色值控制电子束(共三支)对荧光屏的轰击强度,象素在 帧缓存寄存器中的位置编码控制电子束的偏转位置。 分辨率(Resolution)是光栅扫描显示设备最重要的指标 显示器用于显示字符、图形(触摸显示屏还可作为输入设备)
区域填充算法
区域填充即给出一个区域的边界,要求对边界范围内的所有象素 单元赋予指定的颜色代码。区域填充中最常用的是多边形填色
填色算法分为两大类:扫描线算法和种子点算法
(1)扫描线填色(Scan-Line Filling)算法
这类算法建立在多边形边边界的矢量形 式数据之上,可用于程序填色,也可用 交互填色。 该算法基于几何求交算法,步骤如下: i)输入多边形顶点坐标; ii)求多边形顶点中最大和最小y坐标, 以确定范围; iii)对每条扫描线进行计算,直至所有扫 描线被填充; 关键:如何快速求扫描线与多边形交点; 扫描线填充利用直线快速画法; 应该利用扫描线与多边形交点的连贯 性加速求交算法(多边形与扫描线相交,则 与下一条扫描线很可能相交)
• 二维基本变换
– – – – – 比例变换 对称变换 错切变换 旋转变换 平移变换
• 二维组合变换
比例变换
a b 在变换矩阵 T 中,令b=c=0,则为比例变 c d 换矩阵 a 0 a, d 0 Ts 0 d
其中a,d分别为x,y方向上的比例因子
设三维空间点P的坐标为(x,y,z),它是唯一的。 若用齐次坐标表示时,则为(hx,hy,hz,h),且不唯一。
齐次坐标的几何意义
将Oxy坐标系增加一与x轴和y轴正 交的w轴。
在w=1的平面上有点P1(x,y,1),则当 w由0变化到无穷时,齐次坐标 Pw(xw,yw,w) 将处在由OP1定义的射线 OQ上。二维坐标则是该射线在w=1平 面上的交点, 有
SetPixel (int x, int y, color c);
计算机图形学的研究内容
探讨的主要问题是用计算机进行图形信息的表达、输入、存储、显 示、输出、检索及图形运算等。具体地说,大致有以下内容: (1)图形的输入:研究如何把要处理的图形输入到计算机内,以便 让计算机进行各种处理。 (2)产生图形的算法:研究在显示器或其它输出设备上产生图形的 各种算法; (3)图形的数据结构:研究图形在计算机内的表示方法; (4)图形的变换:研究图形的各种几何变换; (5)图形运算:包括图形的分解、组合等; (6)图形语言:各种图形处理功能的语言; (7)图形软件的标准化:图形软件与设备无关及接口兼容性。 总的来说,计算机图形学应该解决和研究下列一些问题: (1)图形表示和处理的数学方法及其实现的计算机算法; (2)设计一个好的图形软件系统; (3)设计与实际应用相结合的图形应用系统。
图形的具体应用范围很广,但是从基本的处理技术看只有两类: 一类是线条,如工程图、地图、曲线图表等;

另一类是明暗图,与照片相似。为了生成图形,首先要有原 始数据或数学模型,如工程人员构思的机械零件模型,飞机 的总体方案模型,地形航测的判读数据等等。这些数字化的 输入经过计算机处理后变成图形输出。
矩形的包围盒是其本身,圆的包围盒是该圆的边界矩形 圆弧的包围盒的计算主要是由因弧的起始点和终止点,以及 与通过圆心的4个坐标轴相交的交点
自由曲线的包容盒则可根据离散的小直线段的起始点和终止 点比较后获得,若精确求解并不经济,因图形显示采用离散 多边形,且图形变换频繁。
复杂组合图形的包容盒则可以在简单图形的包容盒基础上 进行比较得到。
对称变换
对坐标轴的对称变换
1.对y轴对称: Tmy 2.对x轴对称: Tmx
- 1 0 0 1 1 0 0 - 1
对原点的对称变换:
- 1 0 Tmo 0 - 1
旋转变换
在二维空间里,我们作如 下规定:图形的旋转是指绕 坐标系原点旋转θ角,且逆 时针为正,顺时针为负,变 换矩阵为
对称、错切、旋转等基本变换; 2×1阶矩阵 p
1×2阶矩阵 l m 可以实现图形的平移变换;
q 可以实现图形的透视变换,
T
而[s]可以实现图形的全比例变换。
小结
二维组合变换
上述的几种变换可用统一的变换矩阵形式来实现, 称之基本变换。 但有些变换仅用一次基本变换是不够的,必须由 两次或多次基本变换组合才能实现。这种由多种基 本变换组合而成的变换称之为组合变换,相应的变 换矩阵叫做组合变换矩阵。
如图所示,画出的直线实际上是阶梯状,并不光滑。 因为计算机屏幕是离散象素组成,不是连续信号。象 素是有面积的,不可能面积为零。 线段反走样算法:将线段处理为有宽度的狭长矩形
抖动反走样算法:高分辨率计算,低分辨率显示
3.2 图形变换
• 图形变换的数学基础
– 向量运算 – 矩阵运算
• 二维变换 • 三维变换
x
y 1
x
a y 1 c l
p d q m s b
3. 齐次变换矩阵通常是非奇异矩阵。当该矩阵奇异 时,det A = 0,坐标经变换后维数将降低,如 三维坐标在二维平面上的投影变换等。
二维齐次变换矩阵
a b 其中2×2阶矩阵 可以实现图形的比例、 c d
对字母T进行旋转变换 (旋转60°)
平移变换
上述四种变换都可以通过变换矩阵 必须满足下面的关系 x ' x x
y' y y
a T c b d
来实现,但是,若实现平移变换,变换前后的坐标
这里△x,△y是平移量,应为常数,但是应用上述 变换矩阵对点进行变换
xw yw x ,y w w
二维齐次变换表示了在w=1平面上点的坐标变换,即P1到 P1*的坐标变换
齐次坐标的特点
1. 当w=0时,齐次坐标可用来表示无穷远的点 2. 将图形处理中的各种变换用统一的方式来处理
a b p T 如二维图形变换矩阵的一般表达式: c d q l m s
相关文档
最新文档