当前位置:   article > 正文

用MATLAB绘制地球围绕太远运动而月球围绕地球运动_根据地球质量公转轨道月球质量计算月球轨道matlab

根据地球质量公转轨道月球质量计算月球轨道matlab

绘制

MATLAB代码:

  1. clc;close all;clear all;warning off;%清除变量
  2. rand('seed', 100);
  3. randn('seed', 100);
  4. format long g;
  5. % 初始化参数
  6. num_frames = 1000; % 动画帧数
  7. G=200;
  8. dt = 0.01; % 时间步长
  9. % 设置太阳、地球和月球的初始位置和半径
  10. sun_position = [0, 0];
  11. earth_radius = 1;
  12. moon_radius = 0.3;
  13. earth_orbit_radius = 2;
  14. moon_orbit_radius = 0.5; % 相对于地球的轨道半径
  15. % 地球和月球的初始角度(相对于太阳)
  16. earth_angle = 0;
  17. moon_angle = pi/4; % 为了看清嵌套效果,可以给月球一个初始角度
  18. % 绘制太阳
  19. figure('Position',[100 100 500 500]);
  20. axis equal;
  21. xlim([-earth_orbit_radius*2 earth_orbit_radius*2]);
  22. ylim([-earth_orbit_radius*2 earth_orbit_radius*2]);
  23. hold on;
  24. plot(sun_position(1), sun_position(2), 'y.','markersize',150); % 绘制太阳
  25. % 绘制动画
  26. for k = 1:num_frames
  27. % 更新地球和月球的角度
  28. earth_angle = earth_angle + 2 * pi * dt; % 假设地球每年转一圈
  29. moon_angle = moon_angle + 2 * pi * 13 * dt; % 假设月球每月转一圈(简化版,实际上更复杂)
  30. % 地球的位置
  31. earth_position = sun_position + [earth_orbit_radius * cos(earth_angle), earth_orbit_radius * sin(earth_angle)];
  32. % 月球的位置(相对于地球)
  33. moon_relative_position = [moon_orbit_radius * cos(moon_angle), moon_orbit_radius * sin(moon_angle)];
  34. moon_position = earth_position + moon_relative_position;
  35. % 绘制地球和月球
  36. plot(earth_position(1), earth_position(2), 'b.','markersize',30); % 绘制地球
  37. plot(moon_position(1), moon_position(2), 'k.', 'markersize',10); % 绘制月球
  38. % 绘制地球和月球的轨道(可选)
  39. t = linspace(0, 2*pi, G);
  40. earth_orbit = repmat(sun_position,1,G) + [earth_orbit_radius * cos(t), earth_orbit_radius * sin(t)];
  41. plot(earth_orbit(:,1), earth_orbit(:,2), 'b-');
  42. moon_orbit = repmat(earth_position,1,G) + [moon_orbit_radius * cos(t + moon_angle - pi/2), moon_orbit_radius * sin(t + moon_angle - pi/2)]; % 偏移pi/2以从地球开始绘制
  43. plot(moon_orbit(:,1), moon_orbit(:,2), 'y-');
  44. % 更新图形
  45. drawnow;
  46. % 控制动画速度
  47. pause(0.1);
  48. % 清除旧的月球和地球位置(可选,以便只显示当前位置)
  49. % cla;
  50. hold on;
  51. plot(sun_position(1), sun_position(2), 'y.','markersize',150); % 绘制太阳
  52. end
  53. % 动画结束,保持图形窗口打开
  54. hold off;

程序结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/728064
推荐阅读
相关标签
  

闽ICP备14008679号