簡體   English   中英

lwjgl 和 slick - 旋轉光滑的紋理

[英]lwjgl and slick - rotate slick texture

我正在創建一個繪制對象的程序,該對象需要“指向”鼠標。 為此,我想繪制旋轉的圖像。

我有這個用於繪制對象的代碼:

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();

很基本。 但是我很難找出如何旋轉紋理,或繪制旋轉的紋理。

詳細說明@genpfault 的回答:

如果您希望紋理圍繞其中心旋轉,則需要繪制它,使其中心位於 (0,0)。 嘗試這樣的事情:

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的角度以度為單位,而不是弧度。

旋轉紋理:

glMatrixMode( GL_TEXTURE );
glLoadIdentity();
glRotatef( angle, 0, 0, 1 );
glMatrixMode( GL_MODELVIEW );
drawTexturedQuad();

旋轉四邊形:

glPushMatrix();
glRotatef( angle, 0, 0, 1 );
drawTexturedQuad();
glPopMatrix();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM