文档详情

计算机图形学_第七章_几何变换.

我**
实名认证
店铺
PPT
1.43MB
约68页
文档ID:117847104
计算机图形学_第七章_几何变换._第1页
1/68

Lecture 7 几何变换 概述 在计算机图形学中,通常需要将画出的图形平移到某一 位置,或改变图形的大小和形状,或利用已有图形生成 复杂图形,这种图形处理的过程就是图形的几何变换, 简称图形变换 二维图形和三维图形都可以进行图形变换图形变换通 常采用矩阵的方法,图形所做的变换不同其变换矩阵也 不同变换的实质是对由图形上各点的坐标组成的矩阵 进行运算,因此在讨论各种具体图形几何变换时,可以 归结为一个点的变换 7.1 二维基本变换 二维基本变换包括: •平移 •比例 •旋转 7.1.1 平移变换 平移是一物体从一个位置到另一位置所作的直线移动 如果要把一个位于的点移到新位置时,只要在原坐标上 加上平移距离Tx及Ty即可 平移变换 表示成数学形式: 表示成向量形式: 可以用矩阵相加来表示P点的位移 计为: 7.1.2 比例变换 用来改变一物体大小的变换称为比例变换(缩放变换) 如果要对一个多边形进行比例变换,那么可把各顶点 的坐标(x,y)均乘以比例因子Sx、Sy,以产生变换后的 坐标(x’,y’) 比例变换 表示成数学形式: 如果令 则比例变换可以表示成以下的矩阵形式: 记为: 7.1.3 旋转变换 物体上的各点绕一固定点沿圆周路径作转动称为旋转变 换。

我们可用旋转角表示旋转量的大小 一个点由位置(x、y)旋转到(x′y′)如下图所示,θ为 旋转角 旋转变换 由图可得到如下三角关系式: 则相对于坐标原点的旋转变换公式如下: 旋转变换 如果令 则有 记为 7.2 二维几何变换的齐次坐标表示 可以看出,平移变换的处理方法与其他两种变换的形 式不一样,但我们希望能够用一种一致的或同类的方法 来处理这三种变换,使得这三种基本变换能很容易地结 合在一起,形成各种复杂的组合变换为了解决这个问 题,引入齐次坐标这一概念 基本思想:把一个n维空间的几何问题, 转换到n+1维空间 中去解决即用一个有n+1个分量的向量去表示一个有n 个分量的向量 进一步分析知,平移变换是对常数项的变换,而比例 和旋转则是对x和y项的变换 二维几何变换的齐次坐标表示 如果我们既要对常数项进行变换,也要对x和y项进行变 换,我们进行如何的处理呢? 观察如下的表达式: 则有:x’=a1x+ a2y+ a3c y’=b1x+ b2y+ b3c c’=c1x+ c2y+ c3c 二维几何变换的齐次坐标表示 如果我们令: a1=1,a2=0,a3=Tx b1=0,b2=1,b3=Ty c1=0,c2=0,c3=1,c=1 则有:x’=x+ Tx y’=y+ Ty 1=1 上两式正好是坐标的平移变换。

二维几何变换的齐次坐标表示 使用这种表示方法,坐标的平移变换可以表示为: 平移变换的矩阵形式缩写: 这样,我们就把矩阵的加法运算转化为矩阵的乘法运算 ,我们使用的这种表达坐标的方法就叫齐次坐标表示 (x,y)表达为(hx,hy,h),当h=1时称为规格化齐次坐标 二维几何变换的齐次坐标表示 使用规格化齐次坐标,我们可以表示另外两种变换: 比例变换的矩阵形式 : 缩写为 : 旋转变换的矩阵形式 : 缩写为 : 7.2.3 其他变换 反射变换 :反射是用来产生物体的镜象的一种变换物 体的镜象一般是相对于一对称轴生成的 •关于x轴对称变换 •关于y轴对称变换 •关于坐标原点的对称变换 关于x轴对称变换 关于x轴的对称变换,是一种特殊形式的缩放变换,其中 ,Sx=1,Sy= -1,如图所示,其变换矩阵为: 关于y轴对称变换 关于y轴的对称变换,是一种特殊形式的缩放变换,其中 ,Sx=-1,Sy=1,如图所示,其变换矩阵为: 关于坐标原点的对称变换 关于y轴对称变换,是一种特殊形式的缩放变换,其中, Sx=-1,Sy= -1,如图所示,其变换矩阵为: 错切变换 这种变换可使物体产生变形,即物体产生扭转或称为错 切。

常用的两种错切变换是沿x向或沿y向错切变换 •沿x方向关于y轴的错切 •沿y方向关于x轴的错切 沿x方向关于y轴的错切 在下图中,对矩形ABCD沿x轴方向进行错切变换,得到 矩形A’B’CD错切的角度为θ,令shx=tanθ假定点(x, y) 经错切变换后变为(x’, y’),由下图可知: 从而沿x方向关于y轴的错切 的变换矩阵为: 沿y方向关于x轴的错切 在下图中,对矩形ABCD沿y轴方向进行错切变换,得到 矩形AB’C’D错切的角度为θ,令shy=tanθ,假定点(x, y) 经错切变换后变为(x’, y’),由下图可知: 从而沿y方向关于x轴的错切 的变换矩阵为: 7.2.4 二维几何变换的一般形式 设图形上一点的坐标为P(x,y),经过二维几何变换后的坐标为 P’(x’, y’),变换矩阵一般可写为: 即: 这样的变换在数学上称为仿射变换(Affine Transformation)前 面介绍的几种变换都是仿射变换的特例 7.3 组合变换 任意一个变换序列均可表示为一个组合变换矩阵组合 变换矩阵可由基本变换矩阵的乘积求得由若干基本变 换矩阵相乘求得组合变换矩阵的方法称为矩阵的级联。

•单个基本变换的组合变换 •多个基本变换的组合变换 7.3.1 单个基本变换的组合变换 组合平移变换 对一物体连续平移两次,假定两次平移的距离为(Tx1, Ty1)及(Tx2,Ty2),则 由此可计算出组合矩阵为: 上式表明,进行连续两次平移,实际上是把平移距离相 加,即 组合比例变换 作用于点P的两次连续的比例变换的变换矩阵为: 即: 连续进行两次比例变换,实际上是把相应的比例因子相 乘 组合旋转变换 连续两次旋转的组合变换矩阵可用下式表示 与组合平移的情况相似,连续旋转实际上是把旋转角相 加 7.3.2 多个基本变换的组合变换 相对于任一固定点的比例变换 首先把图形及固定点一起平移,使固定点移到坐标原点上;然后把图形 相对于原点进行比例变换;最后把图形及固定点一起平移,使固定点又 回到原来位置 相对于任一固定点的比例变换 此变换序列可表示为: 其中变换矩阵为: OPENGL程序中的变换顺序 glMatrixMode(GL_MODELVIEW); /指定当前操作矩阵类型 glLoadIdentity(); /设置当前操作矩阵为单位矩阵 glMultMatrix(TT(XA,YA)); /用当前矩阵乘以函数所提供矩阵 glMultMatrix(TS(Sx,Sy)); glMultMatrix(TT(-XA,-YA)); glBegin(GL_POINTS); glVertex3f(x,y,x); glEnd(); 围绕任一基准点的旋转变换 下图所示的为围绕任一基准点A(xA,yA)旋转时,由一变换序列得到一 组合矩阵的过程。

首先,把物体平移,使基准点与坐标原点重合,然后 ,把物体绕原点旋转,最后,把物体平移,使基准点回到原来位置 围绕任一基准点的旋转变换 此变换序列可以用以下矩阵的乘积表示: 关于任意轴的对称变换 以任一直线l为对称轴的对称变换可以用变换合成的方法按如下步骤建立 ①平移使l过坐标原点,记变换为T1,图形A被变换到A1 ②旋转θ角,使l和ox轴重合,记变换为R1,图形Al被变换到A2 ③求图形A关于x轴的对称图形A3,记变换为RFx ④旋转-θ角,记变换为R2,图形A3被变换到A4 ⑤平移使l回到其原先的位置,记变换为T2,图形A4被变换到AsAs即为 A关于l的对称图形 总的变换为: 变换矩阵的级联特性 矩阵相乘是符合结合律的,即在求A、B、C三个矩阵的 积时,可以先把A及B相乘,也可以先把B及C相乘,即 但矩阵相乘是不符合交换律的,即一般矩阵积AB与BA 不相等这样,如果我们要对一物体进行平移及旋转变 换,则要特别注意矩阵级联的次序采用不同的变换次 序,其最后结果是不一样的 7.4 三维几何变换 •三维图形的平移,比例及旋转变换是对二维变换的扩展 •三维旋转一般不能直接由二维变换扩展得到,因为三维 旋转可围绕空间任何方位的轴进行。

•三维几何变换方程也可以用变换矩阵表示任何一个变 换序列均可用一个矩阵表示,此矩阵是把序列中的各个 矩阵级联到一起而得到的 . •对于三维空间点需要用4个数来表示,而相应的变换矩 阵是44阶矩阵 7.4.1 三维坐标系的建立 右手坐标系 :伸出右手,当用大姆指指向x轴的正方向,食指指向y轴的正 方向,则与手心垂直的中指方向就是z轴正向在计算机图形学中,两种 坐标系都可以使用 右手坐标系为大多数人所熟悉,因此在讨论图形的数学问题时常使用右 手坐标系本课程中没有指明时,均指右手坐标系 7.4.2 三维图形几何变换 三维几何变换也可利用齐次坐标的概念,变换可以用一 个44的变换矩阵来表示设三维空间中的点P(x,y,z),其 规格化齐次坐标为(x,y,z,1) 若变换矩阵为T,T为44的矩阵,则变换后的点P’=TP 平移变换 在用三维齐次坐标表示时,把一个点由位置(x,y,z) 平移至位置(x’,y’,z’)可用以下矩阵运算实现: 所示的矩阵表达式与以下三式等效: 比例变换 设空间一点P(x,y,z)以原点为中心,在三根轴上分 别放大或缩小Sx、Sy,Sz倍,变换矩阵为: 旋转变换 三维空间的旋转: •绕x轴的旋转 •绕y轴的旋转 •绕z轴的旋转 •绕空间一条任意轴的旋转 绕x轴的旋转 当点P (x,y,z)绕x轴旋转α角到P’ (x’,y’,z’ )时,点的x 坐标值不变 ,则有: 变换矩阵为: 绕y轴的旋转 当点P (x,y,z)绕y轴旋转β角到P’ (x’,y’,z’ )时,点的y 坐标值不变 ,则有: 变换矩阵为: 绕z轴的旋转 当点P (x,y,z)绕y轴旋转γ角到P’ (x’,y’,z’ )时,点的z 坐标值不变 ,则有: 变换矩阵为: 反射变换 如果要对于x y平面进行变换,此变换实际上是改变z坐标 的符号而保持x、y坐标不变,一点相对于x y平面反射变 换矩阵为: 同样可定义相对于y z平面或x z平面进行变换的矩阵 : 错切变换 三维错切变换是指对定义一个点的三个坐标值中的两个 进行变换,使三维形体发生错切变形的变换 . 下面是以z轴为依赖轴(z值不变)产生三维错切的变换 矩阵 : 围绕任意轴的旋转变换 在给定旋转轴的特征及旋转角之后,可用以下5步完成对 任意轴的旋转: ①平移物体使旋转轴通过坐标原点。

②旋转物体使旋转轴与某一坐标轴重合 ③进行规定的旋转 ④进行反旋转使放置轴回到原来的方位 ⑤进行反平移使旋转轴回到原来的位置 围绕任意轴的旋转变换 首先,假定旋转轴用两点定义P1(x1,y1,,z1) 和P2(x2,y2,,z2), 由此两点定义一向量: 用此向量可求得沿旋转轴的单位向量: 用以下平移矩阵可把物体平移使旋转轴通过坐标原点: 围绕任意轴的旋转变换 要使旋转轴与z轴重合,可通过以下两步实现,首先,围 绕x轴旋转使向量u转到xz平面中;然后围绕y轴旋转使u 与z轴重合 首先确定使u转到xz平面所需的旋转角的正弦及余弦值 围绕任意轴的旋转变换 上面已由的各个分量确定了及的值,由此可得到绕x轴的 旋转矩阵为: 围绕任意轴的旋转变换 下面确定把xz平面中的单位向量围绕轴旋转到正轴的变 换矩阵 因此首先确定b的sin和cos值: sin b=a, cos b=d 由此可得到绕y轴的旋转矩阵为: 围绕任意轴的旋转变换 用上述变换矩阵,可使。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档