【问题标题】:How to set OpenGl Coordinates?如何设置OpenGL坐标?
【发布时间】:2013-02-06 09:35:05
【问题描述】:

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

【问题讨论】:

  • 先试着了解一下openGL坐标系。只是为了达到你所需要的,只需调用glTranslatef(-1, -1, 0)。

标签: visual-c++ opengl glut freeglut


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多