這是我使用的代碼。2d旋轉opengl
#define ANGLETORADIANS 0.017453292519943295769236907684886f // PI/180
#define RADIANSTOANGLE 57.295779513082320876798154814105f // 180/PI
rotation = rotation *ANGLETORADIANS;
cosRotation = cos(rotation);
sinRotation = sin(rotation);
for(int i = 0; i < 3; i++)
{
px[i] = (vec[i].x + centerX) * (cosRotation - (vec[i].y + centerY)) * sinRotation;
py[i] = (vec[i].x + centerX) * (sinRotation + (vec[i].y + centerY)) * cosRotation;
printf("num: %i, px: %f, py: %f\n", i, px[i], py[i]);
}
到目前爲止,它接縫我的Y值被fliped ..說我進入X = 1和Y = 1的值與45旋轉,你應該看到大約x = 0和y = 1.25十歲上下,但我得到x = 0 y = -1.25。
而且我的90度旋轉總是返回x = 0和Y = 0
P.S我知道我只是在我的中心值,而不是將其放回他們來自何處。我不需要把它們放回去,因爲我需要知道的是我現在得到的價值。
你可以嘗試格式正確的代碼?這是一個痛苦,試圖讀取 – SinisterMJ
@AntonRoth是的抱歉,我正在嘗試。其他人已經修復了它。我現在也知道如何做到這一點,對於造成不便,我感到抱歉。 –
最簡單的是,在編輯器中你有一個{}字段。標記你的代碼,並按下該按鈕 - >你有代碼段。 – SinisterMJ