cs_azkab
Messages postés22Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention29 juin 2004
-
25 mai 2004 à 09:22
shirah3i
Messages postés24Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention10 juin 2004
-
26 mai 2004 à 13:08
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?
shirah3i
Messages postés24Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention10 juin 2004 25 mai 2004 à 17:10
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.
cs_azkab
Messages postés22Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention29 juin 2004 26 mai 2004 à 03:21
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.
shirah3i
Messages postés24Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention10 juin 2004 26 mai 2004 à 12:25
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
Vous n’avez pas trouvé la réponse que vous recherchez ?