2013-02-25 47 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

相關問題