30

Oui enfin la notation n'a pas d'importance. En pratique, on stocke juste les coordonnées cartésiennes des points et l'angle de rotation. Quelque soit la représentation, on retombera toujours sur 2 sinus et 2 cosinus pour la calcul.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

31

Non par exemple pour une rotation d'angle a par rapport à (oZ), ça sera par exemple
|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 tongue
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

32

Ca apporte quel avantage par rapport au calcul du ./2 ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

33

aucun mise a part l'ecriture simple.

34

Et aussi de pouvoir facilement composer des transformations en multipliant des matrices.
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

35

Et aussi plus facile d'avoir du calcul redondant (si utilisation de formules generales)

36

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.

Ca m'étonnerait que ça vienne d'un pb d'arrondi : à moins que ses erreurs d'arrondi soient faites "exprès" pour faire une ellipse, l'orbite de la rotation va être asymptotiquement stable par rotation d'un quart de tour (x et -y voient leur rôles échangés, donc si les erreurs d'arrondi sont pas trop "méchantes" la distribution de valeurs va être la même quand on fait une rotation d'un quart de tour), et donc si c'est une ellipse alors c'est un cercle ^^
(ceci dit c'est un bon conseil, même si ça n'explique pas son pb oui 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)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

37

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 frown.gif frown.gif

quequ'un pourrais m'eclairer avec un petit exemple ?

merci d'avance wink.gif

sawamura (./19) :
je code sur psp, en C wink.gif

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 wink.gif
(je sais pas si je m'explique bien en fait mod.gif )

Spipu (./23) :
de plus, sur psp, il y a direct la gestion des rotations...


je me répète, mais normalement la PSP gère direct les rotations des objets et autres, tu n'as jamais à effectuer toi meme les rotations des objets, qu'ils soient 2D ou 3D...

pour le plan 2D sur PSP :

			sceGumMatrixMode(GU_PROJECTION);						// Select The Projection Matrix
			sceGumLoadIdentity();									// Reset The Projection Matrix
			sceGumOrtho(0, width, 0, height, -1,1);						// Set Up An Ortho Screen


pour tracer en 2D :

sceGumDrawArray(GU_TRIANGLES, .....|GU_TRANSFORM_2D, longueur_liste, 0, liste);

Ancien pseudo : lolo