-1

应该如何将 x、y、z、sizeX、sizeY、sizeZ 值放在顶点上以制作立方体?

public static void cube(float x, float y, float z, float sx, float sy, float sz){       
glPushMatrix();
    {
        glTranslatef(x, y, z);

//Just one side of the cube is given due to too much unnecessary code.
        glBegin(GL_QUADS);
            glVertex3f(-1, -1, 1); 
            glVertex3f(1, -1, 1);
            glVertex3f(1, 1, 1);
            glVertex3f(-1, 1, 1);
        glEnd();
    }
    glPopMatrix();
}

谢谢。

4

1 回答 1

0

例如,在您的代码中,您将glVertex3f(-1, -1, 1);它们与 sx、sy、sz 的相应值除以 2 相乘,例如glVertex3f(-sx/2, -sy/2, sz/2);

对于位置,您可以glTranslatef(x, y, z)在绘制立方体之前发出一个。如果您坚持将其硬编码到顶点中,那么您应该将上述语句写为glVertex3f(x - sx/2, y - sy/2, z + sz/2);

于 2013-07-31T09:35:30.513 回答