首页 > 其他分享 >Matlab·学习 | (一)太阳系模型

Matlab·学习 | (一)太阳系模型

时间:2022-12-26 22:36:10浏览次数:66  
标签:10 r0 绘制 模型 Matlab pi drawxinggui 公转 太阳系

目录

前言:

效果图如下:

Matlab代码:

1.主文件:

2.相对公转绘制:

3.移动轨迹绘制:

4.个体主体绘制

总结:


前言:

个人学习内容分享:太阳系模型:初学matlab的绘图学习案例。

想要得到更加完美的星球信息进行更改:推荐奇点天文实验室获取更加真实的数据。


效果图如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiN5Y-Y5Zug5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16​编辑


Matlab代码:

1.主调用文件:

clear;clc
%行星级半径在20以上,卫星在20以内
title='taiyangxi';
text='taiyangxi';
for t=0:3600
    %(球心坐标x,y,z,半径,自转效果)
    drawball(0,0,0,40,t);
    hold on
    %(公转半径,公转圆心x坐标,公转圆心y坐标,相对纵向空间位置,自转半径,自转效果,公转速度)
    %水星
    Mercury=drawxinggui(50,0,0,0,1,t,10/58);
    %金星 
    Venus=drawxinggui(100,0,0,0,2.3,t,10/243);
    %地球,月亮  
    Earth=drawxinggui(150,0,0,0,2.5,t,10);
    moor.x=Earth(1);
    moor.y=Earth(2);
    drawxinggui(25,moor.x,moor.y,0,0.8,t,10)
    %火星
    Mars=drawxinggui(200,0,0,0,1.5,t,10);
    %土星
    Saturn=drawxinggui(375,0,0,0,25,t,10/0.5);
    %天王星
    Uranus=drawxinggui(500,0,0,0,11,t,10/0.7);
    %海王星
    Neptune=drawxinggui(1000,0,0,0,10,t,10/0.8);
    %木星
    Jupiter=drawxinggui(300,0,0,0,33,t,10/0.4);
    axis equal
    pause(0.04)
    hold off
end

2.相对公转绘制:

同时调用绘制星轨和行星的函数,只不过这里公转的圆心发生了改变。

function w1=drawxinggui(R,x,y,z,r,c,v)
x1=R*cos(c/180*pi*v)+x;
y1=R*sin((c/180)*pi*v)+y;
w1=[x1,y1];
drawcircle(x,y,R)
drawball(x1,y1,z,r,c)

3.移动轨迹绘制:

绘制星轨:其实就是星球运动的轨迹

function drawcircle(x0,y0,r0)
c=linspace(0,2*pi,100);
X=r0*cos(c)+x0;
Y=r0*sin(c)+y0;
plot(X,Y)
axis equal

4.个体主体绘制:

绘制一个自转的星球

function drawball(x0,y0,z0,r0,c)
a=linspace(0,pi,20);
b=linspace(0,2*pi,40)+c;
[A,B]=meshgrid(a,b);
X=r0*sin(A).*cos(B)+x0;
Y=r0*sin(A).*sin(B)+y0;
Z=r0*cos(A)+z0;
mesh(X,Y,Z)
end

总结:

这是一个非常非常基础的一个星系运行模型,然后真实星球大小比例绘制出的图案,属实不美观,所以只能进行简化处理,然后行星运行的轨迹其实不完全是圆形,所以为了追求更加贴近真实,其实可以赋予更加准确的运动轨迹的相关参数,还有行星的公转轨迹也不再同一个平面上。以及动态的美观,行星轨迹可以改为逐渐生成。

标签:10,r0,绘制,模型,Matlab,pi,drawxinggui,公转,太阳系
From: https://www.cnblogs.com/bubianyingzi/p/17007063.html

相关文章

  • 数值分析·学习 | 拉格朗日插值法matlab实现
    ​目录前言一、拉格朗日(Lagrange)插值是什么?二、matlab实现代码1.线性插值:2.抛物线插值:3.拉格朗日(Lagrange)插值:总结:前言本篇内容为个人所学知识分享一、拉格朗......
  • 数值分析·学习 | 牛顿插值法matlab实现
     目录前言一、牛顿插值法是什么?1.均差下的牛顿插值2.为了给出​编辑的表达式,引入均差的概念3.差分形式的牛顿插值公式(牛顿前插公式)三、matlab实现代码1.生成牛顿均......
  • MATLAB·学习 | music:祝你生日快乐
    ​一、前言本篇文章内容为个人学习分享,读代码须知以下乐理的基本知识,以及十二平均律(波的频率与音高的标准),个人推荐在维基百科中搜索十二平均律表。二、整体思想 在......
  • MATLAB保存绘制的图片为PDF
    今天在导出MATLAB图片时总是变成.fig格式,别的软件也打不开。记录一下使用的方法在绘制图表的命令后加一句下述代码即可。gcf不改变,第二个参数表示要保存的文件名称。sa......
  • EA构建静态、动态模型图
    文章目录​​一.活动图(流程图)​​​​1.建立活动图​​​​2.添加泳道​​​​3.简述活动图构建模型过程​​​​4.事件泳道活动图​​​​5.行为建模​​​​(1).类......
  • 常见的优先级选择模型 - 波士顿矩阵(对用户和公司价值判断)
    波斯顿矩阵是由波士顿咨询公司发明的一种方法,最早用于分析市场增长率和市场份额。现在也被经常用于对需求的分析之中。波士顿矩阵波士顿矩阵由用户价值维度和公司价值两......
  • 【电力系统】微电网两阶段鲁棒优化经济调度算法附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 强化学习如何保存模型?
    保存模的关键在于知道决定模型的东西是什么?框架和参数,有了框架保存参数,没有框架,全部保存。模型保存模型保存本质上是保存训练好的参数,便于重复利用模型,随时可以调用。......
  • 常见的优先级选择模型 - MVP(做些简单尝试来判断)
    MVP(MinimumviableProduct)指的是:“用户愿意用、愿意付费”“团队有能力做”“用户易于使用”开发MVP的主要目的是为了快速获得用户对产品反馈,那么对于开发MVP来说......
  • NT1_keras下搭建一个3层模型并且修改。
    In [1]:importkeraskeras.__version__C:\ProgramData\Anaconda3\lib\site-packages\h5py\__init__.py:36:FutureWarning:Conversionofthesecondarg......