Joh*_*han 8 c++ opengl coordinates
在OpenGL中,我试图反转y轴,并设置一个特定类型的坐标系,就像Allegro一样.假设我的窗口是640x480,我希望屏幕的左上角是轴(0,0),右下角是(640,480).到目前为止,我设法获得了我想要的正确坐标系,但我不知道它是否以正确的方式完成.至于翻转y轴,我无法在不修改我当前拥有的坐标系的情况下将其反转.我不希望只有翻转1个形状的东西.我想让它在保持坐标系的同时翻转我在y轴上制作的所有未来形状.这是我到目前为止所拥有的.
初始化:
const GLdouble XSize = 640, YSize = 480;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, XSize, YSize, 0, 1, 1000);
glMatrixMode(GL_MODELVIEW);
Run Code Online (Sandbox Code Playgroud)
渲染:
float size = 30;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0, 0, -500);
glPushMatrix();
glTranslatef(size, size, 0.0f);
glBegin(GL_TRIANGLES);
glColor3f(0.1, 0.3, 0.8);
glVertex3f( 0.0f, size, 0.0f);
glVertex3f(-size,-size, 0.0f);
glVertex3f( size,-size, 0.0f);
glEnd();
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)
编辑:
我想出了添加glScalef(1,-1,1); 将翻转我的形状,但我必须将它包含在我的形状的glPushMatrix()中,我不知道这是否是正确的方法,或者它是一个hackish解决方案.
| 归档时间: |
|
| 查看次数: |
13949 次 |
| 最近记录: |