以下是关于如何绘制机器人的手臂和肩膀并通过一些用户输入旋转它们的代码(取自http://www.glprogramming.com/red/chapter03.html ):
glPushMatrix();
glTranslatef (-1.0, 0.0, 0.0);
glRotatef ((GLfloat) shoulder, 0.0, 0.0, 1.0);
glTranslatef (1.0, 0.0, 0.0);
glPushMatrix();
glScalef (2.0, 0.4, 1.0);
glutWireCube (1.0);
glPopMatrix();
glTranslatef (1.0, 0.0, 0.0);
glRotatef ((GLfloat) elbow, 0.0, 0.0, 1.0);
glTranslatef (1.0, 0.0, 0.0);
glPushMatrix();
glScalef (2.0, 0.4, 1.0);
glutWireCube (1.0);
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
我理解绘制肩膀和旋转它的代码。对于肩部:首先我们将其沿 x 轴向后平移一个单位,这样当我们进行旋转时,它会沿原点作为枢轴旋转。然后我们将它向后平移(在 x 轴上向前移动一个单位)。此转换将应用于已缩放的立方体。
现在,我的问题是肘部。为什么在旋转之前和之后在 x 轴上都有向前平移?