旋转立方体(opengl)

简介: #include GLfloat rquad;      //立方体旋转角度void init(void){ glClearColor(0.0f,0.0f,0.0f,0.0f); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST);   //激活深度测试...

#include <GL/glut.h>
GLfloat rquad;      //立方体旋转角度
void init(void)
{
 glClearColor(0.0f,0.0f,0.0f,0.0f);
 glShadeModel(GL_SMOOTH);
 glEnable(GL_DEPTH_TEST);   //激活深度测试,以隐藏被遮挡面
}

void display(void)
{
 //清除颜色缓存和深度缓存
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 glTranslatef(0.0f,0.0f,-7.0f);
 glRotatef(rquad,1.0f,1.0f,1.0f);
 glBegin(GL_QUADS);
 glColor3f(0.0f,1.0f,0.0f);
 glVertex3f(1.0f,1.0f,-1.0f);
 glVertex3f(-1.0f,1.0f,-1.0f);
 glVertex3f(-1.0f,1.0f,1.0f);
 glVertex3f(1.0f,1.0f,-1.0f);

 glColor3f(1.0f,0.5f,0.0f);
 glVertex3f(1.0f,-1.0f,1.0f);
 glVertex3f(-1.0f,-1.0f,1.0f);
 glVertex3f(-1.0f,-1.0f,-1.0f);
 glVertex3f(1.0f,-1.0f,-1.0f);

 glColor3f(1.0f,0.0f,0.0f);
 glVertex3f(1.0f,1.0f,1.0f);
 glVertex3f(-1.0f,1.0f,1.0f);
 glVertex3f(-1.0f,-1.0f,1.0f);
 glVertex3f(1.0f,-1.0f,1.0f);

 glColor3f(1.0f,1.0f,0.0f);
 glVertex3f(1.0f,-1.0f,-1.0f);
 glVertex3f(-1.0f,-1.0f,-1.0f);
 glVertex3f(-1.0f,1.0f,-1.0f);
 glVertex3f(1.0f,1.0f,-1.0f);

 glColor3f(0.0f,0.0f,1.0f);
 glVertex3f(-1.0f,1.0f,1.0f);
 glVertex3f(-1.0f,1.0f,-1.0f);
 glVertex3f(-1.0f,-1.0f,-1.0f);
 glVertex3f(-1.0f,-1.0f,1.0f);

 glColor3f(1.0f,0.0f,1.0f);
 glVertex3f(1.0f,1.0f,-1.0f);
 glVertex3f(1.0f,1.0f,1.0f);
 glVertex3f(1.0f,-1.0f,1.0f);
 glVertex3f(-1.0f,-1.0f,-1.0f);

  glEnd();
  rquad-=0.2f;            //加一个角度
  glutSwapBuffers();      //交换双缓存
}

void reshape(int width,int height)
{
 glViewport(0,0,width,height);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
}

void keyboard(unsigned char key,int x,int y)
{
 switch (key)
 {
   case 27:
    //exit(0);
   break;
      default:
    break;
 }
}

int main(int argc,char** argv)
{
 glutInit(&argc,argv);
 //使用双缓存模式和深度缓存
 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
 glutInitWindowSize(600,350);
 glutInitWindowPosition(200,200);
 glutCreateWindow("旋转动画");
 init();
 glutDisplayFunc(display);
 glutReshapeFunc(reshape);
 glutKeyboardFunc(keyboard);
 glutIdleFunc(display);   //设置空闲时用的函数
 glutMainLoop();
 return 0;
}

相关文章
|
6月前
|
计算机视觉
OpenCV-绘制旋转矩形
OpenCV-绘制旋转矩形
|
6月前
|
计算机视觉
OpenCV-基本图形绘制(圆、矩形、椭圆)
OpenCV-基本图形绘制(圆、矩形、椭圆)
c3旋转立方体
要求:六面立方体,立体旋转 
72 0
c3旋转立方体
|
Swift 容器
OpenGL ES 案例03:CoreAnimation绘制立方体+旋转
OpenGL ES 案例03:CoreAnimation绘制立方体+旋转
178 0
OpenGL ES 案例03:CoreAnimation绘制立方体+旋转
|
缓存 Swift iOS开发
OpenGL ES 案例02:GLKit绘制立方体+旋转
OpenGL ES 案例02:GLKit绘制立方体+旋转
166 0
OpenGL ES 案例02:GLKit绘制立方体+旋转
|
机器学习/深度学习
【OpenGL】十六、OpenGL 绘制四边形 ( 绘制 GL_QUADS 四边形 )
【OpenGL】十六、OpenGL 绘制四边形 ( 绘制 GL_QUADS 四边形 )
409 0
【OpenGL】十六、OpenGL 绘制四边形 ( 绘制 GL_QUADS 四边形 )
|
Windows
【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 )
【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 )
536 0
【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 )
3D立方体旋转动画
在线演示 本地下载
1081 0
|
图形学
Unity中的平移 缩放 旋转
Unity中的平移 缩放 旋转 1.最近想实现Unity中的平移 缩放 旋转功能, 类似于Unity编辑器状态下的效果.尝试了好几个方式,效果都有瑕疵,网友们谁有好的实现方式,请教我. 下面是我的一种实现方式: using System.
2186 0