[问题] OpenGL的内部矩阵Stack要怎么反向排列?

楼主: zongshi (SPIDEY)   2014-10-17 12:28:09
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
OpenGL
问题(Question):
在GL的display function里
用glPopMatrix、glPushMatrix来储存和叫出上次的旋转矩阵
但是新放进去的glRotatef(...)会在Stack最上面
最后对图形的变换会随座标轴改变而改变
假设[R1]~[Rn]代表最初和最后的glRotatef矩阵,[图]代表图形座标
则出来的结果会是
[R1]*[R2]*...*[Rn]*[图]
但是我想要的结果是
[Rn]*[Rn-1]*...*[R1]*[图]
该怎么做才能得到我要的结果?
以下是我目前的display function的 Code
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,0,dist,0,0,0,0,1,0);
glPopMatrix();
glRotatef(theta,axis_x, axis_y, 0.0);
glPushMatrix();
\\\\画图\\\
}

Links booklink

Contact Us: admin [ a t ] ucptt.com