C++ 如何定义多维数据集的起始位置?

C++ 如何定义多维数据集的起始位置?,c++,graphics,glut,C++,Graphics,Glut,我对编程相当陌生,因此可能不会使用正确的术语。我试图用立方体来创造一只狗,但是我不知道如何定义后腿的起始位置,也不知道如何闭合我的“肩膀”和“肘部”之间的空间。我通过按键将每个身体部位指定为旋转。我还意识到,我对glPushMatrix和glPopMatrix的使用可能不正确,因为我不完全了解矩阵堆栈是如何保存/加载的 glPushMatrix(); glTranslatef(-1, 0, 0); glRotatef((GLfloat)body,1, 0, 0);//sets rotat

我对编程相当陌生,因此可能不会使用正确的术语。我试图用立方体来创造一只狗,但是我不知道如何定义后腿的起始位置,也不知道如何闭合我的“肩膀”和“肘部”之间的空间。我通过按键将每个身体部位指定为旋转。我还意识到,我对glPushMatrix和glPopMatrix的使用可能不正确,因为我不完全了解矩阵堆栈是如何保存/加载的

    glPushMatrix();
glTranslatef(-1, 0, 0);
glRotatef((GLfloat)body,1, 0, 0);//sets rotations about x,y,z axis
glTranslatef(1, 0, 0);
glPushMatrix();
glScalef(2.0, 0.4, 0.5);//sets dimensions of cube
glutWireCube(2.0);//sets scale of wire cube
glPopMatrix();

glPopMatrix();

glPushMatrix();
glTranslatef(-1, 0, 0);
glRotatef((GLfloat)shoulder, 0, 0, 1);//sets rotations about x,y,z axis
glTranslatef(1, 0, 0);
glPushMatrix();
glScalef(1.5, 0.4, 0.5);//sets dimensions of cube
glutWireCube(.75);//sets scale of wire cube
glPopMatrix();

glTranslatef(1,0,0);
glRotatef((GLfloat)elbow,0,0,1);//sets rotations about x,y,z axis
glTranslatef(1,0,0);
glPushMatrix();
glScalef(1.5,0.4,0.5);//sets dimensions of cube
glutWireCube(.75);//sets scale of wire cube
glPopMatrix();

glPopMatrix();
glutSwapBuffers();
图片是我的目标位置,但是我的立方体总是水平开始定向


与glTranslate一起,就像它的朋友一样

例如,可以进行平移,使中心现在位于拐角处,以便旋转围绕此新控制柄旋转