2017-04-12 88 views
0

我正在使用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]; 
+4

始終將原始(未修改的)圖像用作旋轉功能的輸入參數。 – 2501

+0

爲什麼使用旋轉的座標會導致其縮小? –

回答

3

不更新就地座標,旋轉座標存儲在一個單獨的陣列。

+0

爲什麼這個圖像會縮小? –

+3

@CallumLukePerks:因爲您沒有通過重新使用旋轉位置來累積浮點錯誤。 – genpfault