查看我的代码(在openGL,C ++中)蓝色球体更宽[拉伸],如何修复它,我需要翻译而不拉伸:你能不能修改我的代码以避免拉伸? 我的代码:
#include <GL/glut.h>
static void resize(int width, int height)
{
const float ar = (float) width / (float) height;
glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);
}
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3d(0,0,1);
glPushMatrix();
glTranslatef(3.0, 0.0, -6.0);
glutSolidSphere(1,50,50);
glPopMatrix();
glColor3d(1,0,0);
glPushMatrix();
glTranslatef(0.0, 0.0, -6.0);
glutSolidSphere(1,50,50);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(1200,1200);
glutCreateWindow("gggggggggggg");
glutReshapeFunc(resize);
glClearColor(1,1,1,1);
glutDisplayFunc(display);
glutMainLoop();
}
答案 0 :(得分:1)
失真来自glFrustum。这是投影的一个例子,可以满足您的要求。
glOrtho(-5, 5, -5 / ar, 5 / ar, -20, 20);