如何设置OpenGl坐标?

时间:2013-02-06 09:35:06

标签: visual-c++ opengl glut freeglut

使用下面的代码,我在图表的右上角得到了三角形,它告诉我0,0位于窗口的中心。如何将它带到窗户的角落,即左下角?

#include <GL/glut.h>
void displayCube()
{

glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_TRIANGLES);
    glVertex3f(0, 0, 0);
    glVertex3f(0.5, 0, 0);
    glVertex3f(0.25, 0.25, 0);
glEnd();
glFlush();
}

int main(int argc, char *argv[]){

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow("Cube");
glutDisplayFunc(displayCube);
glutMainLoop();
return 0;
}

1 个答案:

答案 0 :(得分:1)

OpenGL使用一组矩阵变换从原始模型空间移动到屏幕/窗口空间。

在你的例子中,有默认的身份投影,所以你在每个方向的 -1到1 框中“移动”。

(0.0, 0.0, 0.0)位于中心位置。 (-1, 0, 0)位于左侧,(1, 0, 0)位于右侧,(0, 1, 0)位于顶部。

试着弄清楚其余部分:)

http://www.songho.ca/opengl/gl_transform.html