glTranslatef()方法的目的是什么?

时间:2015-12-27 13:17:02

标签: opengl

我是 openGl 的初学者。你能告诉我一下吗

glTranslatef();  
glScalef();
glBegin ();

我在谷歌搜索过它们但无法得到答案。

三江源

2 个答案:

答案 0 :(得分:10)

  • glTranslate 按x y z生成翻译。当前矩阵(参见glMatrixMode)乘以此平移矩阵, 使用产品替换当前矩阵,就好像glMultMatrix 用以下矩阵调用其参数:

    1 0 0 x 
    0 1 0 y 
    0 0 1 z 
    0 0 0 1
    

    如果矩阵模式为GL_MODELVIEWGL_PROJECTION,则全部 调用glTranslate后绘制的对象被翻译。

    使用glPushMatrixglPopMatrix保存并恢复 非翻译坐标系。

    有关glTranslate

  • 的更多信息
  • glScale 会沿x,y和z轴产生不均匀的缩放。这三个参数表示沿着每个参数的所需比例因子 三轴。

    当前矩阵(见glMatrixMode)乘以此值 比例矩阵,产品替换当前矩阵,如果 调用glMultMatrix时使用以下矩阵作为其参数:

    x 0 0 0 
    0 y 0 0 
    0 0 z 0 
    0 0 0 1
    

    如果矩阵模式为GL_MODELVIEWGL_PROJECTION,则全部 调用glScale后绘制的对象是缩放的。

    使用glPushMatrixglPopMatrix保存并恢复未缩放的版本 坐标系。

    有关glScale

  • 的更多信息
  • glBegin glEnd 分界定义基元或一组类似基元的顶点。 glBegin接受一个 参数,指定顶点的十种方式中的哪一种 解释。将n作为从1开始的整数计数,将N作为 指定的顶点总数。

    有关glBegin

  • 的更多信息

答案 1 :(得分:1)

DoughnutZombie - 给出了有效的&正确答案。

但是,简单来说,IIRC你可以把它们想象得有点像:

  • glTranslate让你“移动”事物
  • glScale是缩放它们
  • 和glBegin让opengl知道你要提供的东西,比如绘制三角形的顶点列表

您确实需要使用pushmatrix和popmatrix

所有这些都应该包含在大多数新手教程中,我可以在http://nehe.gamedev.net/

推荐遗留教程吗?