#define GLUT_DISABLE_ATEXIT
#include <windows.h>
#include "GL/glut.h"
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
static int slices=16;
static int stacks=16;
static void resize(int width,int height)
{
const float ar=(float)width/(float)height;
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-ar,ar,-1.0,1.0,2.0,100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}//窗口
static void display(void)
{
static double a=0;//定义a为每次旋转的角度
a=a+0.15;
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//清除颜色缓冲区和深度缓冲区
//绘制第一个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(3,1.5,-4);//z值取负才可显示
glRotated(0,1,0,0);
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第二个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(-3,-1.5,-4);//z值取负才可显示
glRotated(0,1,0,0);
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第三个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(-3,1.5,-4);//z值取负才可显示
glRotated(0,1,0,0);//绕x轴1旋转,角度0,不动点为原点
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第四个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(3,-1.5,-4);//z值取负才可显示
glRotated(0,1,0,0);//绕x轴1旋转,角度0,不动点为原点
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第五个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(3,0,-4);//z值取负才可显示
glRotated(0,1,0,0);//绕x轴1旋转,角度0,不动点为原点
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第六个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(-3,0,-4);//z值取负才可显示
glRotated(0,1,0,0);//绕x轴1旋转,角0,不动点为原点
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第7个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(0,-1.5,-4);//z值取负才可显示
glRotated(0,1,0,0);//绕x轴1旋转,角度0,不动点为原点
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第8个立方体
glColor3d(0,1,1);//画图颜色为浅蓝
glPushMatrix();
glTranslated(0,1.5,-4);//z值取负才可显示
glRotated(0,1,0,0);//绕x轴1旋转,角度0,不动点为原点
glRotated(a,0,0,0);//每次调用display时角度a的值都增加了0.08,实现了跳动
glutSolidCube(0.5); //实心立方体
glPopMatrix();
//绘制第一个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(3,1.5,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第二个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(-3,-1.5,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第三个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(3,-1.5,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第四个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(-3,1.5,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第6个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(3,0,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第七个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(-3,0,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第八个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(0,-1.5,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//绘制第九个小圆
glColor3d(1,0,0);//画图颜色为红色
glPushMatrix();
glTranslated(0,1.5,-3.75);//z值取负才可显示
glRotated(60,1,0,0);//绕x轴1旋转,角度60,不动点为原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现了旋转
glutSolidSphere(0.25,slices,stacks);
glPopMatrix();
//画第一个大圆
glColor3d(0,1,1);//画图的颜色为浅蓝
glPushMatrix();
glTranslated(0,0,-5);//x中为0,y值为0,z为-5,z值取负值才可以显示
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display 时角度a的值都增加了0.08,实现了旋转.
glutSolidSphere(0.3,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();//跳转画下一个
//画第2个大圆
glColor3d(0,1,1);//画图的颜色为浅蓝
glPushMatrix();
glTranslated(0,-0.35,-5);//x中为0,y值为0,z为-5,z值取负值才可以显示
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display 时角度a的值都增加了0.08,实现了旋转.
glutSolidSphere(0.3,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();//跳转画下一个
//画第一个小球
glColor3d(1,1,0);//画图的颜色为黄色
glPushMatrix();
glTranslated(0.125,0.125,-3);//x中为0。5,y值为0.5,z为-3,z值取负值才可以显示设定位置
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,1,0,0);//x轴旋转,每次调用display 时角度a的值都增加了0.15,实现了旋转。
glutSolidSphere(0.05,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();
//画第二个小球
glColor3d(1,1,0);//画图的颜色为黄色
glPushMatrix();
glTranslated(-0.125,0.125,-3);//x中为0,y值为0,z为-6,z值取负值才可以显示
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现丁旋转
glutSolidSphere(0.05,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();
//画第三个小球
glColor3d(1,1,0);//画图的颜色为黄色
glPushMatrix();
glTranslated(-0.20,-0.15,-3);//x中为0,y值为0,z为-6,z值取负值才可以显示
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现丁旋转
glutSolidSphere(0.05,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();
//画第四个小球
glColor3d(1,1,0);//画图的颜色为黄色
glPushMatrix();
glTranslated(0.20,-0.15,-3);
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现丁旋转
glutSolidSphere(0.05,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();
//画第五个小球
glColor3d(1,1,0);//画图的颜色为黄色
glPushMatrix();
glTranslated(0.1,-0.38,-3);//x中为0,y值为0,z为-6,z值取负值才可以显示
glRotated(60,1,0,0);//绕x轴转动,角度60,不动点原点
glRotated(a,0,0,1);//绕z轴旋转,每次调用display时角度a的值都增加了0.08,实现丁旋转
glutSolidSphere(0.05,slices,stacks);//画圆球半径是1,经度数,纬度数分别为16
glPopMatrix();
//画第六个小球
glColor3d(1,1,0);//画图的颜色为黄色
glPushMatrix();
glTranslated(-0.1,-0.38,-3);//x中为0,y值�
海四
- 粉丝: 64
- 资源: 4712
最新资源
- 一张风格风景图片信息合
- 菜鸟重生之我要做嵌入式工程师:2-C51【所有项目代码】
- STM32F103C8T6最小系统板的原理图,PCB图,数据手册等
- STM32CubeMX配置F103C8t6硬件IIC驱动SHT30
- “智育英才成长路”:基于 SSM 和 Vue 的大学学生成长系统构建
- 基于SpringBoot的在线拍卖系统
- STM32F103C8T6最小系统板原理图PDF版
- 精准扶贫管理系统 JAVA毕业设计 源码+数据库+论文 Vue.js+SpringBoot+MySQL.zip
- 校园在线拍卖系统 JAVA毕业设计 源码+数据库+论文 Vue.js+SpringBoot+MySQL.zip
- 蜜蜂检测6-YOLO(v5至v9)、CreateML、Paligemma、VOC数据集合集.rar
- SSM 架构 Java Web 与 Vue 驱动:计算机 Office 课程平台设计
- 电子商务创业方案-海底饰界手工饰品店的市场分析与经营策略
- 毕业设计开题报告.doc
- vue2+Canvas+动态EDG数据+心电监护仪
- SSM 赋能 Web Vue 呈现:在线教学质量 ABo 评价系统创新
- 计算机232素质拓展.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论3