计算机图形学第五章
- 格式:ppt
- 大小:342.50 KB
- 文档页数:58
第五章图形变换重 点:掌握二维几何变换、二维观察变换、三维几何变换以及三维观察变换。
难 点:理解常用的平移、比例、旋转变换,特别是复合变换。
课时安排:授课4学时。
图形变换包括二维几何变换, 二维观察变换,三维几何变换和三维观察变换。
为了能使各种几何变换(平移、旋转、比例等)以相同的矩阵形式表示,从而统一使用矩阵乘法运算来实现变 换的组合,现都采用齐次坐标系来表示各种变换。
有齐次坐标系齐次坐标系:n 维空间中的物体可用 n+1维齐次坐标空间来表示。
例如二维空间直线 ax+by+c=O ,在齐次空间成为 aX+bY+cW=0 ,以X 、Y 和W 为三维变量,构成没有常数项的 三维平面(因此得名齐次空间)。
点P (x 、y )在齐次坐标系中用P (wx,wy,w )表示,其中 W 是不为零的比例系数。
所以从 n 维的通常空间到 n+1维的齐次空间变换是一到多的变换,而其反变换 是多到一的变换。
例如齐次空间点P (X 、Y 、W )对应的笛卡尔坐标是 x=X/W 和y=Y/W 。
将通一地用矩阵乘法来实现变换的组合。
常笛卡尔坐标用齐次坐标表示时, W 的值取1。
采用齐次坐标系可以将平移、比例、旋转这三种基本变换都以相同的矩阵形式来表示,并统齐次坐标系在三维透视变换中有更重要的作用, 示形它使非线形变换也能采用线形变换的矩阵表式。
图形变换平移变换图示如图所示,它使图形移动位置。
新图 p'的每一图元点是原图形 p 中每个图元点在向分别移动Tx 和Ty 产生,所以对应点之间的坐标值满足关系式x'=x+Tx y'=y+Ty可利用矩阵形式表示成:[x' y' ] = : x y ] + : Tx Ty ]简记为:P'= P+T , T= : Tx Ty ]是平移变换矩阵(行向量)二堆几何变换1 1二维观察变換三维几诃变换平移变换 比例变换 陡转变换 对称变换 错切变换 仿肘变换 复合变换平移变换 比例变换 旋转变换 绕空间任意轴離转 对称变换 蜡切变换三维观察变5.1二维几何变换二维几何变换就是在平面上对二维点的坐标进行变换,从而形成新的坐标。
5.3 试用中点Bresenham 算法画直线段的原理推导斜率在[-1,0]之间的直线段绘制过程(要求写清原理、误差函数、递推公式以及最终画图过程)。
解:原理:每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别。
∵斜率k 在[-1,0]之间∴x 为最大位移方向,每次在x 加1,而y 或减1或减0。
设直线段的方程F(x,y)=y-kx-b ,假设当前点是P(x i ,y i ),则下一点在P u (x i +1,y i )与P d (x i +1,y i -1)中选一。
设M 为P u 和P d 的中点,则M 点的坐标为(x i +1,y i -0.5)。
构造误差判别式:d i =F(x M ,y M )=F(x i +1,y i -0.5)=y i -0.5-k(x i +1)-b若d i ≥0,取P d (x i +1,y i -1);若d i <0,取P u (x i +1,y i );即有x i+1=x i +1,y i+1=y i -1(d i ≥0)或y i (d i <0)。
误差函数的递推:d i ≥0时,取P d (x i +1,y i -1),再判断下一像素取哪个时,应计算d i+1=F(x i +2,y i -1.5)= y i -1.5-k(x i +2)-b=d i -1-k ,增量为-1-k 。
d i <0时,取P u (x i +1,y i ),再判断下一像素取哪个时,应计算(x 0,yd i+1=F(x i+2,y i-0.5)= y i-0.5-k(x i+2)-b=d i-k,增量为-k。
判别式的初值:从(x0,y0)点出发,下一个像素的选取计算d0=F(x0+1,y0-0.5)= y0-0.5-k(x0+1)-b=-0.5-k取的是误差判别式的符号,因此可进行如下变换:D=d*2∆x∆x=x1-x0,根据选取的起点和绘制方向,∆x>0,因此,D与d同号。
5.1 图形几何变换基础5.1.1 规范化齐次坐标齐次坐标就是用n +1维矢量表示n 维矢量,第n +1维称为齐次坐标位,第n +1维为1时为规范化齐次坐标。
有了规范化齐次坐标后,二维变换可形成一个通式。
[x ′ y ′ 1]=[x y 1]∙TT 为3×3矩阵。
5.2 二维图形基本几何变换矩阵(1)五种简单变换平移(Translate )、比例(Scale )、旋转(Rotate )、反射(Reflect )和错切(shear )(2)变换的解析式(3)变换的矩阵表达式要记住变换的矩阵表达式。
平移: 比例:旋转:反射: ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=1010001y x T T T ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=1000000y x S S T ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=1000cos sin 0sin cos ββββT ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=100010001T错切:沿x 的错切: x ′=x +cyy ′=y沿y 的错切:x ′=xy ′=bx +y(4)多边形的变换只对顶点变换。
5.3 二维复合变换复合变换的变换矩阵是简单变换矩阵的乘积相对于点的复合变换例5-1:相对于参考点Q 的旋转变换T1: 平移(-Qx, -Qy ),把Q 平移到原点T2: 绕原点旋转β角T3:平移(Qx, Qy ),把原点平移到Q相对于直线(轴)的复合变换例5-2:相对于直线y=kx+b 的复合变换T1: 平移(0, -b ),使直线过原点T2: 绕原点旋转-β角,使直线与x 轴重合T3:根据x 的反射变换T4: 绕原点旋转β角T5: 平移(0, b )⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=1000101c b T n T T T P T P P 21'⋅⋅=⋅=二维仿射变换由五种简单变换或其复合变换构成的变换即仿射变换(Affine Transformation )。
CTransform 类的用法见实验二中“test”文件夹中的程序5.4 二维图形裁剪5.4.1 图形学中用到的几种坐标系世界坐标系,用户坐标系,观察坐标系,屏幕坐标系,设备坐标系5.4.2 窗口与视区5.4.3 窗视变换5.5 Cohen -Sutherland 直线裁剪算法 算法原理C3,C2,C1,C0 上 下 右 左[][]⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⋅==10011''3,23,12,22,11,21,1a a a a a a y x y x算法实例。