Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es OpenGL ES glRotatef执行剪切而不是旋转?_Opengl Es_Rotation - Fatal编程技术网

Opengl es OpenGL ES glRotatef执行剪切而不是旋转?

Opengl es OpenGL ES glRotatef执行剪切而不是旋转?,opengl-es,rotation,Opengl Es,Rotation,我可以在iPhone的屏幕上画一个精灵,但当我尝试旋转它时,我得到了一些奇怪的结果。精灵越靠近y轴(90度和270度),它似乎在y方向上拉伸精灵。当指向x轴和-x轴(0和180度)时,它将正确显示。它基本上就像是剪切而不是旋转。以下是代码的要点(投影矩阵是正交的): 谁能给我解释一下怎么修这个吗 半尺寸只是精灵x和y范围的一半;删除glScalef调用没有任何区别 这是我的矩阵设置: glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrthof

我可以在iPhone的屏幕上画一个精灵,但当我尝试旋转它时,我得到了一些奇怪的结果。精灵越靠近y轴(90度和270度),它似乎在y方向上拉伸精灵。当指向x轴和-x轴(0和180度)时,它将正确显示。它基本上就像是剪切而不是旋转。以下是代码的要点(投影矩阵是正交的):

谁能给我解释一下怎么修这个吗

半尺寸只是精灵x和y范围的一半;删除glScalef调用没有任何区别

这是我的矩阵设置:

glMatrixMode(GL_PROJECTION); 
glLoadIdentity();
glOrthof(0, 320, 480, 0, 0.01, 5);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
好的,希望这个屏幕截图将演示正在发生的事情:


如果在x和y方向上按相同的比例缩放,则投影会导致失真


只是一种预感,但也许可以尝试在正交投影中交换320和480。(以防iPhone上的X和Y互换)

你能出示你的手套打电话吗?我想知道这是否会影响它。什么是半码x和半码y?如果删除glScalef行,还会发生吗?从这里看一切都很好。我会发布一些截图。哇!这就是答案,非常感谢。现在一切都好了!我会的,但我现在不知道怎么做。也许有一个最短的时间限制,或者我不能,因为我没有注册。不管怎样,我稍后会回来检查。我在渲染GUI纹理和旋转它时遇到了同样的问题,但我不能仅仅改变一些神奇的数字来解决它。我也不应用投影矩阵(只是变换矩阵)。有没有更抽象的方法来否定这种扭曲?
glMatrixMode(GL_PROJECTION); 
glLoadIdentity();
glOrthof(0, 320, 480, 0, 0.01, 5);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();