1、图形变换 主要介绍?二维几何变换?窗口到视区的变换?三维几何变换 图形变换 主要介绍?二维几何变换?窗口到视区的变换?以下几方面的内容:数学基础:矢量、矩阵及运算 二维几何变换 三维几何变换 投影变换 视窗变换 内容 以下几方面的内容:数学基础:矢量、矩阵及运算 二变换的数学基础?矢量 矢量和?zyxuuuU?zyxvvvV?zzyyxxvuvuvuVU变换的数学基础?矢量 矢量和?变换的数学基础 矢量的数乘 矢量的点积?性质?zyxkukukuUkzzyyxxvuvuvuVU?UVVU?VUVU?000?UUU变换的数学基础 矢量的数乘 矢量的点积?性质变换的数学基础 矢量的长度?单位矢量?
2、矢量的夹角 矢量的叉积 222zyxuuuUUU?VUVU?coszyxzyxvvvuuukjiVU?变换的数学基础 矢量的长度?单位矢量?矢量的夹角变换的数学基础?矩阵 阶矩阵 n阶方阵 零矩阵 行向量与列向量 单位矩阵 矩阵的加法 矩阵的数乘 矩阵的乘法 矩阵的转置 矩阵的逆 mn?变换的数学基础?矩阵 阶矩阵 矩阵的含义 矩阵:由mn个数按一定位置排列的一个 整体,简称mn矩阵。?mnmmnnaaaaaaaaa .21222211 1211A=其中,aij称为矩阵A的第i行第j列元素 变换的数学基础 矩阵的含义 矩阵:由m n 个数按一定位置排列的一个 矩阵运算?加法 设A,B为两个具有
3、相同行和列元素的矩阵 A+B=?数乘 kA=k*aij|i=1.m,j=1,.n?.b .b m22111112121111mnmnmmmnnbaababaaba变换的数学基础 矩阵运算?加法 设A,B 为两个具有相同行和列元素的矩阵?乘法 设A为32矩阵,B为23矩阵 C=A B=C=Cmp=Am n Bnp cij=aik*bkj?单位矩阵 在一矩阵中,其主对角线各元素 aii=1,其余皆为0的矩阵称为单位矩阵。n阶单位矩阵通常记作In。Am n=Am n In?babab abababababababababa322322221221312321221121321322121211311
4、321121111 k=1,n 变换的数学基础?乘法 设A 为3 2 矩阵,B 为2 3 矩阵 C =?逆矩阵 若矩阵A存在AA-1=A-1A=I,则称A-1为A的逆矩阵?矩阵的转置 把矩阵A=(aij)mn的行和列互换而得到的nm矩阵称为A的转置矩阵,记作AT。(AT)T=A (A+B)T=AT+BT (aA)T =aAT (AB)T =BT AT 当A为n阶矩阵,且A=AT,则 A是对称矩阵。变换的数学基础?逆矩阵 若矩阵A 存在A A-1=A-1 A=I,则称A 矩阵运算的基本性质?交换律与结合律师 A+B=B+A;A+(B+C)=(A+B)+C?数乘的分配律及结合律 a(A+B)=aA
5、+aB;a(A B)=(aA)B=A(aB)(a+b)A=aA+bA a(bA)=(ab)A 变换的数学基础 矩阵运算的基本性质?交换律与结合律师 A+B=?矩阵乘法的结合律及分配律 A(B C)=(A B)C (A+B)C=A C+B C C(A+B)=C A+C B?矩阵的乘法不适合交换律 变换的数学基础?矩阵乘法的结合律及分配律 A(B C)=(A 所谓齐次坐标表示法就是由n+1维向量表示一个n维向量。如n维向量(P1,P2,Pn)表示为(hP1,hP2,?hPn,h),其中h称为哑坐标。1、h可以取不同的值,所以同一点的齐次坐标不是唯一的。如普通坐标系下的点(2,3)变换为齐次坐标可以
6、是(1,1.5,0.5)(4,6,2)(6,9,3)等等。2、普通坐标与齐次坐标的关系为“一对多”由普通坐标?h齐次坐标 由齐次坐标h普通坐标 3、当h=1时产生的齐次坐标称为“规格化坐标”,因为前 n个坐标就是普通坐标系下的n维坐标。齐次坐标 所谓齐次坐标表示法就是由n+1 维向量表示一个n 维向量。如n齐次坐标(x,y)点对应的齐次坐标为 (x,y)点对应的齐次坐标为三维空间的一条直线 (,)xy hhh0,?hhyyhxxhh?hzhyyhxxhhh齐次坐标(x,y)点对应的齐次坐标为 (x,y)点对1.将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二维、三维甚至高维空间上的一个点
7、从一个坐标系变换到另一坐标系的有效方法。2.便于表示无穷远点。例如:(x?h,y?h,h),令h等于0 3.齐次坐标变换矩阵形式把直线变换成直线段,平面变换成平面,多边形变换成多边形,多面体变换成多面体。4.变换具有统一表示形式的优点 便于变换合成 便于硬件实现 齐次坐标的作用 1.将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二窗口视图变换?用户域和窗口区 1 用户域:程序员用来定义草图的整个自然空间(WD)a 人们所要描述的图形均在用户域中定义。b 用户域是一个实数域,理论上是连续无限的。2 窗口区:用户指定的任一区域(W)a 窗口区W小于或等于用户域WD b 小于用户域的窗口区W叫
8、做用户域的子域。c 窗口可以有多种类型,矩形窗口、圆形窗口、多边形窗口等等 d 窗口可以嵌套,即在第一层窗口中可再定义第二层窗口,在第I层窗口中可再定义第I+1层窗口等等。窗口视图变换?用户域和窗口区 1 用户域:程序员用来定窗口视图变换 1 屏幕域(DC):设备输出图形的最大区域,是有 限 的 整 数 域。如 图 形 显 示 器 分 辨 率 为1024?768DC0.1023?0.767 2 视图区:任何小于或等于屏幕域的区域 a 视图区用设备坐标定义在屏幕域中 b 窗口区显示在视图区,需做窗口区到视图区的坐标转换。c 视图区可以有多种类型:圆形、矩形、多边形等。d 视图区也可以嵌套。窗口视
9、图变换 1 屏幕域(D C):设备输出图形的最大区域窗口区和视图区的坐标变换 设窗口的四条边界WXL,WXR,WYB,WYT 视图的四条边界VXL,VXR,VYB,VYT 则用户坐标系下的点(即窗口内的一点)(Xw,Yw)对应屏幕视图区中的点(Xs,Ys),其变换公式为?VYBWYBYWYBWYTVYBVYTYVXLWXLXWXLWXRVXLVXRXwsws窗口区和视图区的坐标变换 设窗口的四条边界WX L,WX R,窗口区和视图区的坐标变换?简化为:?1)当a?c时,即x 方向的变化与y方向的变化不同时,视图中的图形会有伸缩变化,图形变形。?2)当a=c=1,b=d=0则Xs=Xw,Ys=Y
10、w,图形完全相同。?思考:前面讲的窗口视图变换时,假设窗口的边和坐标轴平行,如果窗口的边不和坐标轴平行呢?式)1(?dYcYbXaXwsws窗口区和视图区的坐标变换?简化为:?1)当a?c 时,窗口区和视图区的坐标变换?A.先让窗口 FGHI转-角,使它和 FGHI重合。?B.用(1)式进行计算。?窗口区和视图区的坐标变换?A.先让窗口F G H图形变换是计算机图形学基础内容之一。几何变换,投影变换,视窗变换 线性变换,属性不变,拓扑关系不变。作用:?把用户坐标系与设备坐标系联系起来;?可由简单图形生成复杂图形;?可用二维图形表示三维形体;?动态显示。图形变换 图形变换是计算机图形学基础内容之
11、一。几何变换,投影变换,二维图形的显示流程图 二维图形的显示流程图 图形的几何变换?图形变换:对图形的几何信息经过几何变换后产生新的图形。?图形变换的两种形式:?1.图形不变,坐标系改变;?2.图形改变,坐标系不变。?我们所讨论的是针对坐标系的改变而讲的。图形的几何变换?图形变换:对图形的几何信息经过几何变换后产二维图形的几何变换?设二维图形变换前坐标为(x,y,1),变换后为(x*,y*,1)?1 二维变换矩阵?注意:T2D可看作三个行向量,其中?1 0 0:表示x 轴上的无穷远点?0 1 0:表示y 轴上的无穷远点?0 0 1:表示原点?ifchebgdaTD2二维图形的几何变换?设二维图
12、形变换前坐标为(x,y,1)二维图形的几何变换?从变换功能上可把T2D分为四个子矩阵?体放大。则总体缩小;否则,总若变换。:对整体图形进行伸缩处产生一个灭点。:在处产生一个灭点。:在:对图形做投影变换。:对图形进行平移变换。转、对称、错切等变换:对图形进行缩放、旋,10001000111*11?iiyxyxihxhgxghgfcebda?二维图形的几何变换?从变换功能上可把T 2 D 分为四个子矩阵 二维基本变换-平移变换?平移变换?平移变换只改变图形的位置,不改变图形的大小和形状?1101000111*yxyxTyTxTTyxyx?二维基本变换-平移变换?平移变换?平移变换只二维基本变换-比
13、例变换 以坐标原点为放缩参照点 当Sx=Sy=1时:恒等比例变换 当Sx=Sy1时:沿x,y方向等比例放大。当Sx=Sy0:图形沿+x方向作错切位移。ABCDA1B1C1D1?当b0:图形沿+y方向作错切位移。ABCD A1B1C1D1?当d0,大拇指指向轴的方向,其它手指指的方向为旋转方向。?1 0 0 00 cos sin-00 sin cos 00 0 0 11 zy x 1 z y?x三维变换矩阵-旋转变换?矩阵表示为:?遵循右手法三维变换矩阵-旋转变换 绕Y轴旋转 此时,Y坐标不变,X,Z坐标相应变化。x=sin(+)=x*cos +z*sin y=y z=cos(+)=z*cos-
14、x*sin X Y Z(x,z)(x z)X Z O O Z 三维变换矩阵-旋转变换 绕Y 轴旋转 此时,Y 坐标不三维变换矩阵-旋转变换?矩阵表示为?1 0 0 0 0 cos 0 sin0 0 1 0 0 sin-0 cos1 zy x 1 z y?x三维变换矩阵-旋转变换?矩阵表示为?三维变换矩阵-旋转变换 绕Z轴旋转 此时,Z坐标不变,X,Y坐标相应变化。x=cos(+)=x*cos -y*sin y=sin(+)=x*sin+y*cos z=z X Y Z(x,y)(x y)X Y O O 三维变换矩阵-旋转变换 绕Z 轴旋转 此时,Z 坐三维变换矩阵-旋转变换?矩阵表示为:?1 0
15、 0 0 0 1 0 0 0 0 cos sin-0 0 sin cos1 zy x 1 z y?x三维变换矩阵-旋转变换?矩阵表示为:?绕任意轴的旋转变换-方法1?a)绕过原点的任意轴的旋转变换?空间点P(x,y,z)绕过原点的任意轴ON逆时针旋转角的旋转变换。?基本思想基本思想:因ON轴不是坐标轴,应设法旋转该轴,使之与某一坐标轴重合,然后进行旋转角的变换,最后按逆过程,恢复该轴的原始位置。绕任意轴的旋转变换-方法1?a)绕过原点的绕任意轴的旋转变换-方法1?解:令ON为单位长度,其方向余弦为:?、为ON轴与各坐标轴的夹角。?变换过程如下:?1)让ON轴绕z轴旋转-,使之在XOZ平面上。其
16、中 222;cos;cos;coszyxrrzcrybrxa?22sinbab?22cosbaa?绕任意轴的旋转变换-方法1?解:令O N 为单位长度,其方向余绕任意轴的旋转变换-方法1?因此?2)让在XOZ平面上的ON绕y轴旋转-,使之与z轴重合。其中?因此?1000010000cossin00sincos?zR22si nba?c?cos?10000cos0sin00100sin0cos?yR绕任意轴的旋转变换-方法1?因此?2)让在X O Z 平面上绕任意轴的旋转变换-方法1?3)P点绕ON轴(即z轴)逆时针旋转 角?4)ON轴绕y轴旋转?5)ON轴绕z轴旋转?因此?b)绕任意轴的旋转变
17、换?上 面 的ON轴若 不 过 原 点,而是 过 任 意 点(x0,y0,z0),变换如何呢??zR?yR?zR?zyzyzRRRRRT?绕任意轴的旋转变换-方法1?3)P 点绕O N 轴(即z 轴)逆时绕任意轴的旋转变换-方法2?组合变换:空间一点绕空间任一轴线的旋转变换。要通过将几个基本的变换组合在一起,得到该组合变换。假定空间任一直线的方向矢量分别为:(l,m,n)并经过原点 (l,m,n)(x,y,z)(x,y,z)X Y Z O N 绕任意轴的旋转变换-方法2?组合变换:空间一点绕空间任一轴绕任意轴的旋转变换-方法2 能否转换成绕X、Y或Z轴旋转的变换?ON绕Z轴旋转2 到XOZ平面
18、上,然后再绕Y轴旋转1,即可与Z轴重合。O N 2 1 Y Z X 绕任意轴的旋转变换-方法2 能否转换成绕X、Y 或Z 轴旋转的变绕任意轴的旋转变换-方法2 这样,可得空间上任一点绕ON轴旋转的变换过程如下:1)首先通过两次旋转,使ON轴与Z轴重合;2)然后使点绕Z轴旋转 角;3)最后通过与1)相反的旋转,使ON轴回 到原来的位置。假设,绕Z轴的旋转-2矩阵为T1 绕Y轴的旋转-1矩阵为T2 绕Z轴的旋转 矩阵为T3 绕Y轴的旋转1矩阵为T4 绕Z轴的旋转2矩阵为T5 绕任意轴的旋转变换-方法2 这样,可得空间上任一点绕O N 轴旋绕任意轴的旋转变换-方法2 则总体变换矩阵为:T=T1 T2
19、 T3 T4 T5 由上推导可看出,只要能求出 1、2的值,即可通过上式获得绕ON轴的变换矩阵。由于矢量(0 0 1)绕Y轴旋转1,再绕Z轴旋转2 即可与ON轴重合。即:?1 0 0 0 0 1 0 0 0 0 cos sin-0 0 sin cos 1 0 0 0 0 cos 0 sin0 0 1 0 0 sin-0 cos1 1 0 01n m l22221111?绕任意轴的旋转变换-方法2 则总体变换矩阵为:l m n 1=sin1cos2,sin1sin2,cos1,1 l =sin1cos2 m=sin1sin2 n=cos1 从而通过上式即可得到 1、2 的值。问题:当任一轴线的端点不在原点时,此时应如 何计算变换矩阵?绕任意轴的旋转变换-方法2 l m n
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。