2013-02-25 49 views
1

我创建了一个程序来在白色画布上显示一个立方体,但我不确定如何将多个立方体放入可以说的位置? 10 x 10. 另一个问题是我将如何去创建3D空间中的同一个立方体?放大立方体并将其放入3D空间

这里是我的代码:

void drawScene(void) 
{ 
    int i, j; 

    glClear(GL_COLOR_BUFFER_BIT); 
    glColor3f(0.0, 0.0, 0.0); 
    glLoadIdentity(); 

    glTranslatef(0.0, 0.0, -25.0); 
    glutWireCube(5.0); // Box. 
    glColor3f(1.0, 0.0, 0.0); 

    for(i=5; i<5; i++) 
    { 
     for (j = -5; j < 5; j++) 
     { 

      glPushMatrix(); 
      glTranslatef(i*5, j*5, -35.0); 
      glColor3f(1.0, 1.0, 0); 
      glutSolidCube(5.0); 
      glColor3f(0.0, 0.0, 1.0); 
      glutWireCube(5.0); 
      glPopMatrix(); 
     } 
    } 

glFlush(); 

} 

void setup(void) 
{ 
    glClearColor(1.0, 1.0, 1.0, 0.0); 
} 

void resize (int w, int h) 
{ 
    glViewport(0, 0, (GLsizei)w, (GLsizei)h); 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    glFrustum(-10.0, 10.0, -10.0, 10.0, 10.0, 100.0); 
    glMatrixMode(GL_MODELVIEW); 
} 

void KeyInput(unsigned char key, int x, int y) 
{ 
    switch(key) 
    { 
    case 27: 
     exit(0); 
    break; 
    default: 
    break; 
    } 
} 


int main(int argc, char **argv) 
{ 
    glutInit(&argc,argv); 
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 
    glutInitWindowSize(500,500); /* Size of the Program Window */ 
    glutInitWindowPosition(100,100); 
    glutCreateWindow("Box.cpp"); 
    setup(); 
    glutDisplayFunc(drawScene); 
    glutReshapeFunc(resize); 
    glutKeyboardFunc(KeyInput); 
    glutMainLoop(); 

    return 0; 
} 
+0

定义“3D空间” – Kaslai 2013-02-25 20:34:07

+0

3D空间。基本上我希望能够在立方体周围移动以查看它的所有6个面。 – Angelrawzz 2013-02-25 20:46:00

+0

啊。那么既然你使用OpenGL 1.x,你应该着眼于使用'gluLookAt()'这是一个方便的功能来改变世界。 – Kaslai 2013-02-25 20:50:40

回答

0

GLU的图书馆有很多有用的花絮像gluLookAt(xfrom, yfrom, zfrom, xto, yto, zto, xup, yup, zup);

可以使用glScaled(factor)/glScalef(factor)

你应该闲逛谷歌对于一些GL规模事情1.X文档。

+0

感谢您提供的信息,我现在正在实施gluLookAt函数,它似乎进展顺利。 至于在小问题下完美运作的Scalef。 – Angelrawzz 2013-02-26 09:45:30

+0

GLU库已经过时,与现代OpenGL不兼容。仅供参考 – datenwolf 2013-02-26 10:52:24

+0

@datenwolf他已经使用GL使用传统的管道,所以有点GLU是不会受到伤害。如果您对日趋严重与3D编程虽然曾经计划,你应该了解在GL 2.X,Angelrawzz – Kaslai 2013-02-27 01:11:59

相关问题