OpenGL绘制网格

时间:2015-11-17 14:45:39

标签: opengl grid-layout

我是OpenGL的新手,我试图制作一个12x15的网格,所以它看起来像一个数组,但仍然是一个网格。到目前为止我有这个代码:

#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

我犯了什么错误?我应该为显示功能的网格绘制编写一个函数吗?

1 个答案:

答案 0 :(得分:2)

如果未应用投影或其他变换,则每个轴上的可见坐标范围为-1到1。你看到的是从(0,0)开始的左下部分。如果要查看整个网格,则必须设置转换矩阵以使其达到您想要的位置。