我是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
我犯了什么错误?我应该为显示功能的网格绘制编写一个函数吗?
答案 0 :(得分:2)
如果未应用投影或其他变换,则每个轴上的可见坐标范围为-1到1。你看到的是从(0,0)开始的左下部分。如果要查看整个网格,则必须设置转换矩阵以使其达到您想要的位置。