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 :
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 :
Ce code tourne bien le rectangle mais le deforme complétement ( agrandissement verticale par 7 ou 8 )
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 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; }
Voila merci
Partager