OpenGL中的对象旋转

OpenGL中的对象旋转,opengl,3d,kinematics,Opengl,3d,Kinematics,我正在制作一个带有按钮弹出矩阵和弹出菜单项的方形手臂。我想让对象单独旋转,所以我创建了下面的代码,但是一个手指和其他手指一起移动。为什么它要一起移动 void显示(void){ glClear(GLU颜色缓冲位); 画线(); glPushMatrix(); GL3F(1.0,1.0,1.0); glTranslatef(-1.0,0.0,0.0); glRotatef((GLfloat)肩部,0.0,0.0,1.0); glTranslatef(1.0,0.0,0.0); glPushMatr

我正在制作一个带有按钮弹出矩阵和弹出菜单项的方形手臂。我想让对象单独旋转,所以我创建了下面的代码,但是一个手指和其他手指一起移动。为什么它要一起移动

void显示(void){
glClear(GLU颜色缓冲位);
画线();
glPushMatrix();
GL3F(1.0,1.0,1.0);
glTranslatef(-1.0,0.0,0.0);
glRotatef((GLfloat)肩部,0.0,0.0,1.0);
glTranslatef(1.0,0.0,0.0);
glPushMatrix();
glScalef(2.0,0.4,1.5);
glutWireCube(1.0);//第一个正方形(肩部)
glPopMatrix();
glTranslatef(1.0,0.0,0.0);
glRotatef((GLfloat)弯头,0.0,0.0,1.0);
glTranslatef(1.0,0.0,0.0);
glPushMatrix();
glScalef(2.0,0.4,1.5);
glutWireCube(1.0);//第二个正方形(弯头)
glPopMatrix();
glTranslatef(1.0,0.0,0.0);
glRotatef((GLfloat)finger_1,0.0,0.0,1.0);
glTranslatef(0.25,0.0,0.7);
glPushMatrix();
glScalef(0.5,0.2,0.2);
glutWireCube(1.0);//第一个手指
glPopMatrix();
glTranslatef(-0.3,0.0,0.0);
glRotatef((GLfloat)finger_2,0.0,0.0,1.0);
glTranslatef(0.25,0.0,-0.4);
glPushMatrix();
glScalef(0.5,0.2,0.2);
glutWireCube(1.0);//第二个手指
glPopMatrix();
glTranslatef(-0.3,0.0,0.0);
glRotatef((GLfloat)finger_3,0.0,0.0,1.0);
glTranslatef(0.25,0.0,-0.5);
glPushMatrix();
glScalef(0.5,0.2,0.2);
glutWireCube(1.0);//无名指
glPopMatrix();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}

对象旋转是由单独的函数完成的。

因为你按下了弹出键。。。使用手臂时,应保持平移和旋转,否则将忽略先前的零件状态。。。。唯一要推/弹出的是渲染子部分的缩放…不,在手指底部之前推,然后旋转渲染平移,然后是手指的下一块骨骼。。。然后弹出并对reach finger执行相同操作…嗨,不久前我发现这个pdf文档非常好地解释了我建议阅读的概念,它确实是一个非常好的阅读。因为你推弹出。。。使用手臂时,应保持平移和旋转,否则将忽略先前的零件状态。。。。唯一要推/弹出的是渲染子部分的缩放…不,在手指底部之前推,然后旋转渲染平移,然后是手指的下一块骨骼。。。然后弹出并对reach finger执行同样的操作…嗨,不久前我发现这个pdf文档非常好地解释了我建议阅读的概念,它确实是一个非常好的阅读。