2015-11-17 112 views
0

在OpenGL中我是新的,我试图做一个12x15的网格,所以它看起来像一个数组,但仍然是一个网格。我有这样的代码至今:OpenGL绘制网格

#include <windows.h> 
#include <GL/glut.h> 

void display(){ 
    glClear(GL_COLOR_BUFFER_BIT); 

    glBegin(GL_LINES); 
    // Horizontal lines. 
    for (int i=0; i<=12; i++) { 
     glVertex2f(0, i); 
     glVertex2f(15, i); 
    } 
    // Vertical lines. 
    for (int i=0; i<=15; i++) { 
     glVertex2f(i, 0); 
     glVertex2f(i, 12); 
    } 
    glEnd(); 

    glFlush(); 
} 

void handleKeypress(unsigned char key, int x, int y){ 
    switch (key){ 
    case 27: //Escape key 
     exit(0); 
    } 
} 

main(int argc, char** argv){ 
    glutInit(&argc, argv); 
    glutCreateWindow("Grid Test"); 
    glutInitWindowSize(600, 480); 
    glutInitWindowPosition(100, 100); 
    glutDisplayFunc(display); 
    glutKeyboardFunc(handleKeypress); 
    glutMainLoop(); 
} 

,但程序窗口有这样的: test grid

什么是我犯的错?我是否应该为显示功能绘制网格的函数?

回答

2

当未应用投影或其他变换时,每个轴上的可见坐标范围从-1到1。你看到的是从(0,0)开始的左下角部分。如果你想看到整个网格,你将不得不设置变换矩阵来获得它想要的位置。