旋转正在慢慢缩小图像

时间:2017-04-12 19:19:00

标签: c rotation sdl

我正在使用SDL画一个三角形。以下函数用于获取存储在“triCoords”数组中的三角形的坐标,并围绕存储在“triPos”数组中的三角形的中心旋转指定的角度。然而,虽然它似乎正确旋转,但它也会随着时间的推移缩小三角形

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];

1 个答案:

答案 0 :(得分:3)

不要就地更新坐标,将旋转的坐标存储在单独的数组中。