3D游戏开发坐标

本文大部份内容来自CSDN博客,转载请标明出处:http://blog.csdn.net/firefly_liu/archive/2009/05/08/4160296.aspx函数

 

openGL使用右手坐标.net

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


--------------------------------------------------------------------------------get

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

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

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


比例,咱们要画一个立方体:static

 

   //世界坐标是屏幕中心为原点,面对屏幕右边为+x,左边为-x,上面为+y,下面为-y,垂直屏幕指向本身为+z轴绘图


   //先是正面四个点:先左下角,而后右下角,这样逆时针依次画四个点
    static GLfloat v0[] = { -1.0f, -1.0f,  1.0f };   
    static GLfloat v1[] = {  1.0f, -1.0f,  1.0f };
    static GLfloat v2[] = {  1.0f,  1.0f,  1.0f };
    static GLfloat v3[] = { -1.0f,  1.0f,  1.0f };
   //这里开始后面四个点,画的顺序与前面四个点同样
    static GLfloat v4[] = { -1.0f, -1.0f, -1.0f };
    static GLfloat v5[] = {  1.0f, -1.0f, -1.0f };
    static GLfloat v6[] = {  1.0f,  1.0f, -1.0f };
    static GLfloat v7[] = { -1.0f,  1.0f, -1.0f };asp