我目前正試圖通過OpenGL的方式瞭解基礎知識。 當時我嘗試渲染一個帶有金字塔的浮動立方體。我希望立方體在Input(已經在工作)和Pyramid上旋轉,以保持它應該在的位置。(OpenGL)將「舊」矩陣推入堆棧
確定了使用Push-
和PopMatrix
後我設法只旋轉立方體。 我的問題是,立即停止旋轉,只要我放開鑰匙。 player.X
和Player.Z
在此時未被重置(檢查)。
所以我的猜測是,PushMatrix
將某種標準矩陣放入堆棧,然後旋轉並顯示它。由於1 * x
總是等於x
,因此不存在輪換。
所以問題是: 如何設法將「舊」矩陣推入堆棧而不是新的?
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(-(player->Z), 1.0f, 0.0f, 0.0f);
glRotatef(-(player->X), 0.0f, 1.0f, 0.0f);
glBegin(GL_QUADS);
//Draw Cube
glEnd();
glPopMatrix();
glBegin(GL_TRIANGLES);
//Draw Pyramid
glEnd();
glFlush();
SwapBuffers (hDC);
該解決方案的ineed是編寫一個旋轉函數(包括一個靜態結構)並將每次運行時的旋轉值相加... thx很多 – celphy