gpt4 book ai didi

c - 使用 glOrthof 时,我只看到一个十字

转载 作者:行者123 更新时间:2023-11-28 23:16:38 25 4
gpt4 key购买 nike

我有一个 iOS 应用程序(总是)横向运行,并使用 OpenGL 进行绘图。我的绘制方法中有这段代码:

  GLfloat width = self.frame.size.width;   // 480
GLfloat height = self.frame.size.height; // 320
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-width / 2, width / 2, -height / 2, height / 2, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(160.0f, 240.0f, 0.0f);
glRotatef(-90.0f, 0.0f, 0.0f, 1.0f);
glScalef(1.0f, -1.0f, 1.0f);

glMatrixMode(GL_PROJECTION);
glTranslatef(self.player.x, self.player.y, 0.0f);

其中 self.player.xself.player.yGLfloat 变量,范围从 -3.0f3.0f

然而,我看到的只是一个蓝色十字:
screenshot

我使用 glOrthof 使 OpenGL 使用正确的纵横比。当我评论 glOrthof 调用时,我得到了这个结果(浅蓝色线应该形成正方形,而不是矩形):
half-good


我尝试了所有方法,从交换宽度和高度,到更改 glOrthof 调用的参数,但都无济于事。有人可以帮助我,或者解释我做错了什么吗?提前致谢。 :)

最佳答案

试试这个:

GLfloat aspect=width/height;
glOrthof(-aspect, aspect, -1.0, 1.0, -1.0f, 1.0f);

关于c - 使用 glOrthof 时,我只看到一个十字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com