|cos(a) -sin(a)| |sin(a) cos(a)|mais après si t'es intelligent tu peux juste les calculer une fois au moment où tu génère ta matrice

Kevin Kofler (./20) :
Je pense que ton problème, c'est un problème d'arrondi. Si on fait à chaque fois la rotation (xa,ya)->(xna,yna), on accumule les erreurs d'arrondi. Il faut garder le (xa,ya) d'origine constant, faire varier l'angle de rotation et recalculer (xna,yna) à partir du (xa,ya) d'origine à chaque fois, comme ça on ne perd pas en précision sans arrêt.
par contre ça dépend du domaine : si c'est pour simuler physiquement le mouvement d'un point qui peut interagir avec d'autres choses alors la formule pour la rotation itérée ne sert à rien)sawamura (./1) :
bonjour a tous
j"aimerais faire une rotation d'un point A autour d'un point B, mais je ne trouve pas mon bonheur![]()
![]()
quequ'un pourrais m'eclairer avec un petit exemple ?
merci d'avance![]()
sawamura (./19) :
je code sur psp, en C![]()
et mon "plan' de travail respecte bien "un pixel de l'ecran pour un pixel de l'image"
le probleme c'est qu'avec la methode de spipu, mon point tourne autour de l'autre, mais en ovale, et en diagonale![]()
(je sais pas si je m'explique bien en fait)
Spipu (./23) :
de plus, sur psp, il y a direct la gestion des rotations...
sceGumMatrixMode(GU_PROJECTION); // Select The Projection Matrix sceGumLoadIdentity(); // Reset The Projection Matrix sceGumOrtho(0, width, 0, height, -1,1); // Set Up An Ortho Screen