首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lwjgl和slick - rotate slick纹理

lwjgl和slick - rotate slick纹理
EN

Stack Overflow用户
提问于 2012-11-16 09:27:39
回答 2查看 2K关注 0票数 2

我正在创建一个绘制对象的程序,该对象需要“指向”鼠标。为此,我希望绘制旋转后的图像。

我有这个绘制对象的代码:

代码语言:javascript
复制
glBindTexture(GL_TEXTURE_2D,img.getTextureID());
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(x-r,y-r);
glTexCoord2f(1,0);
glVertex2f(x+r,y-r);
glTexCoord2f(1,1);
glVertex2f(x+r,y+r);
glTexCoord2f(0,1);
glVertex2f(x-r,y+r);
glEnd();

非常基础。但是我很难找到如何旋转纹理,或者绘制旋转的纹理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-18 14:51:37

要详细说明@genpfault的答案:

如果希望纹理围绕其中心旋转,则需要绘制它,使其中心位于(0,0)。尝试如下所示:

代码语言:javascript
复制
glPushMatrix();
glTranslatef(x,y); // move to the proper position
glRotatef( angle, 0, 0, 1 ); // now rotate

glBindTexture(GL_TEXTURE_2D,img.getTextureID());
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(-r,-r);
glTexCoord2f(1,0);
glVertex2f(+r,-r);
glTexCoord2f(1,1);
glVertex2f(+r,+r);
glTexCoord2f(0,1);
glVertex2f(-r,+r);
glEnd();

glPopMatrix(); // pop off the rotation and transformation

请注意,glRotatef的角度是以度为单位的,而不是弧度。

票数 3
EN

Stack Overflow用户

发布于 2012-11-16 11:27:54

旋转纹理:

代码语言:javascript
复制
glMatrixMode( GL_TEXTURE );
glLoadIdentity();
glRotatef( angle, 0, 0, 1 );
glMatrixMode( GL_MODELVIEW );
drawTexturedQuad();

旋转四边形:

代码语言:javascript
复制
glPushMatrix();
glRotatef( angle, 0, 0, 1 );
drawTexturedQuad();
glPopMatrix();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13409074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档