OpenGL glTranslatef

时间:2014-01-10 00:48:19

标签: opengl rotation

我正在尝试围绕它的原点旋转我的2D三角形,但是它向内旋转,尺寸明显缩小然后扩展。

此外我似乎只能垂直旋转它,除非我使用Cos和Sin但是当它应该围绕六边形旋转时三角形螺旋失控。

这是当前结果的GIF(我知道,我没有设置原点,这不是错误,我测试了不同的结果)。 http://i.imgur.com/1lLDXIi.gif

    glMatrixMode(GL_MODELVIEW);

    glPushMatrix();

    glTranslatef(Position.X, Position.Y, 0.0f);
            glRotatef(x_rotation * 360, 1.0f, 0.0f, 0.0f);
            glRotatef(y_rotation * 360, 0.0f, 1.0f, 0.0f);
    glTranslatef(-Position.X, -Position.Y + 0.125, 0.0f);

    //color
    glColor3f(1.0f, 1.0f, 1.0f);

    //geometrical shape
    glBegin(GL_TRIANGLES);
        glVertex3f( 0.00f, -1.25f, 0.0);
        glVertex3f(-0.15f, -1.0f,  0.0);
        glVertex3f( 0.15f, -1.0f,  0.0);
    glEnd();

glPopMatrix();

1 个答案:

答案 0 :(得分:0)

无论如何我修好了。

    glTranslatef (Position.X, Position.Y,  0.0f);
    glTranslatef (-Position.X, -Position.Y,0.0f);
          glRotatef  (y_rotation * 360, 0.0f, 1.0f, 4.0f);
          glRotatef  (x_rotation * 360, 0.0f, 1.0f, 4.0f);
    glTranslatef (0.0f,       0.0f,       0.0f);`

需要更改glRotatef上的x,y和z参数。