1

我正在为我的 iphone 游戏使用 opengl ES。要缩放和旋转我的对象,我这样做: glScalef( scaleX , scaleY ,1); glRotatef(rotationZ, 0.0f, 0.0f, 1.0f)

我正在使用带有 orthof(-1,1,-1,1,-1,1) 的正交屏幕。我的问题是当我旋转对象时,图像会倾斜。我理解为什么会发生这种情况,因为我将 wrt 缩放到屏幕尺寸,所以在旋转它时会改变图像尺寸。我能做些什么来防止它被歪曲。

glViewport(0,0, (GLint)screenWidth, (GLint)screenHeight);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glOrthof(-1,1,-1,1,-1,1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glPushMatrix();

glTranslatef(positionX, positionY,0.0f);

glScalef(scaleX , scaleY ,1);

glRotatef(rotationZ, 0.0f, 0.0f, 1.0f);
4

1 回答 1

0

使用与屏幕纵横比相匹配的正投影,而不仅仅是发送一堆投影。除非您有一个方形屏幕,否则您的左/右不应与您的顶部/底部相同,否则您会看到倾斜。

于 2013-04-07T15:03:52.763 回答