当前位置: 首页> 教育> 培训 > matlab演示地月碰撞

matlab演示地月碰撞

时间:2025/7/12 14:47:53来源:https://blog.csdn.net/u013531166/article/details/139575029 浏览次数:1次

代码

function EarthMoonCollisionSimulation()% 初始化参数earth_radius = 6371; % 地球半径,单位:公里moon_radius = 1737;  % 月球半径,单位:公里distance = 384400;   % 地月距离,单位:公里collision_time = 50; % 碰撞所需时间,单位:秒time_steps = 100;    % 时间步数% 初始化位置earth_position = [0, 0];moon_position = [distance, 0];% 初始化图形figure;hold on;axis equal;xlim([-distance, distance]);ylim([-distance/2, distance/2]);xlabel('X (km)');ylabel('Y (km)');title('Earth-Moon Collision Simulation');% 画地球和月球earth = rectangle('Position', [earth_position - earth_radius, 2*earth_radius, 2*earth_radius], 'Curvature', [1, 1], 'FaceColor', 'b');moon = rectangle('Position', [moon_position - moon_radius, 2*moon_radius, 2*moon_radius], 'Curvature', [1, 1], 'FaceColor', 'k');% 模拟运动for t = 1:time_steps% 计算当前时间的位移current_time = t / time_steps * collision_time;displacement = (distance / collision_time) * current_time;% 更新月球位置new_moon_position = [distance - displacement, 0];% 更新图形set(moon, 'Position', [new_moon_position - moon_radius, 2*moon_radius, 2*moon_radius]);% 暂停以创建动画效果pause(0.05);end% 显示碰撞结束title('Collision Occurred');hold off;
end

说明

初始化参数:设置地球和月球的半径、地月距离、碰撞所需时间和时间步数。
初始化位置:设置地球和月球的初始位置。
初始化图形:创建一个图形窗口,并设置坐标轴和标题。
画地球和月球:使用rectangle函数画出地球和月球。
模拟运动:通过循环更新月球的位置,模拟地月碰撞的过程。
更新图形:在每个时间步中更新月球的位置,并暂停一段时间以创建动画效果。
显示碰撞结束:在碰撞结束时,更新标题以显示碰撞已发生

效果

在这里插入图片描述

关键字:matlab演示地月碰撞

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: