《计算机图形学电子教案精选PPT.ppt》由会员分享,可在线阅读,更多相关《计算机图形学电子教案精选PPT.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机图形学电子教案第1页,此课件共47页哦4.1 图形变换的数学基础l矢量、点和欧氏空间l坐标系和坐标l矩阵与坐标变换l齐次坐标的引入第2页,此课件共47页哦矢量l矢量具有确定的方向和大小(长度)l矢量是流动的,无位置概念l矢量的运算 C=A+B,B=2A第3页,此课件共47页哦矢量l点表示空间中的一个位置l点和另一个点相减得到一个矢量 v=P-Ql矢量和点相加得到另一个点 P=Q+vl点和矢量都是客观实在第4页,此课件共47页哦欧氏空间l点乘 a=u。v(a为实数,u、v为矢量)l0。0=0l如果u。v=0,则称u和v垂直l矢量的长度|v|,|v|2=v。v第5页,此课件共47页哦欧氏空间
2、l投影 u。v=|u|v|cos()l矢量乘 n=uxv,|n|=|u|v|sin()由右手法则确定方向第6页,此课件共47页哦坐标系和坐标l为了描述矢量和点引入坐标系l在3维空间,给出三个线性无关的矢量v1、v2、v3 l则任意一个矢量w可以表示为:w=a1v1+a2v2+a3v3 ,(a1a2a3为实数)因此,可以将矢量w记为a(a1,a2,a3)第7页,此课件共47页哦坐标系和坐标l在三维空间给定一个点P0和三个线性无关的矢量v1、v2、v3 l则,空间中任何一个点P可以表示为:P=P0+a1v1+a2v2+a3v3,(a1a2a3为实数)称点P的坐标为(a1,a2,a3)写成矩阵形式为
3、:P=P0+(a1,a2,a3)(v1、v2、v3)T第8页,此课件共47页哦坐标系之间的变换l已知坐标系I:原点Q0,坐标轴 u1,u2,u3 坐标系II:原点P0,坐标轴v1,v2,v3Q0在坐标系II的坐标为:q1,q2,q3第9页,此课件共47页哦坐标系之间的变换l写成矩阵形式:Q0=P0+q1,q2,q3 v1,v2,v3 Tu1,u2,u3 T=M v1,v2,v3 T其中:第10页,此课件共47页哦坐标系之间的变换l对于空间中的任一个点D,如果已知D点在坐标系II中的坐标为d1d2d3 l则:D=P0+d1d2d3 v1,v2,v3 T =Q0-q1q2q3 v1,v2,v3 T
4、 +d1d2d3 v1,v2,v3 T =Q0+(d1d2d3-q1q2q3)M-1u1,u2,u3T l所以,D点在坐标系I中的坐标为(d1d2d3-q1q2q3)M-1第11页,此课件共47页哦齐次坐标的引入l对于三维空间中的点,其坐标用三个实数表示,如:(X,Y,Z)。l还可以用四个实数来表示一个点的坐标,写为:(X,Y,Z,W),其中W不能为0。该坐标与(X/W,Y/W,Z/W)等价。l这样做有许多方面的好处:1、很容易表示无穷远点2、容易用矩阵与矢量乘的方法表示点的平移操作,以便简化计算过程。第12页,此课件共47页哦齐次坐标的引入l例一:式子P=P0+a1v1+a2v2+a3v3的
5、简化:非齐次坐标:lP=P0+a1,a2,a3 v1,v2,v3 T齐次坐标:第13页,此课件共47页哦齐次坐标的引入l将关系式l简化为:第14页,此课件共47页哦齐次坐标的引入l对于空间中的任一个点D,如果已知D点在坐标系II中的坐标为d1d2d31 lD=d1d2d31 v1,v2,v3,P0 Tl =d1d2d31M-1 u1,u2,u3,Q0 Tl推导过程也变得简单了lQ=q1,q2,q2,1 u1,u2,u3,Q0 Tl =q1,q2,q2,1Mv1,v2,v3,P0 T第15页,此课件共47页哦4.2 图形的几何变换l图形几何变换的目的l平移、旋转、缩放l变换的组合第16页,此课件
6、共47页哦图形几何变换的目的l改变图形的l位置、l方向、l大小第17页,此课件共47页哦平移(Translation)lP=P+D ,其中D=ax,ay,az,0lP=px,py,pz,1lP=px,py,pz,1l写成矩阵与矢量的乘法P=TP第18页,此课件共47页哦缩放(scaling)lP=SP第19页,此课件共47页哦旋转(rotation)lP=RP第20页,此课件共47页哦几何变换的组合第21页,此课件共47页哦4.3显示变换l三维图形显示的物理模型l透视投影变换l平行投影变换l视口变换l视坐标系与视变换l三维图形的显示流程l视口到三维空间的反变换第22页,此课件共47页哦三维图形
7、显示的模型l视景体(圆台、四棱台)第23页,此课件共47页哦三维图形显示的模型 l视景体的参数第24页,此课件共47页哦三维图形显示的模型l上方矢量第25页,此课件共47页哦三维图形显示的模型l前后裁剪面第26页,此课件共47页哦三维图形显示的模型l视角的影响第27页,此课件共47页哦三维图形显示的模型l视口长宽比例的影响第28页,此课件共47页哦三维图形显示的模型l平行投影的显示模型第29页,此课件共47页哦透视投影变换第30页,此课件共47页哦透视投影变换X/X=Y/Y=Z/dX=Xd/ZY=Yd/ZZ=d透视投影变换矩阵:第31页,此课件共47页哦平行投影变换第32页,此课件共47页哦视
8、口变换WHX/W=(X+W/2)/W X=XW/W+W/(2W)(H-Y)/H=(Y+H/2)/H Y=-YH/H+H-H/(2H)W/W 0 0 W/(2W)M=0 -H/H 0 H-H/(2H)0 0 1 0 0 0 0 1 第33页,此课件共47页哦视坐标系与视变换l给定视坐标系:(Ex,Ey,Ez),(Ax,Ay,Az),(px,py,pz)E 视点 A 被观察点 p向上方向矢量ln=(E-A)/|E-A|lu=(pXn)/|pXn|lv=nXu第34页,此课件共47页哦4.视坐标系与视变换u=(ux,uy,uz,0)v=(vx,vy,vz,0)n=(nx,ny,nz,0)E=(Ex,
9、Ey,Ez,1)CN=(u,v,n,E)T ,CO=(X,Y,Z,O)T,CN=M X CO CO=M-1XCNM=ux uy uz 0vx vy vz 0nx ny ny 0Ex Ey Ez 1D=(Dx,Dy,Dz,1)XCO=(Dx,Dy,Dz,1)M-1XCN(Du,Dv,Dn,1)=(Dx,Dy,Dz,1)M-1(Du,Dv,Dn,1)T=(M-1)T(Dx,Dy,Dz,1)T 视变换矩阵视变换矩阵(M-1)T第35页,此课件共47页哦4.4图形显示的流程l设一个点的世界坐标系下坐标为:Pl设世界坐标向视坐标变换的矩阵为:T视l设投影矩阵为:T投l设视口变换矩阵为:Twl则:Pw=T
10、w T投T视P,令T=Tw T投T视,则:Pw=TP第36页,此课件共47页哦4.5图形显示中的裁剪问题l视景体l三维图形显示过程中的裁剪l平面裁剪算法(自学)l三维裁剪算法(自学)第37页,此课件共47页哦4.6OpenGL的坐标变换机制l有关的数据结构 lModelView变换机制 lModel变换的使用方法 lView的变换使用方法 lProject的使用方法 l显示流程第38页,此课件共47页哦有关的数据结构l两个坐标变换矩阵(4X4)ModelView矩阵 GL_MODELVIEWProjection矩阵GL_PROJECTIONglMatrixMode(GL_MODELVIEW);
11、glMatrixMode(GL_PROJECTION);l两个用于存储矩阵的堆栈:ModelView矩阵堆栈Projection矩阵堆栈第39页,此课件共47页哦ModelView变换机制lModel变换的目的是改变物体的位置和尺寸lView变换的目的是改变观察的方向l以上两个目的是用一个手段来实现的,即:操作ModelView矩阵第40页,此课件共47页哦Model变换的使用方法l首先使以下函数,表示开始操作ModelView矩阵glMatrixMode(GL_MODELVIEW);l操作ModelView 矩阵进行Model变换的方法分两类:lglLoadIdentity();lglLoa
12、dMatrixf(*m);lglMultMatrixf(*m);lglTranslatef(dx,dy,dz);lglRotatef(angle,vx,vy,vz);lglScalef(sx,sy,sz);第41页,此课件共47页哦View变换的使用方法l可以使用上述所有函数来设值观察方向l利用以下函数则更方便:gluLookAt(ex,ey,ez,ax,ay,az,px,py,pz);e视点a被观察点p向上方向第42页,此课件共47页哦平行投影的使用方法l投影矩阵首先必须使用下面的函数进入投影矩阵模式lglMatrixMode(GL_PROJECTION);可以直接设值投影矩阵的值来进行投影
13、,但一般使用下面的函数设值投影矩阵:lglOrtho(xmin,xmax,ymin,ymax,near,far);lglFrustum(xmin,xmax,ymin,ymax,near,far);lgluPerspective(fovy,aspect,near,far);第43页,此课件共47页哦lglOrtho(xmin,xmax,ymin,ymax,near,far);第44页,此课件共47页哦lglFrustum(xmin,xmax,ymin,ymax,near,far);第45页,此课件共47页哦lgluPerspective(fovy,aspect,near,far);第46页,此课件共47页哦lOpenGL执行的次序lOpenGL程序编程的次序、操作投影矩阵,设置投影方式和参数(视坐标系窗口坐标)、操作ModelView矩阵,设置观察方向和参数(世界坐标视坐标)、操作ModelView矩阵,设置物体的位置(局部坐标世界坐标)、给出待绘制物体的坐标(在局部坐标系下的坐标)显示流程第47页,此课件共47页哦
限制150内