QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1324|回复: 0
打印 上一主题 下一主题

【MATLAB动画教程十】

[复制链接]
字体大小: 正常 放大

142

主题

50

听众

2万

积分

升级  0%

  • TA的每日心情
    开心
    2022-8-28 18:40
  • 签到天数: 1187 天

    [LV.10]以坛为家III

    网络挑战赛参赛者

    国际赛参赛者

    邮箱绑定达人 社区QQ达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组Matlab讨论组

    群组MATLAB技术交流

    群组西南交通大学数学建模

    群组学术交流A

    群组数学建模

    跳转到指定楼层
    1#
    发表于 2015-9-23 09:38 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    %by dynamic
    %see also http://www.matlabsky.com
    %2008.12.23
    %
    h=figure('numbertitle','off','name','卫星绕地球旋转演示动画——Matlabsky');%设置标题名字
    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


    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    新浪微博:http://weibo.com/yzhsky
    Q        Q:
    736466568
    欢迎来数学中国交流,您的问题我们尽量回答,谢谢。
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-21 13:39 , Processed in 0.395578 second(s), 54 queries .

    回顶部