matlab演示银河系转动动画

代码

function GalaxyRotationSimulation()
    % 参数设置
    num_stars = 1000; % 恒星数量
    galaxy_radius = 1; % 银河系半径
    rotation_speed = 0.05; % 旋转速度

    % 生成银河系中的恒星分布
    theta = 2 * pi * rand(num_stars, 1); % 角度
    r = galaxy_radius * sqrt(rand(num_stars, 1)); % 半径
    z = 0.1 * (rand(num_stars, 1) - 0.5); % 添加一些z轴方向的随机性
    x = r .* cos(theta);
    y = r .* sin(theta);

    % 初始化图形
    figure;
    h = scatter3(x, y, z, 1, 'w', 'filled');
    axis equal;
    axis([-1.5 1.5 -1.5 1.5 -0.5 0.5]);
    set(gca, 'Color', 'k');
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
    title('Galaxy Rotation Simulation');

    % 旋转动画
    dt = 0.01; % 时间步长
    for t = 1:1000
        theta = theta + rotation_speed * dt; % 更新角度
        x = r .* cos(theta); % 计算新的x坐标
        y = r .* sin(theta); % 计算新的y坐标

        set(h, 'XData', x, 'YData', y, 'ZData', z); % 更新图形数据
        drawnow; % 刷新图形
        pause(dt); % 暂停以创建动画效果
    end
end

说明

参数设置:
num_stars: 设置银河系中恒星的数量。
galaxy_radius: 设置银河系的半径。
rotation_speed: 设置银河系旋转的速度。

生成银河系中的恒星分布:
使用极坐标生成恒星的随机分布。
将极坐标转换为直角坐标,并添加一些z轴方向的随机性以模拟银河系的厚度。

初始化图形:
使用scatter3函数绘制三维散点图。
设置坐标轴范围和背景颜色。

旋转动画:
定义时间步长dt。
在循环中更新恒星的位置,以模拟银河系的旋转。
使用drawnow函数更新图形

效果

在这里插入图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值