我正在通过OpenGL Superbible(第4版)。第4章有一个围绕原子核旋转电子的例子。 (基本上是关于单个较大球体的小球体)。
这是渲染函数的摘录,它在围绕核(另一个球体)的特定位置绘制电子(球体)。 fElect1
是每次渲染调用时增加10度的角度。
glPushMatrix();
glRotatef(360.0f-45.0f,0.0f, 0.0f, 1.0f);
glRotatef(fElect1, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 60.0f);
glColor3ub(56,136,21);
glutSolidSphere(6.0f, 15, 15);
glPopMatrix()
所以 - 他围绕z轴旋转了315度。然后将关于新旋转的y轴的视图旋转角度fElect1
,然后绘制球体。即,他想模拟围绕y轴的电子轨道。结果是电子似乎在球体周围的“倾斜”轨道上移动(因为x轴倾斜了315度而倾斜)。
但我的问题是 - 他为什么翻译z轴?这不意味着电子有一种轨道,其中核不在其路径的中心吗?但是当我运行模拟时,它看起来并不像那样。
答案 0 :(得分:1)
我想也许你正在考虑从错误的方向进行操作。他们在GL中的应用方式,您首先应用最“全局”的转换,最后应用最“本地”的转换。因此,在考虑如何改变某些事物时,您可能希望以相反的顺序考虑它们。
所以: