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 ?
void Draw_Box(int Texture,float X0,float Y0,float X1,float Y1, int Calque, float ang)
{
glPushMatrix();
Salut ! moi pour faire une rotation d'un point (x,y) de R radian par rapport au point (a,b) :
J'exprime le point (x,y) par rapport a (a,b) en coordonnée polaire
J'ajoute R a la composante du rayon
Je me retrouve avec une nouvelle coordonnée polaire que je convertit en coordonné cartésienne pour faciliter le draw du point après.
Pour un rectangle je fais cette transformation au 4 points et j'obtiens une belle rotation !
Voila
++
______________________
Adeon, programmeur de jeux sur directX 9 (http://theolith.com) a votre service !
ça fait longtemps que je n'ai pas fait d'opengl mais en gros, il faut push ton objet, je mettre au centre du plan de rotation, faire la rotation, le remettre à la place ou il doit être puis le pop
Merci d'avoir répondu si vite ;)
Donc si je comprend bien, il suffit de faire une translation au millieu de l'image avant de faire une rotation ???
Je test, je verrais bien si c'est ça ;)