代码如下:

close all;
clear;r_sun = 10;
r_earth = 5;
r_moon = 2;
angularVel_earth = 0.1;  % rad/s
angularVel_moon = 0.5;d_earth_sun = r_sun + r_earth + 60;  % distance between sun center and earth center
d_earth_moon = r_earth + r_moon + 20;figure(1);
hold on;
grid off;
rangemax = 300;
axis([-rangemax/2, rangemax/2, -rangemax/2, rangemax/2]);
axis square;h_sun   = fill(NaN, NaN, 'r', 'FaceAlpha', 1,   'EdgeColor', 'k', 'LineWidth', 0.5);
h_earth = fill(NaN, NaN, 'b', 'FaceAlpha', 0.5, 'EdgeColor', 'k', 'LineWidth', 0.5);
h_moon  = fill(NaN, NaN, 'y', 'FaceAlpha', 1,   'EdgeColor', 'k', 'LineWidth', 0.5);h_text_sun   = text(r_sun + 2, 0, 'sun',   'FontSize', 7, 'HorizontalAlignment', 'left');
h_text_earth = text(0,         0, 'earth', 'FontSize', 7, 'HorizontalAlignment', 'left');
h_text_moon  = text(0,         0, 'moon',  'FontSize', 7, 'HorizontalAlignment', 'left');alpha = linspace(0, 2*pi, 100);
x_sun = r_sun * cos(alpha);
y_sun = r_sun * sin(alpha);
set(h_sun, 'XData', x_sun, 'YData', y_sun);t = linspace(0, 63, 120);
pic_num = 1;
for i = 1:1:length(t)angular_earth = t(i) * angularVel_earth;  % earth angular pos relative to sunangular_moon  = t(i) * angularVel_moon;  % moon angular pos relative to earthx_earthCenter = d_earth_sun * cos(angular_earth);y_earthCenter = d_earth_sun * sin(angular_earth);x_earth = r_earth * cos(alpha) + x_earthCenter;y_earth = r_earth * sin(alpha) + y_earthCenter;x_moonCenter = x_earthCenter + d_earth_moon * cos(angular_moon);y_moonCenter = y_earthCenter + d_earth_moon * sin(angular_moon);x_moon = r_moon * cos(alpha) + x_moonCenter;y_moon = r_moon * sin(alpha) + y_moonCenter;set(h_earth, 'XData', x_earth, 'YData', y_earth);set(h_moon, 'XData', x_moon, 'YData', y_moon);set(h_text_earth, 'Position', [x_earthCenter + r_earth + 2, y_earthCenter, 0]);set(h_text_moon, 'Position', [x_moonCenter + r_moon + 2, y_moonCenter, 0]);drawnow;pause(0.1);% 将动画保存成gif图片F = getframe(gcf);I = frame2im(F);[I,map] = rgb2ind(I,256);if pic_num == 1imwrite(I,map,'matlab动画-SunEarthMoon.gif','gif','Loopcount',inf,'DelayTime',0.1);elseimwrite(I,map,'matlab动画-SunEarthMoon.gif','gif','WriteMode','append','DelayTime',0.1);end pic_num = pic_num + 1;
end

效果如下:

这份代码参考了几篇网上的文章,但是已经忘记了来源地址,此处就不注明参考的文章了...

代码块的语言选择里竟然没有matlab...?

用matlab实现“太阳-地球-月亮运行示意图”动画相关推荐

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

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

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

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

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

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

  4. javascript-动画animation自己学习做太阳地球和月球运转动画;

    首先声明一点:自己学习的程序来源于: https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Basic_animat ...

  5. webgl 绘制太阳 地球 月亮

    目录 1.开发环境 2.内容说明 1.计算球体的坐标和纹理 2.求顶点索引 3.数据加载到缓存中 4.绘制球体 5.其他 3.运行结果及代码下载 1.开发环境 浏览器 : 火狐 firefox(配置参 ...

  6. CSS太阳地球月亮转圈圈loading

    一个css例子 css太阳 月亮 地球转转转 知识点总结: justify-content: center; justify-content 用于设置或检索弹性盒子元 素在主轴(横轴)方向上的对齐方式 ...

  7. three.js旋转,材质,灯光使用 —— 太阳地球月亮运动

    import * as THREE from 'three' //引入控制器 import { OrbitControls } from 'three/examples/jsm/controls/Or ...

  8. Unity学生作业:太阳地球月亮自转和公转

    1.第一步 打开Unity. 2.第二步 在场景中创建3个Sphere球体并分别命名为Moon, Sun和Earth. 在命名完之后调整3个球的大小和位置,并贴上贴图.将Moon作为Earth的子物体 ...

  9. OpenGl太阳地球月亮运动系统

    在讲解这个运动系统,首先我们的来讲解OpenGl里有关几个图形变换的知识,这里就以球为例,我们需要知道将球平移,旋转的2个知识.因为系统必须用到平移和旋转. 1 平移变换: glTranslatef( ...

  10. 纯css3制作的太阳地球月亮效果

    上课无聊看到的,虽然有很多兼容性问题,但先保存吧,原文链接如下: http://buluo.qq.com/p/detail.html?bid=16531&pid=9399270-1461480 ...

最新文章

  1. django前后端结合_一图看懂Django和DRF
  2. 微信公众号开发小记(二)--服务器验证
  3. 微信小程序之生成图片保存到相册
  4. python服务器稳定性,一种基于Python服务器稳定性测试的方法技术
  5. 结构体实验报告总结_解读!清华、谷歌等10篇强化学习论文总结
  6. linux编译ffmepg,在Ubuntu下编译FFmpeg
  7. 五个问题,三大策略,手把手教你定制App性能监控方案
  8. 安卓应用安全指南 5.2.2 权限和保护级别 规则书
  9. python灰度图cv2到plt变颜色_python中plt.imshow与cv2.imshow显示颜色问题
  10. python 模拟键盘_Python模拟键盘输入和鼠标操作
  11. 用例子来学习正则表达式
  12. 【VS】Installer Projects生成英文安装包
  13. java面试官如何面试别人
  14. 深圳大学现代通信技术测试题
  15. 关于photoshop软件的177个小技巧
  16. 网络空间安全论文笔记2——漏洞
  17. Ai智能语音机器人系统搭建和私有云部署
  18. 使用Javapoet生成代码
  19. 苹果发布新款iPad Pro!就换了个「芯」,转换器骚操作笑翻网友
  20. 7723java版_刺马_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]

热门文章

  1. php生成器处理数据问题,《PHP经典实例》笔记数组篇 - 4.24 使用生成器高效迭代处理大型数据集...
  2. Minecraft 1.16.5模组开发(三十三) 自定义3D方块
  3. 传奇世界3D手游电脑版使用教程:无需安卓模拟器,tcgames完美适配
  4. 那些年陪伴我们搬砖的心灵的音乐
  5. 自制太阳能手机充电器
  6. 联想小新固态硬盘安装Win7或者win10过程
  7. 小红书关键词搜索商品API接口(商品列表数据接口)
  8. 基于NanoPi3(三星S5P6818)的kernel移植(二)
  9. Codeforces 1016C Vasya And The Mushrooms(动态规划)
  10. 服务器系统事件id1001,win10系统玩游戏出现蓝屏事件ID1001的解决方法