1 / 15

第五章 坐标变换

第五章 坐标变换. 5.1 坐标变换的基本概念 5.2 视图变换和模型变换 5.3 投影变换 5.4 视口变换. 5.1 坐标变换的基本概念. 1. 设置矩阵类型. 使用函数 : glMatrixMode(mode) 说明:参数 mode 指定后续矩阵操作的对象是哪个矩阵堆栈 。. Mode. 含义. GL_MODELVIEW. 模型视图矩阵堆栈. GL_PROJECTION. 投影视图矩阵堆栈. GL_TEXTURE. 纹理矩阵堆栈. GL_COLOR. 颜色矩阵堆栈. 参数 mode 的取值如下 :.

cato
Télécharger la présentation

第五章 坐标变换

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 坐标变换 5.1 坐标变换的基本概念 5.2 视图变换和模型变换 5.3 投影变换 5.4 视口变换

  2. 5.1 坐标变换的基本概念 1.设置矩阵类型 使用函数: glMatrixMode(mode) 说明:参数mode指定后续矩阵操作的对象是哪个矩阵堆栈。

  3. Mode 含义 GL_MODELVIEW 模型视图矩阵堆栈 GL_PROJECTION 投影视图矩阵堆栈 GL_TEXTURE 纹理矩阵堆栈 GL_COLOR 颜色矩阵堆栈 参数mode的取值如下:

  4. 2.装入单位矩阵 使用函数: glLoadIdentity( ) 说明:该函数指定一个44单位矩阵。

  5. 5.2 视图变换和模型变换 1.平移: 使用函数:glTranslatef (x, y, z) 说明:参数x,y,z分别指定平移向量的x,y和z方向的坐标值。

  6. 2.旋转: 使用函数:glRotatef (angle, x, y, z) 说明:参数angle指定旋转角度; 参数x,y,z分别指定旋转向量的x,y和z方向的坐标值。

  7. 3.缩放: 使用函数:glScalef ( x, y, z ) 说明:参数x,y,z分别指定沿x,y和z方向的缩放因子。

  8. 例: 绘制一个没有进行模型变换的三角形线框;加入虚线点画和平移后(沿x轴的负方向移动),绘制一个同样的三角形;由一条点画的长虚线绘制三角形,其高度(y轴)减半,宽度(x轴)增加一半;绘制一个旋转的,由点线组成的三角形。

  9. 视点为:(1,2,3) 视点为:(1,1,1) 4.三维环境的绘制:

  10. 改变视点的函数: gluLookAt (s1, s2, s3, 0, 0, 0, 0, 1, 0 ) 视点方向 瞄准的参考点,定为(0,0,0) 向上的方向, 定为(0,1,0)

  11. 例: 利用视点的改变来画出下面图形。

  12. 5.3 投影变换 投影变换有两种: 透视投影: 这种效果与人眼观察的效果相同; 正交投影: 它的最大特点是无论物体距离视点多远, 投影后的尺寸不变。 投影之前要调用函数 : glMatrixMode(GL_PROJECTION); glLoadIdentity();

  13. 1.透视投影 透视投影定义有两个函数: 1) glFrustum(left,right,bottom,top,near,far); 说明:参数(left,bottom,-near)和(right,top,-near)指定 近剪切面的左下角和右上角坐标。 参数near和far表示视点与近剪切面和远剪切面的距离。 参数恒为正。 2) gluPerspective(fovy,aspect,near,far); 说明:参数fovy指定x-z平面内视区的角度,取值[0,180]。参数aspect为长宽比,即x与y的比率。 参数near和far表示视点与近剪切面和远剪切面的距离。 所有参数恒为正。

  14. 2.正交投影 创建正交的函数: glOrtho(left,right,bottom,top,near,far); 说明:参数(left,bottom,-near)和(right,top,-near)指定近剪切面的左下角和右上角坐标。 参数near和far表示视点与近剪切面和远剪切面的距离。 参数恒为正。

  15. 5.4 视口变换 视口是用来绘制图像的窗口中的一个矩形区域,视口的位置和尺寸是在窗口坐标系中进行度量的。 视口定义函数: glViewPort(x,y,width,height); 说明:参数(x,y)指定视口的左下角; 参数(width,height)为视口的尺寸。

More Related