以下是代码(摘自http://www.glprogramming.com/red/chapter03.html),关于如何绘制机器人的臂和肩膀,并通过用户输入对它们进行旋转:
我理解绘制肩膀并旋转的代码。对于肩膀:首先,我们沿x轴向后平移一个单位,以便进行旋转时,它将以原点为支点旋转。然后,我们将其向前平移一个单位(沿x轴)。这个变换将应用于已缩放的立方体。
现在,我的问题是关于肘部的。为什么在旋转之前和之后都有向前沿x轴平移的变换?
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轴平移的变换?