1
我的數學錯了嗎?用戶應該能夠以度數輸入角度,並分別旋轉矩陣。相反,它縮小了對象,將其翻轉......調用旋轉矩陣收縮對象?
glmxRotate(&modelview, 0.0f, 0.0f, 1.0f, 90.0f);
(與模型視圖是單位矩陣)產量:
常規:http://i.imgur.com/eX7Td.png
旋轉的:http://i.imgur.com/YnMEn.png
這裏的glmxRotate :
glmxvoid glmxRotate(glmxMatrix* matrix, glmxfloat x, glmxfloat y, glmxfloat z,
glmxfloat angle)
{
if(matrix -> mx_size != 4){GLMX_ERROR = GLMX_NOT_4X4; return;}
//convert to rads
angle *= 180.0f/3.14159;
const glmxfloat len = sqrtf((x * x) + (y * y) + (z * z)),
c = cosf(angle),
c1 = 1.0f - c,
s = sinf(angle);
//normalize vector
x /= len;
y /= len;
z /= len;
glmxfloat rot_mx[] = {x * x * c1 + c,
x * y * c1 + z * s,
x * z * c1 - y * s,
0.0f,
x * y * c1 - z * s,
y * y * c1 + c,
y * z * c1 + x * s,
0.0f,
x * z * c1 + y * s,
y * z * c1 - x * s,
z * z * c1 + c,
0.0f,
0.0f,
0.0f,
0.0f,
1.0f,};
_glmxMultiMatrixArray(matrix, rot_mx, 4);
}
Al所以,如果翻譯矩陣是用最後四列中的翻譯定義的,那麼如何去翻譯單位矩陣,因爲結果總是會產生0?
這是問題,謝謝。 – Shokwav