指定我自己的openGL坐标

时间:2018-05-01 16:26:25

标签: cocoa opengl

我有一个NSOpenGLView,其默认坐标设置为等距网格,在x方向从-1到+1,在y方向从-1到+1。但是,我想将我的opengl视图设置为在x方向上的坐标范围为-width / 2 to +width / 2,而y方向的坐标范围为-height / 2 to +height / 2。我尝试使用glOrtho(-w/2, w/2, -h/2, h/2, 0, 1);设置投影设置但我似乎没有成功,因为当我绘制三角形时我的视图是空白的。任何人都可以了解我的情况吗?

1 个答案:

答案 0 :(得分:0)

我终于把它搞定了。这是我工作解决方案的一个例子:

- (void)drawRect:(NSRect)bounds
{
    glClearColor(0, 0, 0, 0);
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-_w / 2., _w / 2., -_h / 2., _h / 2.,  0., 1.);
    glMatrixMode(GL_MODELVIEW);

    // Draw something:
    glBegin(GL_QUADS);
    glVertexd(-100., -100.);
    glVertexd(-100., 100.);
    glVertexd(100., 100.);
    glVertexd(100, -100.); 
    glEnd();
}

很多荣誉归用户1240679:Setting the coordinate system for drawing in OpenGL