資源簡介
演示一個不斷旋轉、縮放和移動的正三棱錐。要求正三棱錐 4 個面的顏
色各不相同。
代碼片段和文件信息
#include
#include?
float?pi?=?3.1415926;
float?time;
void?Timer(int?millis)
{
float?dtime?=?5;
time?=?fmod(time?+?dtime?360);
glutPostRedisplay();
glutTimerFunc(millis?Timer?millis);
}
void?Reshape(int?w?int?h)
{
glViewport(0?0?w?h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30?(float)w?/?h?1?1000);
glTranslatef(0?0?-8);
glRotatef(30?1?0?0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void?triangle(float?r)
{
glPushMatrix();
glColor3f(1?0?0);
glTranslatef(0?0?r*sin(pi?/?3)?/?3);
glRotatef(-19.47?1?0?0);
glBegin(GL_TRIANGLES);
{
glVertex2f(-r?/?2?0);
glVertex2f(r?/?2?0);
glVertex2f(0?r*sin(pi?/?3));
}
glEnd();
glPopMatrix();
glPushMatrix();
glColor3f(0?1?0);
glRotatef(120?0?1?0);
glTranslatef(0?0?r*sin(pi?/?3)?/?3);
glRotatef(-19.47?1?0?0);
glBegin(GL_TRIANGLES);
{
glVertex2f(-r?/?2?0);
glVertex2f(r?/?2?0);
glVertex2f(0?r*sin(pi?/?3));
}
glEnd();
glPopMatrix();
glPushMatrix();
glColor3f(0?0?1)
評論
共有 條評論