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];
Utilisez toujours l'image originale (non modifiée) comme argument d'entrée pour la fonction de rotation. – 2501
Pourquoi l'utilisation des coordonnées pivotées entraîne-t-elle un rétrécissement? –