计算机图形学教案第6章二维变换及二维观察市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第1页
计算机图形学教案第6章二维变换及二维观察市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第2页
计算机图形学教案第6章二维变换及二维观察市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第3页
计算机图形学教案第6章二维变换及二维观察市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第4页
计算机图形学教案第6章二维变换及二维观察市公开课一等奖百校联赛优质课金奖名师赛课获奖课件_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

第6章

二维变换及二维观察本章要处理问题

■怎样对二维图形进行方向、尺寸和形状方面变换■怎样方便地实现在显示设备上对二维图形进行观察

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

h称为哑坐标2/100说明:①h能够取不一样值,所以同一点齐次坐标不是唯一。(2,3)→(1,1.5,0.5)(4,6,2)(6,9,3)等等。②普通坐标与齐次坐标关系为“一对多”由普通坐标

h→齐次坐标由齐次坐标÷h→普通坐标③当h=1时产生齐次坐标称为“规格化坐标”,因为前n个坐标就是普通坐标系下n维坐标。3/100(x,y)点对应齐次坐标为(x,y)点对应齐次坐标为三维空间一条直线4/100规范化齐次坐标作用:可将图形变换表示为图形点集规范化次坐标矩阵与某一变换矩阵相乘形式。如:5/100■几何变换对图形几何信息经过平移、百分比、旋转等变换后产生新图形,是图形在方向、尺寸和形状方面变换。6/100■二维变换矩阵二维空间中某点变换能够表示成点齐次坐标与3阶二维变换矩阵T2D相乘:二维变换矩阵7/1006.2基本几何变换相对于坐标原点和坐标轴进行几何变换。■平移变换将p点沿直线路径从一个坐标位置移到另一个坐标位置重定位过程。平移是一个不产生变形而移动物体刚体变换。8/100Tx,Ty称为平移矢量变换矩阵9/100例:已知点P(20,30),求平移(Tx=20,Ty=15)后坐标。10/100■百分比变换对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。其中Sx和Sy称为百分比系数。11/100变换矩阵以坐标原点为放缩参考点12/100■旋转变换

将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新点p’重定位过程。13/100逆时针旋转θ角αθρ(x,y)(x´,y´)14/100例:求P(2,1)逆时针旋转30°后坐标。15/100当θ很小时,简化计算:16/100■对称变换

原图形关于某一轴线或原点镜像。17/10018/100当b=d=0,a=1,e=-1时,与x轴对称:19/100当b=d=0,a=-1,e=1时,与y轴对称:20/100当b=d=0,a=e=-1时,与原点对称:21/100当b=d=1,a=e=0时,与y=x对称:22/100当b=d=-1,a=e=0时,与y=-x对称:23/100

■错切变换

也称为剪切、错位变换,用于产生弹性物体变形处理。24/1001)当b=0时,图形y坐标不变;当c>0:图形沿+x方向作错切位移。当c<0:图形沿-x方向作错切位移。2)当c=0时,图形x坐标不变;当b>0:图形沿+y方向作错切位移。当b<0:图形沿-y方向作错切位移。25/100■二维图形几何变换计算几何变换均可表示成P’=P*T形式

1.点变换

2.直线变换 3.多边形变换 4.曲线变换26/1006.3复合变换·图形作一次以上几何变换,变换结果是每次变换矩阵相乘。·任何一复杂几何变换都能够看作基本几何变换组合形式。复合变换含有形式:27/100■二维复合平移

P(x,y)•••P

(x

y

1)P*(x*y*1)(Tx1,Ty1)(Tx2,Ty2)28/10029/100得到二维复合平移矩阵:相加性30/100■二维复合百分比•••P(x,y)P

(x

y

1)P*(x*y*1)(Sx1,Sy1)(Sx2,Sy2)31/10032/100二维复合百分比矩阵:相乘性33/100■二维复合旋转•••θ1θ2P(x,y)P

(x

y

1)P*(x*y*1)34/10035/100二维复合旋转矩阵:相加性36/100■二维各种复合变换例:将P(2,3)平移(Tx=5,Ty=6)后再百分比(Sx=2,Sy=0.5)变换。37/100■相对任一参考点二维几何变换相对某个参考点(xF,yF)作二维几何变换,其变换过程为:(分解成基本几何变换) (1)平移。 (2)针对原点进行二维几何变换。 (3)反平移。38/100例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)39/10040/10041/100例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.542/100■相对任意方向二维几何变换相对任意方向作二维几何变换,其变换过程是: (1)旋转变换 (2)针对坐标轴进行二维几何变换; (3)反向旋转43/100例3.

相对直线y=x反射变换①将直线顺时针旋转θ角:②图形关于x轴反射变换:••(x,y)44/100③将(x,y)逆时针旋转θ角:••(x,y)可得复合变换矩阵:45/100■坐标系之间变换问题:46/100能够分两步进行:47/100于是:

48/100假定xp=3,yp=4,x0=1,y0=1,Q=30º,则:49/100■小结

1.任何几何变换都能够由齐次坐标向量与对应变换矩阵相乘表示,不一样变换归结为寻找其对应变换矩阵。2.复合变换能够看成一系列基本几何变换合成,将这一系列基本几何变换变换矩阵相乘得到复合变换矩阵。50/100■光栅变换直接对帧缓存中象素点进行操作变换。

光栅平移变换:

51/10090°、180°和270°光栅旋转变换:先颠倒每行像素值,后交换行列先颠倒每行像素值,后颠倒行次序52/100任意角度光栅旋转变换:

53/100光栅百分比变换:

54/1006.4两维观察■基本概念窗口(Window)在用户坐标系中需要进行观察和处理一个坐标区域。视区(Viewport)窗口映射到显示设备上坐标区域。55/100 要将窗口内图形显示到视区中,必须经过将窗口到视区变换(Window-ViewportTransformation)处理,这种变换称观察变换(ViewingTransformation)。56/100观察坐标系依据窗口方向和形状在用户坐标平面中定义直角坐标系。x用户y用户窗口y观察x观察(a)观察坐标系引入观察坐标系目标:简化窗口到视区变换。57/100规格化设备坐标:将二维设备坐标系规格化到(0.0,0.0)到(1.0,1.0)坐标范围内形成坐标系。x用户y用户窗口y观察x观察(a)观察坐标系1xNDCyNDC视区1(b)规格化设备坐标系引入规格化坐标系目标:使观察变换独立于设备。58/100

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

59/100二维观察流程设置,为图形观察提供了非常灵活方式:变焦距效果60/100整体放缩效果漫游效果:

经过移动窗口。61/100■用户坐标系到观察坐标系变换

由两个变换步骤合成:

①将观察坐标系原点移到用户坐标系原点。62/100②绕原点旋转使两坐标系重合。

63/100■窗口到视区变换64/100 要将窗口内点(xw,yw)映射到相对应视区内点(xv,yv)需进行以下步骤:

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

②针对原点进行百分比变换。

③进行反平移。65/1006.5裁剪在二维观察中,需要在观察坐标系下对窗口进行裁剪,即只保留窗口内那部分图形,去掉窗口外图形。假设窗口是标准矩形,即边与坐标轴平行矩形。(wxl,wyt)——(wxr,wyb)66/100■点裁剪保留满足以下条件点:67/100■直线段裁剪假定直线段用p1(x1,y1)p2(x2,y2)表示。直线段和剪裁窗口可能关系:•完全落在窗口内•完全落在窗口外•与窗口边界相交

68/100•实交点:与窗口边界交点。•虚交点:与窗口边界延长线交点,或延长线与窗口边界交点。

69/100Cohen-Sutherland算法

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

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

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

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

70/100编码:对于任一端点(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。

71/100裁剪:裁剪一条线段时,先求出端点p1和p2编码code1和code2,然后:①若code1|code2=0:简取。②若code1&code2≠0:简弃。72/100

③不然:求直线段与窗口边界交点,弃外段。再对另一段重复进行上述处理…。73/100求交:假定直线端点为(x1,y1)和(x2,y2)•左、右边界交点计算:•上、下边界交点计算:

74/100算法步骤:

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

77/100算法特点:对完全可见或完全不可见线段:快速。尤其适合用于大窗口情况。78/100中点分割算法基本思想:当对直线段不能简取也不能简弃时,简单地把线段等分为二段,对两段重复前述测试处理,直至每条线段完全在窗口内或完全在窗口外。

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

梁友栋-Barsky算法设要裁剪线段是P0P1。P0P1和窗口边界交于A,B,C,D四点。算法基本思想是:从A,B和P0三点中找出最靠近P1点(P0)。从C,D和P1中找出最靠近P0点(C)。那么P0C就是P0P1线段上可见部分。86/100线段参数表示:x=x0+t△xy=y0+t△y0<=t<=1△x=x1-x0△y=y1-y0窗口边界四条边分为两类:始边和终边。87/100交点计算:•求出P0P1与两条始边交点参数t0,t1,令tL=max(t0,t1,0),则tL即为三者中离p1最近点参数•求出p0p1与两条终边交点参数t2,t3,令tu=min(t2,t3,1),则tU即为三者中离p0最近点参数•若tu>tL,则可见线段区间[tL,tu]t0t1t2t3088/100■多边形裁剪问题提出:

不但裁线条,要处理好多边形拓朴关系89/100Sutherland-Hodgeman多边形裁剪

逐边裁剪算法基本思想:每次用窗口一条边对多边形进行裁剪。90/10091/100算法实施策略:•为窗口各边界裁剪

温馨提示

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

评论

0/150

提交评论