2013-02-06 150 views
2

用下面的代码,我得到了我在图的右上角的三角形,它告诉我0,0在窗口的中心。我应该怎么做才能把它放在窗口的角落,即左下角?如何设置OpenGl坐标?

#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

尝试了解openGL的合作 - 第一坐标系统..只要达到你所需要的只是调用的glTranslatef(-1,-1,0) 。 – rps

回答

1

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

在你的例子中,有默认的标识投影,所以你在'方向'-1到''在每个方向'移动'。

(0.0, 0.0, 0.0)是在中心。 (-1, 0, 0)在左侧,(1, 0, 0)在右侧,(0, 1, 0)在顶部。

揣摩休息:)

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