void display(void)
{
GLfloat position[] = {0.0, 0.0, 1.5, 1.0};
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix();
glTranslatef(0.0, 0.0, -5.0); glPushMatrix();
glRotated((GLdouble)spin, 0.0, 1.0, 0.0); //
glLightfv(GL_LIGHT0, GL_POSITION, position); //
glTranslated(0.0, 0.0, 1.5); //
glDisable(GL_LIGHTING); // 这几个函数的先后顺序是怎样的
glColor3f(0.0, 1.0, 1.0); //
glutWireCube(0.1); //
glEnable(GL_LIGHTING); //
glPopMatrix(); glutSolidTorus(0.275, 0.85, 8, 15);
glPopMatrix(); glFlush();
}
{
GLfloat position[] = {0.0, 0.0, 1.5, 1.0};
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix();
glTranslatef(0.0, 0.0, -5.0); glPushMatrix();
glRotated((GLdouble)spin, 0.0, 1.0, 0.0); //
glLightfv(GL_LIGHT0, GL_POSITION, position); //
glTranslated(0.0, 0.0, 1.5); //
glDisable(GL_LIGHTING); // 这几个函数的先后顺序是怎样的
glColor3f(0.0, 1.0, 1.0); //
glutWireCube(0.1); //
glEnable(GL_LIGHTING); //
glPopMatrix(); glutSolidTorus(0.275, 0.85, 8, 15);
glPopMatrix(); glFlush();
}
{
GLfloat position[] = {0.0, 0.0, 1.5, 1.0};
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glPushMatrix();
glTranslatef(0.0, 0.0, -5.0);glPushMatrix();//将要保存的变换矩阵压栈
glRotated((GLdouble)spin, 0.0, 1.0, 0.0); //设置矩阵,绕(0,1,0)向量旋转spin弧度。
glLightfv(GL_LIGHT0, GL_POSITION, position); //设置第0个光源的位置
glTranslated(0.0, 0.0, 1.5); //设置矩阵,在之前的旋转叠加上平移,沿着向量(0,0,1.5)平移
//////////////////////////////////////////////////////////
glDisable(GL_LIGHTING); // 取消灯光设置。
glColor3f(0.0, 1.0, 1.0); //设置当前的颜色
glutWireCube(0.1); //绘制立方体。由于取消了灯光,于是这个立方体不受灯光的影响。
/////////////////////////////////////////////////////
glEnable(GL_LIGHTING); //打开灯光
glPopMatrix();//还原之前保存的矩阵glutSolidTorus(0.275, 0.85, 8, 15);
glPopMatrix();glFlush();
}
我是错了,我承认,到道歉。
但是说我误人子弟,我很不服气。