OpenGL坐标系

转载 2012年03月25日 15:24:10

openGL坐标系- -

                                      

openGL使用右手坐标

从左到右,x递增
从下到上,y递增
从远到近,z递增


OPENGL坐标系可分为:世界坐标系和当前绘图坐标系。

世界坐标系以屏幕中心为原点(0, 0, 0)。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)到(1,1)。

当前绘图坐标系是 绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的。当用glTranslatef(),glScalef(), glRotatef()对当前绘图坐标系进行平移、伸缩、旋转变换之后, 世界坐标系和当前绘图坐标系不再重合。改变以后,再用glVertex3f()等绘图函数绘图时,都是在当前绘图坐标系进行绘图,所有的函数参数也都是相 对当前绘图坐标系来讲的。

 

openGL坐标变换

                                      

坐标变换:OPENGL的每一种变换都是一个矩阵的运算。假设当前某顶点坐标为C,现在要做某种变换(设矩阵为M)得到新的坐标C1,那么运算过程就是C1=T×C。OpenGL应用左乘规则,坐标的变换就是用变换矩阵乘以坐标向量

OpenGL变换在编程的时候顺序是反过来的。想对目标 glutWireSphere(0.2, 10, 8);//draw earth 做R2,T,R1的变换,在写的时候就要:

         glRotatef(year, 0.0, 1.0,0.0);//旋转矩阵R1
         glTranslatef(2.0, 0.0, 0.0);//平移矩阵T
         glRotatef(day, 0.0, 1.0, 0.0);//旋转矩阵R2

         glutWireSphere(0.2, 10, 8);//draw earth


 

 三维观察原理类似于拍一张照片的过程。(类似于red book )

第一步是将照相机调整位置置于三角架上;
第二步是 将物体调整位置放在相机的视野当中。实际上,相机和三维物体是相对位置,相机移动位置也可以理解为物体反向移动位置,因此这两步可以理解为一步,即调整三 维物体和视点的位置,将世界坐标系下的物体变换到观察坐标系下。在计算机图形学中,定义模型矩阵(Modeling Matrix)实现了三维图形的几何变换,即平移、旋转和缩放。
第三步相机进行调焦以便看清楚物体,并按下快门将三维物体投影在二维胶片上;在计算机图形学中,定义相应的投影矩阵(ProjectionMatrix),进行投影变换,把三维物体从观察坐标系转换到投影坐标系中。
第四步是胶片的冲洗和裁剪。相应计算机图形学中,定义视口矩阵(ViewingMatrix),进行视口变换和裁剪,决定二维图象的大小。将物体从二维投影坐标系下转换到设备坐标系下。
这样,一个三维空间里的物体被投影到二维平面上了,也就能在二维的计算机屏幕上正确显示了。

屏幕坐标点 = 3D 模型点 * 几何变换栈矩阵(n...1) * 投影变换栈矩阵(n...1)
OpenGL 维护两个栈: 投影变换栈, 几何变换栈。
投影:glOrtho,gluPerspective--------------------glMatrixMOde(GL_PROJECTION);
几何变换:glTranslatef,glRotatef,glScalef--------glMatrixMOde(GL_MODELVIEW);

  http://my.sdlgame.com/content/view/336/6.html

MFC Opengl 使用glm数学库进行空间坐标系矩阵变换

求一个空间坐标系的点在另一个坐标系中的点一直是比较麻烦的一件事情,最近做项目时,恰好需要实现这样一个功能,也是想了挺久,最后实现了点在不同空间坐标系中的转换。功能是通过矩阵进行实现的,数学库用的是gl...

OpenGL 坐标系定义

  • 2012年06月24日 16:14
  • 178KB
  • 下载

OpenGL的坐标系、投影和几何变换

  • 2011年04月26日 16:49
  • 153KB
  • 下载

OpenGL中的坐标系和变换

坐标系模型坐标模型坐标是以物体某一点为原点而建立的坐标系,该坐标系仅对该物体适用,用来简化对物体各部分坐标的描述。物体放到场景中时,各部分经历的坐标变换相同,相对位置不变,所以可视为一个整体,与人类的...

OpenGL坐标系讲解.pdf

  • 2011年03月28日 09:58
  • 276KB
  • 下载

Android OpenGL ES 开发教程(14):三维坐标系及坐标变换初步

OpenGL ES图形库最终的结果是在二维平面上显示3D物体(常称作模型Model)这是因为目前的打部分显示器还只能显示二维图形。但我们在构造3D模型时必须要有空间现象能力,所有对模型的描述还是使用三...
  • mapdigit
  • mapdigit
  • 2012年05月25日 08:11
  • 10011

OpenGL 的图形学坐标系介绍

  • 2015年10月10日 17:56
  • 1.08MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenGL坐标系
举报原因:
原因补充:

(最多只允许输入30个字)