technique de rotation dans un repere
Bonjour,
j'ai une fonction qui me permet de creer un rectangle avec deux points de coordonnées x et Y : son coin superieur gauche et son coin inferieure droit.
VOici le schéma qui suit mes explication :
http://img135.imageshack.us/img135/9...rect3qc.th.jpg
j'aimerais donc creer une fonction qui effectue la rotation de ce rectangle par son Coin inferieure gauche ( Donc le point B ).
Cet rotation s'effectue point par point, je calcule les nouvelles coordonnées du Point A puis celle Du point C , puis je retrace le rectangle ( d'ailleurs je ne sais pas si c'est une bonne méthode de prendre point a point .. )
en rouge est representé le nouveau rectangle.
jusqu'ici j'ai appliqué plusieurs methodes sans succée mon rectangle se trouvant deformé :/
j'ai appliqué une methode trigonométrique, si il y a une autre méthode qui marche je prend tout de suite :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
proc rotater_( entier x , entier y , entier point_de_rot_x, entier point_de_rot_y, entier angle )
{
entier x_sauv = x;
entier r_angle = ((angle *3.1415) /360); //conversion en radian
x_sauv = ( (x - point_de_rot_x) * cos (r_angle) ) - ( ((y - point_de_rot_y) * (sin (r_angle))) + point_de_rot_x );
y = ( (x - point_de_rot_x) * sin(r_angle) ) + ( ((y - point_de_rot_y) * (cos (r_angle))) + point_de_rot_y );
x = x_sauv;
} |
Ce code tourne bien le rectangle mais le deforme complétement ( agrandissement verticale par 7 ou 8 )
Voila merci