#include <gl/glut.h>

float fEarth = 2.0f; //地球绕太阳的旋转角度

float fMoon = 24.0f; //月球绕地球的旋转角度

void Init()

{

glEnable(GL_DEPTH_TEST); //启用深度测试

glClearColor(0.0f, 0.0f, 0.0f, 0.8f); //背景为黑色

}

void Reshape(int w, int h)

{

if (0 == h)

h = 1;

glViewport(0, 0, w, h); //设置视区尺寸

glMatrixMode(GL_PROJECTION); //指定当前操作投影矩阵堆栈

glLoadIdentity(); //重置投影矩阵

//指定透视投影的观察空间

gluPerspective(45.0f, (float)w / (float)h, 1.0f, 1000.0f);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void Display(void)

{

//清除颜色和深度缓冲区

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW); //指定当前操作模型视图矩阵堆栈

glLoadIdentity(); //重置模型视图矩阵

glTranslatef(0.0f, 0.0f, -500.0f); //将图形沿z轴负向移动

glColor3f(1.0f, 0.0f, 0.0f); //画太阳

glutSolidSphere(50.0f, 20, 20);

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

glRotatef(23.27,0.0,0.0,1.0); //地球与太阳的黄赤交角

glRotatef(fEarth, 0.0f, 1.0f, 0.0f);

glTranslatef(200.0f, 0.0f, 0.0f);

glutSolidSphere(20.0f, 20, 20); //画地球

glPopMatrix();

glPopMatrix();

glRotatef(6.0f, 1.0f, 1.0f, 1.0f);

glRotatef(fMoon, 0.0f, 1.0f, 0.0f);

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

glTranslatef(30.0f, 0.0f, 0.0f);

glutSolidSphere(5.0f, 20, 20); //画月球

glLoadIdentity();

glFlush();

glutSwapBuffers();

}

void myIdle(void) //在空闲时调用,达到动画效果

{

fEarth += 0.03f; //增加旋转步长,产生动画效果

if (fEarth > 360.0f)

fEarth = 2.0f;

fMoon += 0.24f;

if (fMoon > 360.0f)

fMoon = 24.0f;

Display();

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

//窗口使用RGB颜色,双缓存和深度缓存

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);

glutInitWindowPosition(100,100);

glutInitWindowSize(600, 400);

glutCreateWindow("太阳系动画");

glutReshapeFunc(Reshape);

glutDisplayFunc(Display);

glutIdleFunc(&myIdle);

Init();

glutMainLoop();

return 0;

}

10.4.3 编程实例-太阳系动画相关推荐

  1. 058_《突破Delphi7.0编程实例五十讲》

    <突破Delphi7.0编程实例五十讲> Delphi 教程 系列书籍 (058) <突破Delphi7.0编程实例五十讲> 网友(邦)整理 EMail: shuaihj@16 ...

  2. Python并发编程实例教程

    有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库. 一.简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态 ...

  3. linux c编程项目实例,Linux c编程实例_例子

    例一:字符与整型变量的实现 #include int main() { int c1,c2; char c3; c1='a'-'A'; c2='b'-'B'; c3='c'-; printf(&quo ...

  4. java编程50实例_java编程实例大全及详解谜底(50例).doc

    java编程实例大全及详解谜底(50例).doc 还剩 33页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 谓 ...

  5. Hadoop Streaming编程实例

    Hadoop Streaming是Hadoop提供的多语言编程工具,通过该工具,用户可采用任何语言编写MapReduce程序,本文将介绍几个Hadoop Streaming编程实例,大家可重点从以下几 ...

  6. java 并发编程实例_Java并发编程案例解读

    经过前面几节的学习,了解了多线程概念.Thread类的应用.多线程数据同步存在的问题及解决方法.本节给出一个并发编程实例应用案例,通过案例的学习,可以灵活地把多线程知识应用到实际编程中,解决在项目开发 ...

  7. matlab简单程序实例视频,matlab编程实例100例.docx

    matlab编程实例100例 1-32是:图形应用篇33-66是:界面设计篇67-84是:图形处理篇85-100是:数值分析篇实例1:三角函数曲线(1)function shili01h0=figur ...

  8. python的交互式解释器_python3.4.1解释器python交互式图形编程实例(三)

    本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...

  9. c语言编程经典实例利润,C语言经典编程实例100题解答

    C语言经典编程实例100题 答案+答案 C语言经典编程实例100题C语言程序实例100个(一) [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少, 1.程序 ...

最新文章

  1. php模板引擎哪个好,php模板引擎原理是什么?
  2. Docker安装配置Nginx
  3. 【杂谈】面向新手的深度学习开源框架指导手册与GitHub项目,欢迎加入我们的开源团队...
  4. SAP 电商云 Spartacus UI feature level directive 的工作原理
  5. Android SurfaceView动画(二)
  6. 计算机人工智能识别系统应用领域,人工智能论文3000字以上
  7. 友盟分享 qq没有存储权限 分享失败
  8. TD回撤/斐波那契回撤
  9. 项目启动报错:Caused by: com.atomikos.recovery.LogException: Log already in use? tmlog in ./
  10. Linux服务器安装云锁
  11. ArcGIS Runtime for Android天地图底图及TPK数据包放大后数据不显示问题
  12. 手机卫星定位系统_如何判断自己的手机是否支持北斗卫星定位功能,如何使用?...
  13. 【nowcoder 110246】Dima and Salad
  14. 获取指定日期的月份的第几个星期几是几号
  15. 赵小楼《天道》《遥远的救世主》深度解析(117)分离已有的各种相,得你想要的结果
  16. Dynamo 如何生成管道
  17. 个人成长【提升认知销量秘籍】
  18. 综合评价与决策方法01——理想解法
  19. ​大数据和云计算技术周报(第37期) - 云+社区 - 腾讯云
  20. 苹果研发卫星技术,Facebook自建操作系统,Uber推空中出租车 | 科技前沿周报

热门文章

  1. C++语言程序设计全真模拟试卷,2017年全国计算机二级C++语言程序设计考试试题...
  2. 实时性之硬实时与软实时
  3. 腾讯和华为领导的中国区块链联盟将推出无币区块链
  4. 百度开放云·智能图像云解决方案
  5. 学计算机要什么基础,什么人适合学计算机
  6. esp32 arduino ble 有时扫描结果不完全的解决方案
  7. Android blueZ HCI(二):hcitool hcidump常用方法
  8. 【react】【antd】一个既可以自定义输入又可以下拉选择的输入框
  9. UDP打洞(UDP Hole Punching)原理
  10. 计算机编程飞船,信息学奥赛题库- 太空飞船