《李祥全套配套课件图形程序设计 3》由会员分享,可在线阅读,更多相关《李祥全套配套课件图形程序设计 3(34页珍藏版)》请在金锄头文库上搜索。
1、 第3章_坐标变换0八学习三维模型在绘制到二维屏幕之前如何进行变换。0八学习坐标系与坐标变换0八学习矩阵操作、平移变换、旋转变换、缩放变换、变换次序等.0八学习控制这些变换的方法,显示模型的特定视图。OPENGL提供了计算机图形学中最基本的三维变换,包括:视点变换、模型变换、投影变换、剪取变换(附加裁剪面)和视口变换等。同时OPENGL还有针对性地提供了一些特殊的变换和用法,如矩阵堆栈等。3.1从三维图形到二维图像3.1.1三维图形的输出过程在现实世界中,观察到的所有物体对象都具有三维特征。但是在计算机屏幕上只能表现二维图像。那么,在三维图形到二维平面之间,需要什么样的变换,才能真实地反映现实
2、世界昵?3-1.2坐标系与坐标变换为了能在计算机上显示三维图形,必须使其适应计算机。因为计算机只能处理数据,因此必须将三维图形与数据相量熹g而将数据与三维图形联系在一起的惟一纽带,就是华标。从现实三维世界中获取的三维对象,本身是包含了现实世界的坐标形式。这个坐标系称之为世界坐标系。而屏幕上的二维平面本身又定义了一个坐标系,称为屏幕坐标系。三维图形映射到二维平面上,最重要的一环就是投影。投影分为透视投影和正交投影两种。投影干面对应的三维空间称为三维视景体(ViewingVolume)。只有在视景体内的三维物体才可能投影到二维平面上。在屏幕坐标系中,可以定义一个矩形,称为视口,视景体投影后的图形就
3、在视口中显示出来。视口的坐标系与物理设备的坐标系之间可能迦存在差异,因此迦需要做一些适塞箕菖设备的坐标变换c物理设备的坐标系称为物理设备标系。3.1.3矩阵操作OpenGL提供了丰富的三维变换函数,用户可以运用这些三维变换函数自如地进行三维图形操作,同时OpenGL还提供了一系列矩阵操作函数,帮助用户自己定义变换。下面先介绍这些矩阵操作函数。1)设置矩阵类在OpenGL中,设置矩阵类型的函数是glMatrixMode(),该函数的原型如下:voidgIMatrixMode(GLenummode);功能,设置当前矩阵。2)装入矩阵在OpenGL中,装入矩阵的函数是glLoadMatrix(),该函数的原型如下:voidglLoadMatrixtfd(TYPE*m);功能,用指定的矩阵替换当前矩阵。3)装入单位矩阵在OpenGL中,装入单位矩阵的函数是glLoadidentity(),该函数的原型如下:voidglLoadldentity(void);功能,用单位矩阵替换当前的矩阵。4)矩阵相乘在OpenGL中,矩阵相乘的函数是glMultMatrix(),该函数的原型如下:voidgIMultMatrixtfd(TYPE*m);功能,用指定的矩阵乘以当前的矩阵。