收藏 分享(赏)

二维变换及二维观察 PPT课件.ppt

上传人:君。好 文档编号:1423901 上传时间:2018-07-15 格式:PPT 页数:96 大小:2.77MB
下载 相关 举报
二维变换及二维观察 PPT课件.ppt_第1页
第1页 / 共96页
二维变换及二维观察 PPT课件.ppt_第2页
第2页 / 共96页
二维变换及二维观察 PPT课件.ppt_第3页
第3页 / 共96页
二维变换及二维观察 PPT课件.ppt_第4页
第4页 / 共96页
二维变换及二维观察 PPT课件.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

1、1,第六章 二维变换及二维观察,如何对二维图形进行方向、尺寸和形状方面的变换。如何进行二维观察。,2,二维变换及二维观察,基本几何变换与基本概念二维图形几何变换的计算复合变换变换的性质,3,图形的几何变换是指对图形的几何信息经过平移、比例、旋转等变换后产生新的图形,是图形在方向、尺寸和形状方面的变换。基本几何变换都是相对于坐标原点和坐标轴进行的几何变换。,6.2 基本几何变换,4,基本几何变换平移变换,平移是指将p点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。,图6-1 平移变换,5,Tx,Ty称为平移矢量。,推导:,矩阵形式:,基本几何变换平移变换,6,推导:,矩阵形式:,基本几

2、何变换比例变换,7,比例变换是指对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。其中Sx和Sy称为比例系数。,基本几何变换比例变换,图6-2 比例变换(Sx=2,Sy=3),8,基本几何变换比例变换,图6-3 比例变换,9,二维旋转是指将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p的重定位过程。,基本几何变换旋转变换,图6-4 旋转变换,10,推导: (极坐标),矩阵:逆时针旋转角,基本几何变换旋转变换,11,平移、缩放、旋转变换的矩阵表示:,图形通常要进行一系列基本几何变换,希望能够把二维变换统一表示为矩阵的乘法。,基本几何变换,12,齐次坐标表示就是用n+1

3、维向量表示一个n维向量。,规范化齐次坐标表示就是h=1的齐次坐标表示。,基本几何变换规范化齐次坐标,13,平移:,基本几何变换,14,比例:,基本几何变换,15,整体比例变换:,基本几何变换,16,旋转变换:,基本几何变换,17,基本几何变换二维变换矩阵,18,对称变换后的图形是原图形关于某一轴线或原点的镜像。,基本几何变换对称变换,19,基本几何变换对称变换,20,(1)关于x轴对称,基本几何变换对称变换,图6-5 关于x轴对称,21,(2)关于y轴对称,图6-6 关于y轴对称,基本几何变换对称变换,22,(3)关于原点对称,基本几何变换对称变换,图6-7 关于原点对称,23,(4)关于y=

4、x轴对称,基本几何变换对称变换,图6-8 关于xy对称,24,(5)关于y=-x轴对称,基本几何变换对称变换,图6-9 关于xy对称,25,错切变换,也称为剪切、错位变换,用于产生弹性物体的变形处理。,基本几何变换错切变换,图6-10 错切变换,26,其变换矩阵为:,(1)沿x方向错切(2)沿y方向错切(3)两个方向错切,基本几何变换错切变换,27,二维图形几何变换的计算,几何变换均可表示成P=P*T的形式。1. 点的变换,28,2. 直线的变换,二维图形几何变换的计算,29,3. 多边形的变换,二维图形几何变换的计算,30,复合变换,图形作一次以上的几何变换,变换结果是每次变换矩阵的乘积。任

5、何一复杂的几何变换都可以看作基本几何变换的组合形式。复合变换具有形式:,31,复合变换二维复合平移,32,复合变换二维复合比例,33,复合变换二维复合旋转,34,复合变换,35,相对任一参考点的二维几何变换,相对某个参考点(xF,yF)作二维几何变换,其变换过程为:(1) 平移;(2) 针对原点进行二维几何变换;(3) 反平移。,36,例1. 相对点(xF,yF)的旋转变换,相对任一参考点的二维几何变换,37,相对任意方向的二维几何变换,相对任意方向作二维几何变换,其变换的过程是:(1) 旋转变换;(2) 针对坐标轴进行二维几何变换;(3) 反向旋转。例2. 相对直线y=x的反射变换,38,例

6、3. 将正方形ABCO各点沿下图所示的(0,0)(1,1)方向进行拉伸,结果为如图所示的,写出其变换矩阵和变换过程。,复合变换,可能发生的变换:沿(0,0)到(1,1)的比例变换,图6-11 沿固定方向拉伸,40,坐标系之间的变换,问题:,图6-12 坐标系间的变换,41,分析:,图6-13 坐标系间的变换的原理,坐标系之间的变换,可以分两步进行:,图6-14 坐标系间的变换的步骤,于是:,44,光栅变换,直接对帧缓存中象素点进行操作的变换称为光栅变换。光栅平移变换:,45,90、180和270的光栅旋转变换:,光栅变换,图6-15 光栅旋转变换,46,任意角度的光栅旋转变换:,光栅变换,图6

7、-16 任意角度的光栅旋转变换,47,光栅比例变换:进行区域的映射处理。,光栅变换,图6-16 光栅比例变换,48,变换的性质,平移、比例、旋转、错切和反射等变换均是二维仿射变换的特例,反过来,任何常用的二维仿射变换总可以表示为这五种变换的复合。,二维仿射变换是具有如下形式的二维坐标变换:,49,仅包含旋转、平移和反射的仿射变换维持角度和长度的不变性;比例变换可改变图形的大小和形状;错切变换引起图形角度关系的改变,甚至导致图形发生畸变。,变换的性质,50,二维观察,基本概念二维观察变换二维裁剪OpenGL中的二维观察,51,二维观察基本概念,在计算机图形学中,将在用户坐标系中需要进行观察和处理

8、的一个坐标区域称为窗口(Window)。将窗口映射到显示设备上的坐标区域称为视区(Viewport)。,52,要将窗口内的图形在视区中显示出来,必须经过将窗口到视区的变换(Window-Viewport Transformation)处理,这种变换就是观察变换(Viewing Transformation)。,二维观察基本概念,54,观察坐标系(View Coordinate)是依据窗口的方向和形状在用户坐标平面中定义的直角坐标系。规格化设备坐标系(Normalized Device Coordinate)也是直角坐标系,它是将二维的设备坐标系规格化到(0.0,0.0)到(1.0,1.0)的坐

9、标范围内形成的。,二维观察基本概念,55,引入了观察坐标系和规格化设备坐标系后,观察变换分为如下图所示的几个步骤,通常称为二维观察流程。,二维观察基本概念,图6-17 二维观察流程,56,变焦距效果,二维观察基本概念,图6-18 变焦距效果(窗口变、视区不变),57,整体放缩效果,漫游效果,二维观察基本概念,图6-17 整体放缩效果(窗口不变、视区变),58,用户坐标系到观察坐标系的变换,用户坐标系到观察坐标系的变换分由两个变换步骤合成:将观察坐标系原点移动到用户坐标系原点;,59,绕原点旋转使两坐标系重合,用户坐标系到观察坐标系的变换,60,窗口到视区的变换,61,要将窗口内的点(xw,yw

10、)映射到相对应的视区内的点(xv,yv)需进行以下步骤:(1) 将窗口左下角点移至用户系统系的坐标原点;(2) 针对原点进行比例变换;(3) 进行反平移。,窗口到视区的变换,62,裁剪,在二维观察中,需要在观察坐标系下对窗口进行裁剪,即只保留窗口内的那部分图形,去掉窗口外的图形。假设窗口是标准矩形,即边与坐标轴平行的矩形,由上(y=wyt)、下(y=wyb)、左(x=wxl)、右(x=wxr)四条边描述。,63,裁剪点的裁剪,64,二维直线段的裁剪,已知条件:(1)窗口边界wxl,wxr,wyb,wyt的坐标值;(2)直线段端点p1p2的坐标值x1,y1,x2,y2。,p2,p1,实交点:直线

11、段与窗口矩形边界的交点;虚交点:处于直线段延长线或窗口边界延长线上的交点。,66,Cohen-Sutherland算法,编码:对于任一端点(x,y),根据其坐标所在的区域,赋予一个4位的二进制码D3D2D1D0。 编码规则如下:,(1)若xwxr,D1=1,否则D1=0;,(3)若ywyt,D3=1,否则D3=0。,68,(1)判断 裁剪一条线段时,先求出直线段端点p1和p2的编码code1和code2,然后: a.若code1|code2=0,对直线段简取之; b.若code1&code20,对直线段简弃之;,Cohen-Sutherland算法,69,(2)求交 若上述判断条件不成立,则需

12、求出直线段与窗口边界的交点。,b. 上、下边界交点的计算:x = x1 + (y-y1)/k。,a. 左、右边界交点的计算:y = y1 + k(x - x1);,其中,k(y2-y1)/(x2-x1)。,Cohen-Sutherland算法,70,p2,p1,Cohen-Sutherland算法,71,用编码方法实现了对完全可见和不可见直线段的快速接受和拒绝;求交过程复杂,有冗余计算,并且包含浮点运算,不利于硬件实现。,Cohen-Sutherland算法,72,中点分割算法的核心思想是通过二分逼近来确定直线段与窗口的交点。,中点分割算法,73,特点:主要计算过程只用到加法或位移运算,易于硬

13、件实现,同时适合于并行计算。,中点分割算法,74,Liang-Barsky算法,分析,75,直线的参数方程,对于直线上一点(x,y),若它在窗口内则有,Liang-Barsky算法,令,则有,77,由,Liang-Barsky算法,特殊处理:,求出参数值:u3=q3/p3, u4=q4/p4uA=0, uB= 1,,求出参数值: u1=q1/p1, u2=q2/p2uA= 0, uB= 1,,一般情况:,算法步骤:(1)输入直线段的两端点坐标:(x1,y1)和(x2,y2),以及窗口的四条边界坐标:wyt、wyb、wxl和wxr。(2)若x=0,则p1=p2=0。此时进一步判断是否满足q10且

14、q20,则进一步计算u1和u2。算法转(5)。(3)若y=0,则p3=p4=0。此时进一步判断是否满足q30且q20,则进一步计算u1和u2。算法转(5)。(4)若上述两条均不满足,则有pk0(k=1,2,3,4)。此时计算u1和u2。(5)求得u1和u2后,进行判断:若u1u2,则直线段在窗口外,算法转(7)。若u1u2,利用直线的参数方程求得直线段在窗口内的两端点坐标。(6)利用直线的扫描转换算法绘制在窗口内的直线段。算法结束。,82,多边形的裁剪,问题的提出:,83,Sutherland-Hodgeman多边形裁剪,基本思想:将多边形的边界作为一个整体,每次用窗口的一条边界对要裁剪的多边

15、形进行裁剪,体现分而治之的思想。,84,算法实施策略:为窗口各边界裁剪的多边形存储输入与输出顶点表。在窗口的一条裁剪边界处理完所有顶点后,其输出顶点表将用窗口的下一条边界继续裁剪。窗口的一条边以及延长线构成的裁剪线把平面分为两个区域,包含窗口区域的区域称为可见侧;不包含窗口区域的域为不可见侧。,Sutherland-Hodgeman多边形裁剪,85,沿着多边形依次处理顶点会遇到四种情况:,Sutherland-Hodgeman多边形裁剪,88,特点,89,假定按顺时针方向处理顶点,且将用户多边形定义为Ps,窗口矩形为Pw。算法从Ps的任一点出发,跟踪检测Ps的每一条边,当Ps与Pw相交时(实交

16、点),按如下规则处理: (1)若是由不可见侧进入可见侧,则输出可见直线段,转(3);,Weiler-Atherton多边形裁剪,90,(2)若是由可见侧进入不可见侧,则从当前交点开始,沿窗口边界顺时针检测Pw的边,即用窗口的有效边界去裁剪Ps的边,找到Ps与Pw最靠近当前交点的另一交点,输出可见直线段和由当前交点到另一交点之间窗口边界上的线段,然后返回处理的当前交点; (3)沿着Ps处理各条边,直到处理完Ps的每一条边,回到起点为止。,Weiler-Atherton多边形裁剪,下图示了Weiler-Atherton算法裁剪凹多边形的过程和结果。,92,2. 文字裁剪文字裁剪的策略包括几种:串精

17、度裁剪字符精度裁剪笔划、象素精度裁剪3. 外部裁剪保留落在裁剪区域外的图形部分、去掉裁剪区域内的所有图形,这种裁剪过程称为外部裁剪,也称空白裁剪。,其他裁剪,93,6.6 OpenGL中的二维观察,指定矩阵堆栈指定裁剪窗口指定视区,94,指定矩阵堆栈,指定当前操作的是投影矩阵堆栈glMatrixMode(GL_PROJECTION)初始化,即指定当前操作的矩阵堆栈的栈顶元素为单位矩阵。glLoadIdentity();,95,指定裁剪窗口,定义二维裁剪窗口gluOtho2D(xwmin, xwmax, ywmin, ywmax);其中,双精度浮点数xwmin, xwmax, ywmin, ywmax分别对应裁剪窗口的左、右、下、上四条边界。默认的裁剪窗口,四条边界分别为wxl=-1.0,wxr=1.0,wyt=-1.0,wyb=1.0。,96,指定裁剪窗口,指定视区glViewPort(xvmin,yvmin,vpWidth,vpHeighht);xvmin和yvmin指定了对应于屏幕上显示窗口中的矩形视区的左下角坐标,单位为像素。整型值vpWidth和vpHeighht则指定了视区的宽度和高度。默认的视区大小和位置与显示窗口保持一致。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报