// OpenGL_Prac.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <gl/glut.h> #include <math.h> #define C_PI 3.14159265358979 GLdouble distanceSunToEarth = 70;//日地距离 GLdouble distanceMoonToEarth = 35;//月地距离 GLdouble gzAngleEarth = 0;//地球绕太阳的公转角度 GLdouble gzAngleMoon = 0;//月球绕地球的公转角度 GLsizei zzAngle = 0;//自转角度 int earthX = distanceSunToEarth; int earthY = 0; int earthZ = 0; int moonX = distanceSunToEarth + distanceMoonToEarth; int moonY = 0; int moonZ = 0; void drawPlanet(int r, GLdouble x0, GLdouble y0, GLdouble z0 ) { glMatrixMode(GL_MODELVIEW); glPushMatrix(); glRotatef(70.0 , 1.0, 0.0, 0.0); glTranslatef(x0, y0, z0); glRotatef(zzAngle, 0.0, 0.0, 1.0); glutWireSphere(r, 30, 10); glPopMatrix(); } void init() { glClearColor(0.0, 0.0 , 0.0, 0.0); glShadeModel(GL_FLAT); } void reshape(int w, int h) { glViewport(0,0,(GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (GLfloat)w/(GLfloat)h, 0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, distanceSunToEarth + 100, 0.0, 0.0, 0.0, 0.0, 1.0, distanceSunToEarth + 100); } void keyboard(unsigned char key, int x, int y) { switch(key) { case 'r': gzAngleEarth += C_PI/180; earthX = (GLdouble)distanceSunToEarth * cos(gzAngleEarth); earthY = distanceSunToEarth * sin(gzAngleEarth); zzAngle = (zzAngle + 10)%360; gzAngleMoon += C_PI/45; moonX = earthX + distanceMoonToEarth * cos(gzAngleMoon); moonY = earthY + distanceMoonToEarth * sin(gzAngleMoon); glutPostRedisplay(); break; case 's': glutPostRedisplay(); break; } } void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); //draw sun drawPlanet(30, 0, 0, 0); //draw earth drawPlanet(20, earthX, earthY, earthZ); //draw moon drawPlanet(10, moonX, moonY, moonZ); glutSwapBuffers(); } int _tmain(int argc, _TCHAR* argv[]) { glutInit(&argc, (char**)argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(1024, 768); glutInitWindowPosition(0, 0); glutCreateWindow("Nehe 01"); init(); glutDisplayFunc(display); glutKeyboardFunc(keyboard); //glutTimerFunc(100, timer, ); glutReshapeFunc(reshape); glutMainLoop(); return 0; }

Just For Test.

OpenGL模拟太阳、地球、月球公转自转相关推荐

  1. matlab地球公转,Unity模拟太阳地球月球公转自转

    1. 打开Unity编辑器,创建三个sphere,依次重命名为Sun,Earth,Moon.将三个球体大小比例控制在5:3:1,并适当调整位置. 2. 分别为三个小球附上材质 3. 新建脚本文件,重命 ...

  2. Canvas模拟太阳地球月球的运动过程

    先看效果图 代码 package com.test.paintdemo.pathrelate;import android.content.Context; import android.graphi ...

  3. opengl的配置和太阳-地球-月球演示

    详细配置过程请点击链接 https://www.cnblogs.com/flylinmu/p/7823019.html 下面介绍opengl实例,太阳-地球-月球演示 建立一个控制台程序 sun.cp ...

  4. Python模拟太阳-地球-月亮运动模型

    作者 | Charles,cv方向在读研究生.[Charles 的皮卡丘]专注于分享有趣好玩的Python小项目(AI.爬虫等等). 来源 | Charles 的皮卡丘 编辑 | Jane [导语]春 ...

  5. Python模拟登录,matplotlib模块,Python模拟太阳-地球-月亮运动模型

    前言 利用python模拟太阳-地球-月亮运动模型. 让我们愉快地开始吧~ 开发工具 **Python版本:**3.6.4 相关模块: pygame模块: matplotlib模块: numpy模块: ...

  6. html5之太阳地球月球,使用html5画出地球月球和太阳之间的环绕关系

    本文主要是描述了使用html5画出地球月球和太阳之间的环绕关系,其实他们比较简单,主要是通过旋转来控制各个之间的环绕关系!~ 输入代码,里面有注释: ------------------------- ...

  7. opengl: 太阳地球和月亮

    // Solar.c // OpenGL SuperBible // Demonstrates OpenGL nested coordinate transformations // and pers ...

  8. opengl模拟太阳效果

    参考: http://www.cnblogs.com/tkgamegroup/p/4198811.html 我决定开个新坑了.以后每周五更新. 这是GLSL的学习周记! GLSL就是OPENGL SH ...

  9. python太阳代码_Python模拟太阳

    作者 | Charles,cv方向在读研究生.[Charles 的皮卡丘]专注于分享有趣好玩的Python小项目(AI.爬虫等等). 来源 |微信公众号" Charles 的皮卡丘" ...

最新文章

  1. 关于struts1的配置
  2. pytorch加载预训练模型_Pytorch-Transformers 1.0发布,支持六个预训练框架,含27个预训练模型...
  3. 企业网络推广——企业网络推广专员如何预估网站优化流量的增长?
  4. android 取色器_老板夸我PPT配色高级,以为我学过设计,其实我都是从Logo取色
  5. 【SQL-分组合并字符串】把相同分组的某个字段合并为同一个字符串(使用函数)...
  6. [zz]为 Lua 绑定 C/C++ 对象
  7. python基础技巧总结(三)
  8. 富文本编辑器 CKeditor
  9. oracle jinitiator版本太旧,Windows7系统运行java软件提示Oracle JInitiator版本太旧怎么办...
  10. 自动服务器批量装机,PXE高效批量网络装机
  11. 华为笔试题 2022.3.30
  12. 自然资源部标准地图底图转矢量Shapefile并配准
  13. UE4 虚幻引擎,3D数学(一),3D坐标系,2D坐标系
  14. 常见的测试用例设计方法8---正交试验法
  15. Transformer模型详解
  16. IDC:未来中国MES市场仍将快速发展分化
  17. 钉钉ppt放映显示备注_PPT的备注怎么用,放映PPT时如何显示备注 来看看吧
  18. 算法之地推算法(逆推法)
  19. 从0到1 | 转行如何开启机器学习之旅?
  20. 函数笔记(常数函数、幂函数、指数函数、对数函数、三角函数、反三角函数、复合函数)

热门文章

  1. springboot毕设项目高校本科学生综评系统00q0u(java+VUE+Mybatis+Maven+Mysql)
  2. 合众达电子SEED_VPM642开发板调试及应用(技术小结)
  3. 献给你,我亲爱的人儿
  4. 移动支付市场前景如何?让我们用数据讲话。。。
  5. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:02 语料库和数据集
  6. 领智.NET网站管理系统 LeadWit CMS.NET 1.0.1
  7. 【新】手把手教你申请计算机软件著作权——新系统填写申请表
  8. 洛谷 P2698 [USACO12MAR]花盆Flowerpot(抄)
  9. java IO(二)—— 字符输入输出流
  10. 取模和求余在matlab中计算