#include

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 width, int height)

{

if (0==height)

{

height = 1;

}

glViewport(0,0,width,height);//设置视区尺寸

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

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

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

gluPerspective(45.0f,(float)width/(float)height,1.0f,1000.0f);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void Display(void)

{

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

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

//指定当前操作模型师徒矩阵堆栈

glMatrixMode(GL_MODELVIEW);

//重置模型视图矩阵

glLoadIdentity();

//图形沿Z轴负向移动

glTranslatef(0.0f,0.0f,-500.0f);

//绘制太阳

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(200,100);//窗口位置

//窗口尺寸

glutInitWindowSize(600,460);

glutCreateWindow("基于Opengl的太阳系动画");

glutReshapeFunc(Reshape);

glutDisplayFunc(Display);

glutIdleFunc(&myIdle);

Init();

glutMainLoop();//

return 0;

}

运行效果:

matlab太阳系,基于Opengl的太阳系动画实现相关推荐

  1. 【转】OpenGL实现太阳系模型

    转自:http://www.juwends.com/tech/opengl/opengl-solar-system.html OpenGL是一个非常强大的图形引擎.传说当下最流行的图形引擎有两套,其中 ...

  2. OpenGL实现太阳系模型 —— Juwend

    OpenGL实现太阳系模型 发表于 2012 年 12 月 30 日 由 Juwend OpenGL是一个非常强大的图形引擎.传说当下最流行的图形引擎有两套,其中之一就是Windows平台上最常用的D ...

  3. OpenGL画太阳系

    分享一个OpenGL画太阳系的代码. #include <GL/glut.h> #include <GL/SOIL.h> #include <stdio.h> #i ...

  4. 基于opengl的3d漫游游戏 - 古堡危机之丧尸围城

    作品名称: <古堡危机> 小组团队名称: 拾荒三人组 日期:2018年12月 目录 第一章 简介 3 前言 3 项目的创意设想.游戏类型.实现的功能.项目意义 3 Opengl 4 作品代 ...

  5. 基于OpenGL的Android系统视频转换功能实现

          第1章OpenGL ES 3D图形编程首先OpenGL.OpenGL的英文全称是OpenGL Graphics Library,中午名称是开发式图形库.OpenGL为程序开发人员定义了一个 ...

  6. 转-基于OpenGL的3D天空仿真

    在进行3D场景渲染时,天空是必不可少的因素.对于3D天空的模拟在视景仿真系统.计算机游戏.三维动画中有着广泛的应用.但是,目前对于天空的仿真还存在很多不足,一些模拟方法中存在实现复杂.计算耗时.图像分 ...

  7. 基于OpenGL的3D天空仿真

    From:http://www.c-cnc.com/dz/news/news.asp?id=18622 在进行3D场景渲染时,天空是必不可少的因素.对于3D天空的模拟在视景仿真系统.计算机游戏.三维动 ...

  8. 见缝插针小游戏 (基于OPENGL)|计算机图形学

    见缝插针小游戏 (基于OPENGL)|计算机图形学 1.前言 最近开始学习图形学,试着用glut做了一个小游戏,也是之前见得蛮多的小游戏叫做见缝插针,基本上功能都实现了,可能还有些不足,之后有机会再改 ...

  9. OpenGL实现物体动画和视频特效(视频水印、美白、滤镜等)

    1.OpenGL实现视频的水印.滤镜?OpenGL实现视频的剪裁.旋转? 2.2D/3D物体的 旋转,平移,缩放? OpenGL图片滤镜与视频滤镜? 矩阵(Matrix)是一个按照长方阵列排列的复数或 ...

最新文章

  1. python下载文件保存_python 3.3 下载固定链接文件并保存的方法
  2. Python3.7环境配置
  3. .ini文件中的PHP 5.6 error_reporting设置不起作用
  4. Twin Delayed DDPG(TD3)-强化学习算法
  5. Django —— 模型层 —— QuerySet —— QuerySet方法参考
  6. Nodejs学习笔记(六)——Mysql模块
  7. 电脑微信扫一扫在哪_怎么进入和管理企业微信的后台?
  8. vue $emit子组件传出多个参数,如何在父组件中在接收所有参数的同时添加自定义参数...
  9. iOS11 tableview左滑到底禁用删除
  10. .net core 介绍好文章
  11. jdk从1.8降到1.7的办法
  12. uniapp使用阿里icon详细步骤
  13. 卡巴斯基的离线更新以及病毒库备份
  14. Maven添加junit4依赖
  15. 系统环境变量 注册表键值
  16. 数据库系统的核心:数据模型
  17. 用HEdit解决因修改用户文件夹名在打开pip时遇到Fatal error in launcher: Unable to create process using 的问题
  18. Second season twentieth episode,poor Phoebe
  19. 适合穷人挣钱最快的方法
  20. revit学习-视图

热门文章

  1. 对日外包开发_详细设计
  2. 苹果推新版Mac OS X操作系统 抢占微软先机
  3. 智慧短信-情景卡片短信是如何实现的
  4. 城市智能停车系统解决方案介绍
  5. Machine Learning Hands-On for Developers and Technical Professionals 免积分下载
  6. java-net-php-python-15体育用品网上销售系统计算机毕业设计程序
  7. Foc无传感器带载启动代码方案,高频注入,电流模型估算,滑膜 无感算法,C需要,开源,不是官方库。重载启动,效果很好。
  8. 关于新版NZT7/8的安装方法和更新说明
  9. php编程三阶魔方,“老师!您辛苦啦!”2088块三阶魔方拼成对老师的爱
  10. 淘宝推荐、视频搜索背后的检索技术竟是它!深度揭秘达摩院向量检索引擎Proxima