2017-04-12 1 views
0

Je dessine un triangle en utilisant SDL. La fonction suivante est destinée à prendre les coordonnées du triangle qui sont stockées dans le tableau 'triCoords' et les faire pivoter de l'angle spécifié autour du centre du triangle qui est stocké dans le tableau 'triPos'. Cependant, alors qu'il semble tourner correctement, il diminue également le triangle au fil du tempsLa rotation diminue lentement image

triCoords[0]=((triCoords[0] - triPos[0])*cos(angle) - (triCoords[1] - triPos[1])*sin(angle)) + triPos[0]; 
triCoords[1]=((triCoords[1] - triPos[1])*cos(angle) + (triCoords[0] - triPos[0])*sin(angle)) + triPos[1]; 
triCoords[2]=((triCoords[2] - triPos[0])*cos(angle) - (triCoords[3] - triPos[1])*sin(angle)) + triPos[0]; 
triCoords[3]=((triCoords[3] - triPos[1])*cos(angle) + (triCoords[2] - triPos[0])*sin(angle)) + triPos[1]; 
triCoords[4]=((triCoords[4] - triPos[0])*cos(angle) - (triCoords[5] - triPos[1])*sin(angle)) + triPos[0]; 
triCoords[5]=((triCoords[5] - triPos[1])*cos(angle) + (triCoords[4] - triPos[0])*sin(angle)) + triPos[1]; 
+4

Utilisez toujours l'image originale (non modifiée) comme argument d'entrée pour la fonction de rotation. – 2501

+0

Pourquoi l'utilisation des coordonnées pivotées entraîne-t-elle un rétrécissement? –

Répondre

3

Ne pas mettre à jour les coordonnées en place, stocker les coordonnées pivotés dans un tableau séparé.

+0

pourquoi ce haut de l'image rétrécit? –

+3

@CallumLukePerks: Parce que vous n'accumulez pas d'erreur à virgule flottante en réutilisant les positions pivotées. – genpfault