3

使用以下代码,我将三角形放在图表的右上角,这告诉我 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;
}
4

1 回答 1

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

于 2013-02-06T09:53:16.317 回答