Bonjour,
J'ai un problème pour réaliser une rotation en OpenGL au centre du rectangle.
J'ai esayé avec glRotatef(ang,0.0,0.0,1.0); le problème l'orignie de la rotation n'est pas au centre du rectangle.
Comment définir le centre du rectanble, ou il faut-il utiliser les cos(), sin() ; si oui comment ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Draw_Box(int Texture,float X0,float Y0,float X1,float Y1, int Calque, float ang)
{
glPushMatrix();
// glRotatef(ang,0.0,0.0,1.0);
glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
glBindTexture(GL_TEXTURE_2D, g_Texture[Texture]);
 
glBegin(GL_QUADS); 
 glTexCoord2f(1.0f, 0.0f); glVertex3f(-SCREEN_X/2+X1*cos(ang),  SCREEN_Y/2-Y1*sin(ang),  -SCREEN_X+Calque);
 glTexCoord2f(1.0f, 1.0f); glVertex3f(-SCREEN_X/2+X1*cos(ang),  SCREEN_Y/2-Y0*sin(ang),  -SCREEN_X+Calque); 
 glTexCoord2f(0.0f, 1.0f); glVertex3f(-SCREEN_X/2+X0*cos(ang),  SCREEN_Y/2-Y0*sin(ang),  -SCREEN_X+Calque);
 glTexCoord2f(0.0f, 0.0f); glVertex3f(-SCREEN_X/2+X0*cos(ang),  SCREEN_Y/2-Y1*sin(ang),  -SCREEN_X+Calque);
glEnd();
 
glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);
glPopMatrix();
}
Merci Beaucoup