第章二维变换及二维观察_第1页
第章二维变换及二维观察_第2页
第章二维变换及二维观察_第3页
第章二维变换及二维观察_第4页
第章二维变换及二维观察_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1基本概念■齐次坐标用n+1维向量表示一个n维向量━齐次坐标表示法(P1,P2,…,Pn)→(hP1,hP2,…,hPn,h)

h称为哑坐标本文档共96页;当前第1页;编辑于星期三\15点37分说明:①h可以取不同的值,所以同一点的齐次坐标不是唯一的。(2,3)→(1,1.5,0.5)(4,6,2)(6,9,3)等等。②普通坐标与齐次坐标的关系为“一对多”由普通坐标h→齐次坐标由齐次坐标÷h→普通坐标③当h=1时产生的齐次坐标称为“规格化坐标”,因为前n个坐标就是普通坐标系下的n维坐标。本文档共96页;当前第2页;编辑于星期三\15点37分(x,y)点对应的齐次坐标为(x,y)点对应的齐次坐标为三维空间的一条直线本文档共96页;当前第3页;编辑于星期三\15点37分规范化齐次坐标的作用:

可将图形变换表示为图形点集规范化次坐标矩阵与某一变换矩阵相乘的形式。如:本文档共96页;当前第4页;编辑于星期三\15点37分■几何变换对图形的几何信息经过平移、比例、旋转等变换后产生新的图形,是图形在方向、尺寸和形状方面的变换。本文档共96页;当前第5页;编辑于星期三\15点37分■二维变换矩阵二维空间中某点的变换可以表示成点的齐次坐标与3阶的二维变换矩阵T2D相乘:二维变换矩阵本文档共96页;当前第6页;编辑于星期三\15点37分6.2基本几何变换相对于坐标原点和坐标轴进行的几何变换。■平移变换将p点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。平移是一种不产生变形而移动物体的刚体变换。本文档共96页;当前第7页;编辑于星期三\15点37分Tx,Ty称为平移矢量变换矩阵本文档共96页;当前第8页;编辑于星期三\15点37分例:已知点P(20,30),求平移(Tx=20,Ty=15)后的坐标。本文档共96页;当前第9页;编辑于星期三\15点37分■比例变换对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。其中Sx和Sy称为比例系数。本文档共96页;当前第10页;编辑于星期三\15点37分变换矩阵以坐标原点为放缩参照点本文档共96页;当前第11页;编辑于星期三\15点37分■旋转变换

将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p’的重定位过程。本文档共96页;当前第12页;编辑于星期三\15点37分逆时针旋转θ角αθρ(x,y)(x´,y´)本文档共96页;当前第13页;编辑于星期三\15点37分例:求P(2,1)逆时针旋转30°后的坐标。本文档共96页;当前第14页;编辑于星期三\15点37分当θ很小时,简化计算:本文档共96页;当前第15页;编辑于星期三\15点37分■对称变换

原图形关于某一轴线或原点的镜像。本文档共96页;当前第16页;编辑于星期三\15点37分本文档共96页;当前第17页;编辑于星期三\15点37分当b=d=0,a=1,e=-1时,与x轴对称:本文档共96页;当前第18页;编辑于星期三\15点37分当b=d=0,a=-1,e=1时,与y轴对称:本文档共96页;当前第19页;编辑于星期三\15点37分当b=d=0,a=e=-1时,与原点对称:本文档共96页;当前第20页;编辑于星期三\15点37分当b=d=1,a=e=0时,与y=x对称:本文档共96页;当前第21页;编辑于星期三\15点37分当b=d=-1,a=e=0时,与y=-x对称:本文档共96页;当前第22页;编辑于星期三\15点37分

■错切变换

也称为剪切、错位变换,用于产生弹性物体的变形处理。本文档共96页;当前第23页;编辑于星期三\15点37分1)当b=0时,图形的y坐标不变;当c>0:图形沿+x方向作错切位移。当c<0:图形沿-x方向作错切位移。2)当c=0时,图形的x坐标不变;当b>0:图形沿+y方向作错切位移。当b<0:图形沿-y方向作错切位移。本文档共96页;当前第24页;编辑于星期三\15点37分■二维图形几何变换的计算几何变换均可表示成P’=P*T的形式

1.点的变换

2.直线的变换 3.多边形的变换 4.曲线的变换本文档共96页;当前第25页;编辑于星期三\15点37分6.3复合变换·图形作一次以上的几何变换,变换结果是每次的变换矩阵相乘。·任何一复杂的几何变换都可以看作基本几何变换的组合形式。复合变换具有形式:本文档共96页;当前第26页;编辑于星期三\15点37分■二维复合平移

P(x,y)•••P(x

y1)P*(x*y*1)(Tx1,Ty1)(Tx2,Ty2)本文档共96页;当前第27页;编辑于星期三\15点37分本文档共96页;当前第28页;编辑于星期三\15点37分得到二维复合平移矩阵:相加性本文档共96页;当前第29页;编辑于星期三\15点37分■二维复合比例•••P(x,y)P(x

y1)P*(x*y*1)(Sx1,Sy1)(Sx2,Sy2)本文档共96页;当前第30页;编辑于星期三\15点37分本文档共96页;当前第31页;编辑于星期三\15点37分二维复合比例矩阵:相乘性本文档共96页;当前第32页;编辑于星期三\15点37分■二维复合旋转•••θ1θ2P(x,y)P(x

y1)P*(x*y*1)本文档共96页;当前第33页;编辑于星期三\15点37分本文档共96页;当前第34页;编辑于星期三\15点37分二维复合旋转矩阵:相加性本文档共96页;当前第35页;编辑于星期三\15点37分■二维多种复合变换例:将P(2,3)平移(Tx=5,Ty=6)后再比例(Sx=2,Sy=0.5)变换。本文档共96页;当前第36页;编辑于星期三\15点37分■相对任一参考点的二维几何变换相对某个参考点(xF,yF)作二维几何变换,其变换过程为:(分解成基本的几何变换) (1)平移。 (2)针对原点进行二维几何变换。 (3)反平移。本文档共96页;当前第37页;编辑于星期三\15点37分例1.相对点(xF,yF)的旋转变换T(-XF,-YF)•R(θ)•T(XF,YF)30º(1,1)(2.5,1.5)(Xp,Yp)T(-1,-1)•R(30º)•T(1,1)本文档共96页;当前第38页;编辑于星期三\15点37分本文档共96页;当前第39页;编辑于星期三\15点37分本文档共96页;当前第40页;编辑于星期三\15点37分例2.相对点(xF,yF)的比例变换

T(-XF,-YF)•S(Sx,Sy)•T(XF,YF)(1,1)(2,1.5)(Xp,Yp)T(-1,-1)•S(2,2.5)•T(1,1)

Sx=2,Sy=2.5本文档共96页;当前第41页;编辑于星期三\15点37分■相对任意方向的二维几何变换相对任意方向作二维几何变换,其变换的过程是: (1)旋转变换 (2)针对坐标轴进行二维几何变换; (3)反向旋转本文档共96页;当前第42页;编辑于星期三\15点37分例3.

相对直线y=x的反射变换①将直线顺时针旋转θ角:②图形关于x轴的反射变换:••(x,y)本文档共96页;当前第43页;编辑于星期三\15点37分③将(x,y)逆时针旋转θ角:••(x,y)可得复合变换矩阵:本文档共96页;当前第44页;编辑于星期三\15点37分■坐标系之间的变换问题:本文档共96页;当前第45页;编辑于星期三\15点37分可以分两步进行:本文档共96页;当前第46页;编辑于星期三\15点37分于是:

本文档共96页;当前第47页;编辑于星期三\15点37分假定xp=3,yp=4,x0=1,y0=1,Q=30º,则:本文档共96页;当前第48页;编辑于星期三\15点37分■小结

1.任何几何变换都可以由齐次坐标向量与相应的变换矩阵相乘表示,不同的变换归结为寻找其相应的变换矩阵。2.复合变换可以看成一系列基本几何变换的合成,将这一系列基本几何变换的变换矩阵相乘得到复合变换矩阵。本文档共96页;当前第49页;编辑于星期三\15点37分■光栅变换直接对帧缓存中象素点进行操作的变换。

光栅平移变换:

本文档共96页;当前第50页;编辑于星期三\15点37分90°、180°和270°的光栅旋转变换:先颠倒每行像素值,后交换行列先颠倒每行像素值,后颠倒行的次序本文档共96页;当前第51页;编辑于星期三\15点37分任意角度的光栅旋转变换:

本文档共96页;当前第52页;编辑于星期三\15点37分光栅比例变换:

本文档共96页;当前第53页;编辑于星期三\15点37分6.4两维观察■基本概念窗口(Window)在用户坐标系中需要进行观察和处理的一个坐标区域。视区(Viewport)窗口映射到显示设备上的坐标区域。本文档共96页;当前第54页;编辑于星期三\15点37分 要将窗口内的图形显示到视区中,必须经过将窗口到视区的变换(Window-ViewportTransformation)处理,这种变换称观察变换(ViewingTransformation)。本文档共96页;当前第55页;编辑于星期三\15点37分观察坐标系依据窗口的方向和形状在用户坐标平面中定义的直角坐标系。x用户y用户窗口y观察x观察(a)观察坐标系引入观察坐标系的目的:简化窗口到视区的变换。本文档共96页;当前第56页;编辑于星期三\15点37分规格化设备坐标:将二维的设备坐标系规格化到(0.0,0.0)到(1.0,1.0)的坐标范围内形成的坐标系。x用户y用户窗口y观察x观察(a)观察坐标系1xNDCyNDC视区1(b)规格化设备坐标系引入规格化坐标系的目的:使观察变换独立于设备。本文档共96页;当前第57页;编辑于星期三\15点37分

引入了观察坐标系和规格化设备坐标系后,观察变换分为如下图所示的几个步骤,通常称为二维观察流程。

本文档共96页;当前第58页;编辑于星期三\15点37分二维观察流程的设置,为图形的观察提供了非常灵活的方式:变焦距效果本文档共96页;当前第59页;编辑于星期三\15点37分整体放缩效果漫游效果:

通过移动窗口。本文档共96页;当前第60页;编辑于星期三\15点37分■用户坐标系到观察坐标系的变换

由两个变换步骤合成:

①将观察坐标系原点移到用户坐标系原点。本文档共96页;当前第61页;编辑于星期三\15点37分②绕原点旋转使两坐标系重合。

本文档共96页;当前第62页;编辑于星期三\15点37分■窗口到视区的变换本文档共96页;当前第63页;编辑于星期三\15点37分 要将窗口内的点(xw,yw)映射到相对应的视区内的点(xv,yv)需进行以下步骤:

①将窗口左下角点移至观察坐标系的原点。

②针对原点进行比例变换。

③进行反平移。本文档共96页;当前第64页;编辑于星期三\15点37分6.5裁剪在二维观察中,需要在观察坐标系下对窗口进行裁剪,即只保留窗口内的那部分图形,去掉窗口外的图形。假设窗口是标准矩形,即边与坐标轴平行的矩形。(wxl,wyt)——(wxr,wyb)本文档共96页;当前第65页;编辑于星期三\15点37分■点的裁剪保留满足以下条件的点:本文档共96页;当前第66页;编辑于星期三\15点37分■直线段的裁剪假定直线段用p1(x1,y1)p2(x2,y2)表示。直线段和剪裁窗口的可能关系:•完全落在窗口内•完全落在窗口外•与窗口边界相交

本文档共96页;当前第67页;编辑于星期三\15点37分•实交点:与窗口边界的交点。•虚交点:与窗口边界延长线的交点,或延长线与窗口边界的交点。

本文档共96页;当前第68页;编辑于星期三\15点37分Cohen-Sutherland算法

编码裁剪算法基本思想:对每条直线段p1p2分三种情况处理:

①直线段完全可见,“简取”之。

②直线段完全不可见,“简弃”之。

③直线段既非“简取”又非“简弃”,需对直线段按交点进行分段,分段后重复上述处理。

本文档共96页;当前第69页;编辑于星期三\15点37分编码:对于任一端点(x,y),根据其坐标所在的区域,赋予一个4位的二进制码D3D2D1D0。编码规则如下:若x<wxl,则D0=1,否则D0=0;若x>wxr,则D1=1,否则D1=0;若y<wyb,则D2=1,否则D2=0;若y>wyt,则D3=1,否则D3=0。

本文档共96页;当前第70页;编辑于星期三\15点37分裁剪:裁剪一条线段时,先求出端点p1和p2的编码code1和code2,然后:①若code1|code2=0:简取。②若code1&code2≠0:简弃。本文档共96页;当前第71页;编辑于星期三\15点37分

③否则:求直线段与窗口边界的交点,弃外段。再对另一段重复进行上述处理…。本文档共96页;当前第72页;编辑于星期三\15点37分求交:假定直线的端点为(x1,y1)和(x2,y2)•左、右边界交点的计算:•上、下边界交点的计算:

本文档共96页;当前第73页;编辑于星期三\15点37分算法的步骤:

①输入直线段的两端点坐标:p1(x1,y1)、p2(x2,y2),以及窗口的四条边界坐标:wyt、wyb、wxl和wxr。②对p1、p2进行编码:点p1的编码为code1,点p2的编码为code2。本文档共96页;当前第74页;编辑于星期三\15点37分③若code1|code2=0,简取之,转⑥;否则,若code1&code2≠0,简弃之,转⑦;当上述两条均不满足时,进行步骤④。④确保p1在窗口外部:若p1在窗口内,则交换p1和p2的坐标值和编码。本文档共96页;当前第75页;编辑于星期三\15点37分⑤按左、右、下、上的顺序求出直线段与窗口边界的交点,并用该交点的坐标值替换p1的坐标值。去掉p1s这一段。转②。⑥画当前的直线段p1p2。⑦算法结束。

本文档共96页;当前第76页;编辑于星期三\15点37分算法的特点:对完全可见或完全不可见线段:快速。特别适用于大窗口情况。本文档共96页;当前第77页;编辑于星期三\15点37分中点分割算法基本思想:当对直线段不能简取也不能简弃时,简单地把线段等分为二段,对两段重复前述测试处理,直至每条线段完全在窗口内或完全在窗口外。

本文档共96页;当前第78页;编辑于星期三\15点37分算法的步骤:①输入直线段的两端点坐标:p1(x1,y1)、p2(x2,y2),以及窗口的四条边界坐标:wyt、wyb、wxl和wxr。②对p1、p2进行编码:点p1的编码为code1,点p2的编码为code2。本文档共96页;当前第79页;编辑于星期三\15点37分③若code1|code2=0,简取之,保留端点坐标,转⑤;否则,若code1&code2≠0,简弃之,转⑤;当上述两条均不满足时,进行步骤④。④求出直线段的中点M,将p1M、p2M入栈。本文档共96页;当前第80页;编辑于星期三\15点37分⑤当栈不空时,从栈中弹出一条直线段,取为p1p2,转②进行处理。否则,继续⑥。⑥当栈为空时,合并保留的直线段端点,得到窗口内的直线段p1p2。画出当前的直线段p1p2,算法结束。本文档共96页;当前第81页;编辑于星期三\15点37分中点分割算法的核心思想是通过二分逼近来确定直线段与窗口的交点。重新构造算法步骤:①若code1|code2=0,对直线段应简取之,结束;否则,若code1&code2≠0,对直线段可简弃之,结束;当这两条均不满足时,进行步骤②。本文档共96页;当前第82页;编辑于星期三\15点37分②找出该直线段离窗口边界最远的点和该直线段的中点。判中点是否在窗口内:若不在,则把中点和离窗口边界最远点构成的线段丢掉,以线段上的另一点和该中点再构成线段求其中点;如中点在窗口内,则又以中点和最远点构成线段,并求其中点,直到中点接近窗口边界,则该中点就是该线段落在窗口内的一个端点坐标。③如另一点在窗口内,则经②即确定了该线段在窗口内的部分。如另一点不在窗口内,则该点和所求出的在窗口上的那一点构成一条线段,重复步骤②,即可求出落在窗口内的另一点。本文档共96页;当前第83页;编辑于星期三\15点37分算法特点:只用到加法和位移运算,便于用硬件实现。本文档共96页;当前第84页;编辑于星期三\15点37分

梁友栋-Barsky算法设要裁剪的线段是P0P1。P0P1和窗口边界交于A,B,C,D四点。算法的基本思想是:从A,B和P0三点中找出最靠近P1的点(P0)。从C,D和P1中找出最靠近P0的点(C)。那么P0C就是P0P1线段上的可见部分。本文档共96页;当前第85页;编辑于星期三\15点37分线段的参数表示:x=x0+t△xy=y0+t△y0<=t<=1△x=x1-x0△y=y1-y0窗口边界的四条边分为两类:始边和终边。本文档共96页;当前第86页;编辑于星期三\15点37分交点计算:•求出P0P1与两条始边的交点参数t0,t1,令tL=max(t0,t1,0),则tL即为三者中离p1最近的点的参数•求出p0p1与两条终边的交点参数t2,t3,令tu=min(t2,t3,1),则tU即为三者中离p0最近的点的参数•若tu>tL,则可见线段区间[tL,tu]t0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论