【发布时间】:2013-10-23 08:58:57
【问题描述】:
我想编写一个函数,用于同时围绕其轴旋转对象,同时将每个角度围绕其 x、y 和 z 轴传递;我读了here,但我没有完全理解。例如,为了围绕我的形状的轴旋转,我必须将哪些参数传递给 glTranslatef() 以及乘以 [0 1 0] 的矩阵(用于计算新的 y 轴)是如何创建的?
我不明白为什么当我多次调用 glRotatef() 时,我只看到输出中的第一个调用;我在代码前后测试了 gltranslatef 和 glPushMatrix 和 glPopMatrix;但他们都没有帮助我; 理解这个话题的解决方案对我来说非常重要。
这是我的代码,但它不起作用!
glPushMatrix();
glRotatef(90,1,0,0); // rotate around X Axis
glPopMatrix();
glPushMatrix();
glRotatef(90,0,1,0); // rotate around Y Axis
glPopMatrix();
glPushMatrix();
glRotatef(90,0,0,1); // rotate around Z Axis
glPopMatrix();
如果你这样做了,告诉我你的方式。
【问题讨论】:
-
您能否更好地描述您的问题,我似乎不明白您的问题是什么。
-
没有什么比得上“轴”了。按照惯例,几何应该在对象空间中定义。这个空间有一组三个基向量。如果您自己不指定固定轴或指定临时旋转轴,则底座是您唯一拥有的东西。你能发布一些代码吗?您的问题非常复杂和令人困惑。
-
是的!我想在openGL屏幕中绘制一个相机形状,用户可以确定相机的位置和它围绕x、y、z轴的角度;我想将这 6 个参数传递给这个函数,但是使用 glRotatef() 函数我不能同时改变围绕轴的 3 个角度;每次我只看到其中一个的效果;
标签: c++ visual-studio-2010 opengl glrotate