我有一个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);
设置投影设置但我似乎没有成功,因为当我绘制三角形时我的视图是空白的。任何人都可以了解我的情况吗?
答案 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