《计算机图形学——南京大学计算机科学与技术系课程》由会员分享,可在线阅读,更多相关《计算机图形学——南京大学计算机科学与技术系课程(46页珍藏版)》请在金锄头文库上搜索。
1、,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,2,-,#,计算机图形学,路,通,博士,、教授,lutong,of Computer Science and,Technology,N,an,Jing Uiversity,南京大学计算机科学与技术系课程,计算机图形学,第,6,讲 图形观察与几何变换,1,图形观察,2,几何变换,3,应用举例,1.,图形观察,图形观察,图形变换和观察是计算机图形学的基础内容,之一,图形观察是通过指定一个图形中要显示的部分以及在显示器显示位置,并执行从世界坐标系到设备坐标系的图形变换及删除位于显示区域范围以外的图形部分而实现,的,类似于用
2、相机拍摄物体的过程:,将物体在某个位置摆放好,相机定位,确定相机方向、朝向,取景,成像,图形观察所要解决的问题:将某个物体的一部分或全部映射到某显示区域中(如显示器),图形观察中涉及的坐标系,图形观察变换流程,物体建模:在模型坐标系对物体进行几何,建模,物体的建模变换:物体平移、旋转、缩放等变换操作,构造世界坐标场景,得到世界坐标系,描述,视点变换:在世界坐标系中对相机定位、定向,设置取景方式,从而得到观察,坐标系,观察变换、投影变换:将世界坐标系中的几何模型变换到规范化设备坐标系中的二维几何,描述,工作站变换:规范化设备坐标系到设备坐标系的,变换,图形观察中涉及的坐标系,模型坐标系(,Mod
3、eling Coordinate System,):为方便地构造单个对象而定义的坐标系统。,根据用户需要,可自由定义其原点和方向,通过模型坐标系描述的物体,可以在将模型坐标系“放入”世界坐标系后,很方便地得到物体在世界坐标系中的描述,模型坐标系主要是为了方便用户对物体建模,图形观察中涉及的坐标系,世界坐标,系(,World Coordinate System,):是现实世界的坐标系,坐标系方向不能改变。世界坐标系是某场景内物体,或单个物体各部件的统一参照系,用于计算图形场景中所有图形对象的空间定位和几何定义,明确某一物体的单元构成,或放入场景的位置,是物体和观察者之间位置、距离、视线等衡量的标
4、准,图形观察中涉及的坐标系,观察坐标系(,Viewing Coordinate System,):相当于照相机坐标系,用来确定相机胶卷平面的位置和方向,从而得到期望观察到的视图,一般以视点为原点,通过指定一个垂直于相机的向上向量来定义,描述从观察者角度对整个世界坐标系内的对象进行重定位和描述,成像面坐标系(,Imaging Coordinate System,):在胶卷平面上的成像坐标系,是观察坐标系中的某个特定投影,图形观察中涉及的坐标系,规范化设备坐标系(,Normalizing Device Coordinate System,):独立于具体设备的中间、规范化的设备坐标系,NDC,可以很
5、容易地转换为具体设备(如各种显示器、打印机)的设备坐标系,其坐标范围为,0.1,NDC,能够使得图形软件在不同的设备之间移植;由规范化设备坐标系到各图形硬件实际坐标之间的映射由软件自动实现,设备坐标系(,Device Coordinate System,):每一个具体的显示设备有独立的设备坐标系,屏幕坐标系中的成像区域称为视图区(或视口,,view port,)。设备坐标为整数,窗口与视区,图形软件包允许指定图形中要显示的部分及在显示器显示的位置,世界坐标系中要显示的区域称窗口,窗口映射到显示器,(,设备,),上的区域称为视区,窗口定义显示什么;视区定义在何处显示,标准的窗口和视区一般都是矩形
6、,窗口,Y,世界,X,世界,世界坐标系,Y,设备,视区,X,设备,设备坐标系,y,max,y,min,x,max,x,min,视区定义,二维观察的流程,在世界坐标系中构造图形或场景:使用建模坐标变换,在世界坐标平面中设置二维的观察坐标系,将世界坐标系下的描述变换到观察坐标系,在观察坐标系下定义视区窗口:,视区窗口通常定义成单位正方形,以保证观察和变换独立于输出设备,改变视区窗口的位置可以在输出设备的显示区的不同位置观察物体,也可以通过改变视区窗口的尺寸来改变显示对象的尺寸和位置,改变视区向上方向矢量可改变视线方向,将观察坐标系下的场景描述映射到规范坐标系的视区,二维观察的流程,在规范化坐标系下
7、进行视区图形裁剪:裁剪掉视区外的图形部分,并将视区内图形转换到设备坐标系,OpenGL,用于二维显示,/,视口位置和尺寸(相对于程序窗口),glViewport(x,y,width,height);,glMatrixMode(GL_PROJECTION);,glLoadIdentity();,/,二维投影面,决定了二维显示坐标的范围,gluOrtho2D(xmin,xmax,ymin,ymax);,显示器屏幕,视口范围,Opengl,程序窗口,二维投影面范围,xmax,ymax,xmin,ymin,在世界坐标系下指定观察范围,指定观察方式,指定观察,设备的关联方式,2000,1500,0,0,
8、10,0,145,0,180,0,15,0,2.,几何变换,二维几何变换,图形变换是图形显示过程中不可缺少的一个环节,通过图形变换可由简单图形生成复杂图形,变换是描述图形的有力工具,可改变和管理各种图形的显示。例如:,通过调整组成部分的方向和大小来实现设计和设施布局,动画则通过沿动画路径移动“照相机”或场景中的对象而产生,在方向、尺寸和形状方面的变化是用改变对象坐标描述的几何变换来完成,二维观察中涉及的各种变换需要用二维几何变换来实现,平移变换,平移是指:将物体沿,直线路径,从一个坐标位置到另一个坐标位置,重定位,给原始坐标位置,(,x,y,),加上平移距离,t,x,和,t,y,来实现到新位置
9、,(,x,1,y,1,),的移动:,x,1,=,x,+,t,x,y,1,=,y,+,t,y,(t,x,t,y,),称为平移向量或转换,向量,平移的矩阵方程:,P,1,=,P,+,T,T,=(,t,x,t,y,),T,P,=(,x,y,),T,P,1,=(,x,1,y,1,),T,P,P,1,T,平移的特性,平移是不产生变形而移动物体的刚体变换,物体上的每个点移动相同的坐标,直线的平移是将平移方程加到线的每个端点上,多边形的平移是将平移向量加到每个顶点的坐标,曲线可用同样方法来平移,为了改变圆或椭圆的位置,可以平移中心坐标并在新中心位置重画图形,通过替代定义曲线的坐标位置,而后用平移过的坐标点来
10、重构曲线路径来实现其它曲线的平移,T,T,旋转变换,二维旋转是将物体沿,xy,平面内的,圆弧路径,重定位,指定物体旋转的,旋转点,(,或,基准点,),的,位置,(,x,r,y,r,),和,旋转角,(,逆时针旋转时旋转角为正,),或:描述为绕通过基准点、垂直于,xy,平面的旋转轴,旋转,当,基准点为坐标原点,时,变换方程:,x,1,=,xcos,-,ysin,y,1,=,xsin,+,ycos,方程的列向量矩阵为:,P,1,=,R,P,旋转矩阵为:,变换也可表示为行坐标向量矩阵:,P,1,T,=(,R,P,),P,R,旋转矩阵,R,的转置,R,可通过交换行和列而得到;,旋转矩阵,R,的置换则可简
11、单地改变,sin,项符号而,得到,旋转变换的特性,点绕,任意基准位置,旋转的变换方程:,x,1,=,x,r,+(,x,-,x,r,),cos,-(,y,-,y,r,),sin,y,1,=,y,r,+(,x,-,x,r,),sin,+(,y,-,y,r,),cos,这个通用旋转方程不同于绕原点旋转方程之处在于,:,包括一个,加项,(,平移项,),以及,坐标值上的多重,系数,旋转也是一种不变形地移动物体的刚体变换,物体上的所有点旋转相同的角度:,直线段旋转是将每个线,端点,多边形的旋转则是将每个,顶点,旋转指定的,旋转角,曲线的旋转则是旋转,控制取样,点,(,x,r,y,r,),缩放变换,缩放变换
12、改变物体的尺寸。该操作施加于,多边形,通过将每个顶点坐标值,(,x,y,),乘以缩放系数,s,x,和,s,y,,产生变换的坐标,(,x,1,y,1,),:,x,1,=,x,s,x,,,y,1,y,s,y,缩放系数,s,x,在,x,方向对物体缩放,,s,y,在,y,方向,缩放,相对于原点,的缩放矩阵形式:,P,1,S,P,缩放矩阵:,缩放系数,s,x,和,s,y,可赋予任何,正数,小于,1,缩小物体的,尺寸,大于,1,则放大,物体,当,s,x,和,s,y,值相同时,产生一致,缩放,s,x,和,s,y,值不等时产生差值,缩放,用缩放方程变换的物体既被缩放,又被,重定位,当缩放系数值大于,1,时则将
13、坐标位置远离,原点,X,Y,P,1,P,2,相对原点的一致缩放,变换的矩阵表示,每个基本变换都可表示为普通矩阵形式:,P,1,M,1,P,M,2,坐标位置,P,1,和,P,表示为,列向量,矩阵,M,1,是一包含乘法系数的,22,矩阵,M,2,是包含平移项的两元素,列矩阵,对平移,,M,1,是,单位矩阵,对旋转或缩放,,M,2,包含与基准点或固定点相关的平移,项,利用这个方程产生先缩放再旋转后平移的变换顺序,必须每次一步地计算变换的,坐标,变换的齐次坐标矩阵表示,在齐次坐标中所表示的位置允许将所有几何变换方程表示为矩阵乘法:,坐标可表示为三元素列向量,变换写成,33,矩阵,绕坐标原点的,旋转变换
14、,可写为:,P,1,=,R,(,),P,,,R,(,),是旋转矩阵;,当,用,-,替换时就得到其逆,矩阵,平移矩阵,旋转矩阵,平移变换,可表示为:,P,1,=,T,(,t,x,t,y,),P,,,T,(,t,x,t,y,),为平移,矩阵,平移矩阵的逆矩阵:用平移参数,t,x,t,y,的负值,-,t,x,-,t,y,来代替原,值,变换的齐次坐标矩阵表示,相对于坐标原点的,缩放变换,表示为:,P,1,=,S,(,s,x,s,y,),P,,,S,(,s,x,s,y,),是缩放,矩阵,用倒数,1/,s,x,和,1/,s,y,代替,s,x,和,s,y,就产生其逆,矩阵,缩放矩阵,复合变换,矩阵的合并或复
15、合:利用矩阵表示,,通过计算单个变换矩阵的乘积,将任意顺序变换的矩阵建立为复合,变换矩阵,对于坐标位置的列矩阵表示,以,从右向左,的次序进行矩阵乘而形成复合变换,来计算一系列变换的,结果,即:每个随后的变换矩阵,左乘,前面的,变换矩阵,复合平移:,P,1,T(t,xn,t,yn,)T(t,x2,t,y2,)T(t,x1,t,y1,),P,复合旋转:,P,1,R(,n,)R(,2,)R(,1,),P,复合缩放:,P,1,S(s,xn,s,yn,)S(s,x2,s,y2,)S(s,x1,s,y1,),P,复合变换:先缩放后平移再旋转:,P,1,R(,n,)T(t,xn,t,yn,)S(s,xn,s
16、,yn,),P,注意:,矩阵乘法不满足交换率:,M,1,M,2,M,2,M,1,,所以,变换的结果和变换执行的顺序,有关,只有在两个变换类型相同,或两者分别是一致缩放与旋转变换时,两者可以,交换,复合变换的例子(,1,),几何形状绕任意点(,x,r,y,r,)旋转,求变换矩阵,平移物体,使(,x,r,y,r,)与原点重合,平移后的物体绕原点旋转,平移物体使其基准点回到原来的(,x,r,y,r,)位置,复合变换的例子(,2,),几何形状相对点(,x,f,y,f,)的比例变换,(s,x,s,y,),求变换矩阵,平移物体,使(,x,f,y,f,)与原点重合,平移后的物体缩放变换,平移物体使其基准点回到原来的(,x,f,y,f,)位置,复合变换的例子(,3,),矩阵运算不满足交换律,不同的变换次序会产生不同的变换结果,其它变换:对称(反射)变换,反射,(,对称,),变换是产生物体的镜像的一种变换,相对反射,(,对称,),轴的一维反射镜像是通过将物体绕反射,(,对称,),轴旋转,180,度而生成的,任意对称(反射)变换,关于,xy,平面内任意线,y,=,mx,+,b,的反射可用平移,-,旋转,-