0
我試圖用旋轉矩陣旋轉立方體的頂點,但每當我運行程序時立方體就會消失。使用旋轉矩陣旋轉立方體的頂點
我正在使用一個旋轉矩陣,它是在旋轉立方體x座標的講座中給予我們的。
double moveCubeX = 0;
float xRotationMatrix[9] = {1, 0, 0,
0, cos(moveCubeX), sin(moveCubeX),
0, -sin(moveCubeX), cos(moveCubeX)
};
我在我的鍵盤
case 't':
moveCubeX += 5;
break;
並做矩陣乘法上增加了moveCubeX變量與「T」鍵我使用
glMultMatrixf();
然而,當運行時,我將其添加到我的代碼中,但立方體剛剛消失。這是我在glMultMatrixf()函數中添加的位置。
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(pan, 0, -g_fViewDistance,
pan, 0, -1,
0, 1, 0);
glRotatef(rotate_x, 1.0f, 0.0f, 0.0f); //Rotate the camera
glRotatef(rotate_y, 0.0f, 1.0f, 0.0f); //Rotate the camera
glMultMatrixf(xRotationMatrix);
我很努力地看到它在哪裏,我出錯了。
我本來它通過讀取旋轉矩陣維基百科的一個4×4,改變它的一些原因。無論如何,好消息是當我運行它時,立方體實際上顯示出來,但是當我按下按鍵時它不會移動。關於度/弧度,我認爲OpenGL根據這個http://stackoverflow.com/questions/2146884/why-does-opengl-use-degrees-instead-of-radians使用度數。 – JaAnTr 2014-11-14 17:30:22
我剛剛意識到你的意思是關於度和弧度,因爲它在C++而不是OpenGL中。我剛剛嘗試過,所以每增加0.175弧度。但是,它仍然不起作用,因爲它實際上並沒有對多維數據集做任何事情。 – JaAnTr 2014-11-14 17:37:51
@JaAnTr - 每次更改角度時都需要重新計算矩陣的單元格,而不是僅定義一次。 – 2014-11-14 17:44:22