假设我们有一个正方形,在它被平移到某个位置后,我想围绕对象内的一个点旋转它。
glPushMatrix();
glTranslatef(50, 50, 0.0);
glRotatef(joint, 0.0, 0.0, 1.0);
glScalef(10,20, 1.0);
glTranslatef(0.0, -0.5, 0.0);
glColor3f(1.0, 0.0, 0.0);
drawSquare(1.0);
glPopMatrix();
上面的那个只在缩放后围绕 (0.0) 点旋转。如果我将 glRotatef(joint, 0.0, 0.0, 1.0) 更改为 glRotatef(joint, 0.0, 5.0, 1.0),则对象开始扭曲。