Matlab 卫星绕地球旋转演示动画

发布时间: 更新时间: 总字数:1361 阅读时间:3m 作者: IP上海 分享 网址
专栏文章
  1. Matlab 小球绕跑道运动
  2. Matlab 台球模拟程序 动画演示
  3. Matlab 曲柄滑块机构
  4. Matlab 卫星绕地球旋转演示动画(当前)
  5. Matlab 电影动画(Rotate Peak)
  6. Matlab 太阳 地球 月亮 绕转演示动画
  7. 牛顿环演示的MATLAB程序

Matlab 卫星绕地球旋转演示动画,使用Matlab实现地球、太阳、地球卫星绕地球旋转演示动画

代码

h=figure('numbertitle','off','name','卫星绕地球旋转演示动画——matlabfan');%设置标题名字
s1=0:.01:2*pi;
hold on;
axis equal;%建立坐标系
axis off;%除掉Axes
r1=10;%地球到太阳的平均距离
r2=3;%卫星的轨道半径
w1=1;%设置地球公转角速度
w2=12;%设置卫星绕地球公转角速度
t=0;%初始时刻
pausetime=.002;%设置视觉暂留时间
sita1=0;
sita2=0;%设置开始它们都在水平线上
set(gcf,'doublebuffer','on') %消除抖动
plot(-20,18,'color','r','marker','.','markersize',40);
text(-17,18,'太阳');%对太阳进行标识
plot(-20,16,'color','b','marker','.','markersize',20);
text(-17,16,'地球');%对地球进行标识
plot(-20,14,'color','w','marker','.','markersize',13);
text(-17,14,'卫星');%对卫星进行标识
plot(0,0,'color','r','marker','.','markersize',60);%画太阳
plot(r1*cos(s1),r1*sin(s1));%画地球公转轨道
set(gca,'xlim',[-20 20],'ylim',[-20 20]);
p1=plot(r1*cos(sita1),r1*sin(sita1),'color','b','marker','.','markersize',30);%画地球初始位置
l1=plot(r1*cos(sita1)+r2*cos(s1),r1*sin(sita1)+r2*sin(s1));%画卫星绕地球的公转轨道
p2x=r1*cos(sita1)+r2*cos(sita2);
p2y=r1*sin(sita1)+r2*sin(sita2);
p2=plot(p2x,p2y,'w','marker','.','markersize',20);%画卫星的初始位置
orbit=line('xdata',p2x,'ydata',p2y,'color','r');%画卫星的运动轨迹
while 1
    if ~ishandle(h),return,end
    set(p1,'xdata',r1*cos(sita1),'ydata',r1*sin(sita1));%设置地球的运动过程
    set(l1,'xdata',r1*cos(sita1)+r2*cos(s1),'ydata',r1*sin(sita1)+r2*sin(s1));%设置卫星绕地球的公转轨道的运动过程
    ptempx=r1*cos(sita1)+r2*cos(sita2);
    ptempy=r1*sin(sita1)+r2*sin(sita2);
    set(p2,'xdata',ptempx,'ydata',ptempy);%设置卫星的运动过程
    p2x=[p2x ptempx];
    p2y=[p2y ptempy];
    set(orbit,'xdata',p2x,'ydata',p2y);%设置卫星运动轨迹的显示过程
    sita1=sita1+w1*pausetime;%地球相对太阳球转过的角度
    sita2=sita2+w2*pausetime;%卫星相对地球转过的角度
    pause(pausetime); %视觉暂停
    drawnow %刷新屏幕,重绘
end

效果

Matlab 卫星绕地球旋转演示动画

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数