【发布时间】:2022-01-23 00:04:20
【问题描述】:
我有 3 个矩形,我需要将它们放置在讲台的形状。此时它们看起来像这样:
glPushMatrix();
glRotated(rotate_x, 1.0, 0.0, 0.0);
glRotated(rotate_y, 0.0, 1.0, 0.0);
glScalef(1, 3, 1);
glColor3fv(gold);
glutSolidCube(2);
glPopMatrix();
glPushMatrix();
glTranslated(2, 0, -3);
glRotated(rotate_x, 1.0, 0.0, 0.0);
glRotated(rotate_y, 0.0, 1.0, 0.0);
glScalef(1, 2, 1);
glColor3fv(silver);
glutSolidCube(2);
glPopMatrix();
glPushMatrix();
glTranslatef(-2, 0, 0);
glScalef(1, 1, 1);
glRotated(rotate_x, 1.0, 0.0, 0.0);
glRotated(rotate_y, 0.0, 1.0, 0.0);
glColor3fv(bronze);
glutSolidCube(2);
glPopMatrix();
当我尝试使用 glTranslatef(-2, 0, -2); 将银色矩形向下移动一点以使其与黄色矩形处于同一水平时;它只是变小了:
glTranslatef 的前两个参数可以很好地向左/向右和更近/更远移动对象,那么为什么第三个参数会改变对象的大小?
【问题讨论】:
标签: c++ opengl glut opengl-compat