计算机图形学-第五讲-图形变换

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1图形变换是计算机图形学基础内容之一。几何变换,投影变换,窗视变换线性变换,属性不变,拓扑关系不变。作用:•把用户坐标系与设备坐标系联系起来;•可由简单图形生成复杂图形;•可用二维图形表示三维形体;•动态显示。图形变换2二维图形的显示流程图从应用程序得到图形的用户坐标对窗口区进行裁剪窗口区到视图区的规格化变换视图区从规格化坐标系到设备坐标系的变换WCWCNDCDC在图形设备上输出3窗口视图变换•用户域和窗口区1.用户域:程序员用来定义草图的整个自然空间(WD)a人们所要描述的图形均在用户域中定义。b用户域是一个实数域,理论上是连续无限的。2.窗口区:用户指定的任一区域(W)a窗口区W小于或等于用户域WDb小于用户域的窗口区W叫做用户域的子域。c窗口可以有多种类型,矩形窗口、圆形窗口、多边形窗口等等d窗口可以嵌套,即在第一层窗口中可再定义第二层窗口,在第I层窗口中可再定义第I+1层窗口等等。4窗口视图变换1.屏幕域(DC):设备输出图形的最大区域,是有限的整数域。如图形显示器分辨率为1024768→DC[0..1023][0..767]2.视图区:任何小于或等于屏幕域的区域a视图区用设备坐标定义在屏幕域中b窗口区显示在视图区,需做窗口区到视图区的坐标转换。c视图区可以有多种类型:圆形、矩形、多边形等。d视图区也可以嵌套。5窗口区和视图区的坐标变换设窗口的四条边界WXL,WXR,WYB,WYT视图的四条边界VXL,VXR,VYB,VYT则用户坐标系下的点(即窗口内的一点)(Xw,Yw)对应屏幕视图区中的点(Xs,Ys),其变换公式为6VYBWYBYWYBWYTVYBVYTYVXLWXLXWXLWXRVXLVXRXwsws7窗口区和视图区的坐标变换•简化为:•1)当ac时,即x方向的变化与y方向的变化不同时,视图中的图形会有伸缩变化,图形变形。•2)当a=c=1,b=d=0则Xs=Xw,Ys=Yw,图形完全相同。式)1(dYcYbXaXwsws8所谓齐次坐标表示法就是由n+1维向量表示一个n维向量。如n维向量(P1,P2,…,Pn)表示为(hP1,hP2,hPn,h),其中h称为哑坐标。1、h可以取不同的值,所以同一点的齐次坐标不是唯一的。如普通坐标系下的点(2,3)变换为齐次坐标可以是(1,1.5,0.5)(4,6,2)(6,9,3)等等。2、普通坐标与齐次坐标的关系为“一对多”由普通坐标h→齐次坐标3、当h=1时产生的齐次坐标称为“规格化坐标”,因为前n个坐标就是普通坐标系下的n维坐标。几何变换齐次坐标91.将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二维、三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法。2.便于表示无穷远点。例如:(xh,yh,h),令h等于03.变换具有统一表示形式的优点–便于变换合成–便于硬件实现齐次坐标的作用10二维图形的几何变换•设二维图形变换前坐标为(x,y,1),变换后为(x*,y*,1)•1.二维变换矩阵•注意:T2D可看作三个行向量,其中•[100]:表示x轴上的无穷远点•[010]:表示y轴上的无穷远点•[001]:表示原点ifchebgdaTD211二维图形的几何变换•从变换功能上可把T2D分为四个子矩阵体放大。则总体缩小;否则,总若变换。:对整体图形进行伸缩处产生一个灭点。:在处产生一个灭点。:在:对图形做投影变换。。:对图形进行平移变换。转、对称、错切等变换:对图形进行缩放、旋,10001000111**11iiyxyxihyhgxghgfcebda12二维基本变换-平移变换•平移变换•平移变换只改变图形的位置,不改变图形的大小和形状1101000111**yxyxTyTxTTyxyx13二维基本变换-比例变换–以坐标原点为放缩参照点–当Sx=Sy=1时:恒等比例变换–当Sx=Sy1时:沿x,y方向等比例放大。–当Sx=Sy1时:沿x,y方向等比例缩小–当SxSy时:沿x,y方向作非均匀的比例变换,图形变形。1100000011**ySxSSSyxyxyxyx14二维基本变换-对称变换•当Sx=-1,Sy=1时,(x*y*1)=(-xy1):与y轴对称的反射变换。•当Sx=1,Sy=-1时,(x*y*1)=(x-y1):与x轴对称的反射变换。•当Sx=-1,Sy=-1时,(x*y*1)=(-x-y1):与原点对称的反射变换。15二维基本变换-旋转变换•注意;θ是逆时针旋转角度。cossinxy'cos()coscossinsincossin'sin()sincoscossinsincosxxyyxy1cossinsincos1000cossin0sincos11**yxyxyxyxαθρ(x,y)(x´,y´)16二维基本变换-错切变换•1)当d=0时,(x*y*1)=(x+byy1):图形的y坐标不变;•当b0:图形沿+x方向作错切位移。ABCD→A1B1C1D1•当b0:图形沿-x方向作错切位移。ABCD→A2B2C2D21100010111**ydxbyxbdyxyx17二维基本变换-错切变换•2)当b=0时,(x*y*1)=(xdx+y1)图形的x坐标不变;•当d0:图形沿+y方向作错切位移。ABCD→A1B1C1D1•当d0:图形沿-y方向作错切位移。ABCD→A2B2C2D218二维基本变换-错切变换•3)当b0且d0时,•(x*y*1)=(x+bydx+y1):图形沿x,y两个方向作错切位移。•∴错切变换引起图形角度关系的改变,甚至导致图形发生变形。19复合变换•复合变换又称级联变换,指对图形做一次以上的几何变换。•注意:任何一个线性变换都可以分解为上述几类变换。20例1:复合平移•求点P(x,y)经第一次平移变换(Tx1,Ty1),第二次平移变换(Tx2,Ty2)后的坐标P*(x*,y*)•解:设点P(x,y,1)经第一次平移变换后的坐标为P(xy1),则•经第二次平移变换后的坐标为P*(x*y*1)•∴变换矩阵为Tt=Tt1•Tt21111101000111'''tyxTyxTTyxyxP21221122110100011010001110100011''1***ttyxyxyxTTyxTTTTyxTTyxyxP21例2:旋转变换•对参考点F(xf,yf)做旋转变换。•解:•1、把旋转中心F(xf,yf)平移至坐标原点,即坐标系平移(-xf,-yf),则•2、进行旋转变换•ffffyxTyxyxyxyx110100011111Tyxyxyx11000cossin0sincos1111112222旋转变换•将坐标系平移回原来的原点•因此变换矩阵:ffffyxTyxyxyxyx1101000111**2222ffffyxTTyxTM)(23例3:任意反射轴的反射变换•任一图形关于任意反射轴y=a+bx的反射变换•解:1.将坐标原点平移到(0,a)处100100011aT24任意的反射轴的反射变换•2.将反射轴(已平移后的直线)按顺时针方向旋转θ角,使之与x轴重合•3.图形关于x轴的反射变换•4.将反射轴逆时针旋转θ角1000cossin0sincosR1000cossin0sincosR1000100012T25任意的反射轴的反射变换•5.恢复反射轴的原始位置•因此•100100013aT321TRTRTT26三维几何变换•三维其次坐标•(x,y,z)点对应的齐次坐标为•标准齐次坐标(x,y,z,1)•右手坐标系),,,(hzyxhhh0,,,hhzzhyyhxxhhh27三维几何变换•变换矩阵•平移变换•比例变换444342413433323124232221141312113aaaaaaaaaaaaaaaaTD1010000100001zyxTTT1000000000000zyxSSS28三维变换矩阵-对称变换在二维变换下,对称变换是以线和点为基准,在三维变换下,对称变换则是以面、线、点为基准的。–对称于XOY平面[x'y'z'1]=[xy-z1]=[xyz1]–对称于YOZ平面[x'y'z'1]=[-xyz1]=[xyz1]–对称于XOZ平面[x'y'z'1]=[x-yz1]=[xyz1]100001-0000100001100001000010000110000100001-0000129三维变换矩阵-旋转变换–绕X轴变换空间上的立体绕X轴旋转时,立体上各点的X坐标不变,只是Y、Z坐标发生相应的变化。x'=xy'=ρcos(α+θ)=y*cosθ-z*sinθz'=ρsin(α+θ)=y*sinθ+z*cosθXYZ(y,z)(y'z')θθYZαOO(y'z')(y,z)Z30三维变换矩阵-旋转变换•矩阵表示为:•遵循右手法则,即若θ0,大拇指指向轴的方向,其它手指指的方向为旋转方向。10000cossin-00sincos000011zyx1z'y''x31三维变换矩阵-旋转变换–绕Y轴旋转此时,Y坐标不变,X,Z坐标相应变化。x'=ρsin(α+θ)=x*cosθ+z*sinθy'=yz'=ρcos(α+θ)=z*cosθ-x*sinθXYZ(x,z)(x'z')θXZαOOZ32三维变换矩阵-旋转变换•矩阵表示为10000cos0sin00100sin-0cos1zyx1z'y''x33三维变换矩阵-旋转变换–绕Z轴旋转此时,Z坐标不变,X,Y坐标相应变化。x'=ρcos(α+θ)=x*cosθ-y*sinθy'=ρsin(α+θ)=x*sinθ+y*cosθz'=zXYZ(x,y)(x'y')θXYαOO34三维变换矩阵-旋转变换•矩阵表示为:1000010000cossin-00sincos1zyx1z'y''x35绕任意轴的旋转变换•基本思想:因任意轴不是坐标轴,应设法旋转该轴,使之与某一坐标轴重合,然后进行旋转θ角的变换,最后按逆过程,恢复该轴的原始位置。36绕任意轴的旋转变换(1)将空间直线平移,使之通过坐标原点T=01000010-X1-Y1-Z111000(2)绕x轴旋转〆角使之位于XOZ平面内37直线段L在YOZ平面上的投影L’L’2=B2+C2Sin〆=B/L’cos〆=C/L’zxyBCA〆L’LßPQD绕任意轴的旋转变换380cos〆sin〆00-sin〆cos〆000011000Rx=(3)绕y轴顺时针旋转ß角(使之与Z轴重合)由于绕x轴旋转时,x坐标不变AL’LßSinß=A/Lcosß=L’/LL2-A2=B2+C2=L’2绕任意轴的旋转变换390100-sinß0cosß00001cosß0sin

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功