#include <GL/glut.h>
#include <stdio.h>
#include <time.h> // 太阳、地球和月亮
// 假设每个月都是12天
// 一年12个月,共是360天
static int day = 200; // day的变化:从0到359 double CalFrequency()
{ static int count; static double save; static clock_t last, current; double timegap; ++count; if( count <= 50 ) return save; count = 0; last = current; current = clock(); timegap = (current-last)/(double)CLK_TCK; save = 50.0/timegap; return save;
} void myDisplay(void)
{ double FPS = CalFrequency(); printf("FPS = %f\n", FPS); glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(75, 1, 1, 400000000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1); // 绘制红色的“太阳” glColor3f(1.0f, 0.0f, 0.0f); glutSolidSphere(69600000, 20, 20); // 绘制蓝色的“地球” glColor3f(0.0f, 0.0f, 1.0f); glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f); glTranslatef(150000000, 0.0f, 0.0f); glutSolidSphere(15945000, 20, 20); // 绘制黄色的“月亮” glColor3f(1.0f, 1.0f, 0.0f); glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f); glTranslatef(38000000, 0.0f, 0.0f); glutSolidSphere(4345000, 20, 20); glFlush(); glutSwapBuffers();
} void myIdle(void)
{ ++day; if( day >= 360 ) day = 0; myDisplay();
} int main(int argc, char *argv[])
{ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow("太阳,地球和月亮"); glutDisplayFunc(&myDisplay); glutIdleFunc(&myIdle); glutMainLoop(); return 0;
}

[OpenGL]一个简单的地球月亮太阳运转模型相关推荐

  1. 程序基于MATLAB yalmip 开发,做了一个简单的微网优化调度模型,模型中含有蓄电池储能、风电、光伏等发电单元,程序运行结果良好

    微网 优化调度 机组组合 YALMIP cplex 编程语言:MATLAB平台 主题:基于YALMIP 的微网优化调度模型 内容简介:程序基于MATLAB yalmip 开发,做了一个简单的微网优化调 ...

  2. 3.2 实战项目二(手工分析错误、错误标签及其修正、快速地构建一个简单的系统(快速原型模型)、训练集与验证集-来源不一致的情况(异源问题)、迁移学习、多任务学习、端到端学习)

    手工分析错误 手工分析错误的大多数是什么 猫猫识别,准确率90%,想提升,就继续猛加材料,猛调优?     --应该先做错误分析,再调优! 把识别出错的100张拿出来, 如果发现50%是"把 ...

  3. 使用UE4创建一个简单真实的地球(二)

    使用UE4创建一个简单真实的地球 如何创建一个简单的地球材质. BaseColor 基础颜色 排除由反射引起的杂光之后物体的颜色.主要用来模拟地球的真实表面. 白昼 地图与云图叠加,即图像的叠加运算( ...

  4. 利用WCF的callback机制开发一个简单的多人游戏模型

    本文介绍了如何利用WCF和callback机制开发一个简单的多人在线游戏模型. 运行过程如下: 当game service 启动之后,若干个客户端便会自动连接到服务器.当某个客户端点击join gam ...

  5. keras安装_代码详解:构建一个简单的Keras+深度学习REST API

    在本教程中,我们将介绍一个简单的方法来获取Keras模型并将其部署为REST API.本文所介绍的示例将作为你构建自己的深度学习API的模板/起点--你可以扩展代码,根据API端点的可伸缩性和稳定性对 ...

  6. python电影推荐系统 github_GitHub - Holy-Shine/movie_recommend_system: 一个简单的电影推荐系统...

    更新日志 2018-6-17 更新推荐方法接口 一个简单的电影推荐系统. 目录 模型概览:模型结构 代码构成:整体文件结构 模型实现:模型实现细节 快速开始:简单使用教程 1. Glimpse 模型移 ...

  7. TensorFlow笔记(3)——利用TensorFlow和MNIST数据集训练一个最简单的手写数字识别模型...

    前言 当我们开始学习编程的时候,第一件事往往是学习打印"Hello World".就好比编程入门有Hello World,机器学习入门有MNIST. MNIST是一个入门级的计算机 ...

  8. 简单的识别猫狗的模型

    从Google下载猫狗训练集与验证集的zip压缩包,提取到项目目录下.这个文件夹里面包含训练(train)和验证(validation)数据集的子目录,而且每个子目录都包含猫和狗的子目录. 可以直接在 ...

  9. openGl编程实现一个太阳地球月亮的一个简单运动系统

    一. 项目目的 使用openGl编程实现一个太阳地球月亮的一个简单运动系统,要求实现三维转动.点光源变化.纹理映射及阴影等效果 二. 任务实现 \1. 满足三者实际大小/距离的比例关系: \2. 满足 ...

最新文章

  1. git获取指定release版本代码
  2. 波士顿动力机器人齐秀舞姿,这是要成团出道?
  3. Chino的成绩(chino的公开赛T3)
  4. APUE读书笔记-第14章-高级I/O
  5. 数据挖掘的最佳学习清单
  6. 2020年有寓意的领证日期_2020年有意义谐音的领证日子 容易记住的领证日期
  7. bsc是指什么_为什么KPI令人厌恶?中小企业不要乱用KPI!
  8. 插值,多行字符串,匿名函数
  9. 演练 可以飞可以喷火的人 java
  10. 【opencv学习】图像特征检测
  11. [javaSE] 集合工具类(Collections-sort)
  12. 解决ORA-27103:internal error错误一例
  13. FZCCHJW--GB1-0-GBpc-EUC-H:在系统中未找到字体;已替换缺少的字体。
  14. aliez歌词_请问aLiez完整版中文 +罗马音歌词
  15. 差异基因p为0_RNAseq数据分析文献22差异基因与临床数据相关性分析
  16. c语言 gets getc,6.16 C语言,getchar gets getc有什么区别 分别是表示什么的
  17. 【虚拟机里测试Windows PE的方法】
  18. 18项政策奖励助力武汉加快区域金融中心建设,申报奖励以及申报流程汇总
  19. hping3的编译和安装
  20. ug许可证安装的java卸载不了_UG软件和NX许可证在系统控制面板里卸载不掉怎么办?可以直接删除注册表吗?...

热门文章

  1. AC自动机加强版 uva 1449 - Dominating Patterns
  2. Java面向对象之多态(来源于身边的案例)
  3. 建造者模式--师父让我来炼丹
  4. 数据分析老司机:原来你是这样的A/B测试
  5. C语言:输入某年某月某日,判断这一天是这一年的第几天? 以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
  6. 我受不了同学们的求职简历了,大家的简历应该这么写-2022版
  7. opencv 等比例缩放图像(图像尺寸不变)
  8. ubuntu 添加sudo用户
  9. 使用python教程进行矩分布的概率生成函数
  10. 玩转金山文档 3分钟让你的文档智能化