旋转立方体(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;
}

相关文章
Error:java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzc.class ,EvalIssueExcep
Error:java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzc.class ,EvalIssueExcep
|
JSON 应用服务中间件 nginx
filebeat收集json格式的nginx程序日志(二)
filebeat收集json格式的nginx日志 1.为什么要收集json格式的日志类型 由于nginx普通日志收集过来的日志内容都是存在一个字段中的值,我们想单独对日志中的某一项进行查询统计,比如我只想查看某个IP请求了我那些页面,一共访问了多少次,在普通的日志中是无法过滤的,不是很满意
1157 0
filebeat收集json格式的nginx程序日志(二)
|
Java 数据库连接 Maven
springboot集成mybatis时提示找不到Mapper Bean
springboot集成mybatis时提示找不到Mapper Bean
|
SQL 存储
milvus的attu里查询SQL如何编写
【6月更文挑战第4天】milvus的attu里查询SQL如何编写
776 4
|
人工智能 监控 安全
AI浅谈:计算机视觉(CV)技术的优势和挑战
AI浅谈:计算机视觉(CV)技术的优势和挑战
459 1
|
安全 Java Maven
Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)
Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)
2146 1
|
SQL 关系型数据库 Linux
【PostgreSQL】基于CentOS系统安装PostgreSQL数据库
【PostgreSQL】基于CentOS系统安装PostgreSQL数据库
1528 0
|
Linux Serverless Go
CGO 初步认知和基本数据类型转换
CGO 初步认知和基本数据类型转换
187 0
|
NoSQL MongoDB 关系型数据库
13个Mongodb GUI可视化管理工具,总有一款适合你
本文介绍了13个好用的MongoDB可视化工具。Robomongo,MongoDB Compass,phpMoAdmin等
111385 0
13个Mongodb GUI可视化管理工具,总有一款适合你
|
Prometheus 监控 Cloud Native
微服务框架(十九)Spring Boot 可视化监控 Prometheus + Grafana
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Spring Boot 通过 micrometer 的监控门面,实现Prometheus + G...