begin process at 2008 08 20 14:49:25
1 228 884 membres
250 nouveaux aujourd'hui
14 258 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : rotation d'un objet 2d [ Archives / Au secours ] (azkab)

rotation d'un objet 2d le 25/05/2004 09:22:09

azkab
bonjour,
bon j ai un probleme avec mon programme, j ai passé des heures la dessus mais en vain.
dans mon programme je cree un rectangle et je desire effectuer une rotation de Phi=45 degres (0.78 en radian) la dessus. donc, pour chaque point de rectangle je fais cela :
mettant un point avec les coordonés x et y
x1 et y1 etant la nouvelle position

int x1= (int)(x*cos(Phi)-y*sin(Phi));
int y1= (int)(x*sin(Phi)+y*cos(Phi));

1-est-ce que c'est la bonne methode pour pivoter un objet?
2-si oui est ce ke klk un pourrait m aider a resoudre mon prob?

merci d'avance.
return(0);)

Re : rotation d'un objet 2d le 25/05/2004 17:10:24

shirah3i
Salut!

(1) Oui c'est la bonne méthode pour faire pivoter un objet.
(2) Je te conseille de mettre tes x et tes y en float ou en double ca devrait aller un peu mieux avec des sin et des cos.

@+
SHIRAH

Re : rotation d'un objet 2d le 25/05/2004 20:29:34

djl

:o man cos,sin arg doit etre en rad, pas en deg!

const double PI=3.1415926;

int x1= (int)(x*cos(Phi*(PI/180))-y*sin(Phi*(PI/180)));
...

Re : rotation d'un objet 2d le 26/05/2004 03:21:47

azkab
bonjour tt le monde,
d abord merci pour vos reponses.
shirah-» ce que j arrive pa a comprendre c comment utiliser des float ou meme des doubles en sachant ke je dois avoir des corrdonnées (entiers) genre (1,6),(4,98) etc. le casting va me faire perdre de la precision et les float je peux pas les utiliser parceke je dois inserer des points dans differentes matrices (cartes). comment devrais je faire?
djl-» je mettais la valeur de l'agle en radian (0.78)

en 2k je v creuser encore ce soire et je vous tienderais des nouvelles :)
si vous avez des suggestions ca sera la bienvenue ;)
merci 876876687687687 fois.

return(0);)

Re : rotation d'un objet 2d le 26/05/2004 12:25:22

shirah3i
Si tes transformations s'appliquent à l'ensemble de tes points, tu peux essayer de faire tes opérations sur les matrices de transformation (rotation, translation...).
Le résultat de tes transformations te donne une matrice mat_transform[][] dont les valeurs seront en double ou en float (a cause des sin, cos).
Après tu fais un cast sur le résultat de (pts_init[][]*mat_transform[][]) comme ca tu fais moins de calculs, et tu perds un peu moins en précision puisque tu fais ton cast uniquement à la fin.
En plus comme ca tu peux aussi insérer tes coordonnées dans d'autres matrices avec le cast dont tu as besoin!


SHIRAH

Re : rotation d'un objet 2d le 26/05/2004 13:08:01

shirah3i
euh c'est le résultat de (mat_transform[][]*pts_init[][]) que tu dois caster!

@+
SHIRAH


Classé sous : int, objet, rotation, 2d, phi

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS