duojiduojiduoji295 2022-09-21 18:11 采纳率: 95%
浏览 53
已结题

如何搭建一个消防水炮运行的平台呢?

电子信息智能控制方向的研究生。论文这块本来用实物的,结果老板突然改了方向,要求用仿真做,建模搭建一个消防水炮3D模型,能够控制俯仰角,并且能模拟发射得到水炮落点。但我寻思这一要建模,二这个水还和流体有关。根本没接触过。有没有朋友能够讲一下我们老板这个要求能不能达到,如果能,大概是用什么方法,如果无法达到要求我还是直接坚持用实物吧

  • 写回答

2条回答 默认 最新

  • 鹅毛在路上了 Matlab领域优质创作者 2022-09-21 22:40
    关注

    3D模型15块钱这个工作量是劝退了,2D模型还是有很多例子的,比如这个导弹模型的,可以调整仰角,自定义修改一下计算射程,改下背景就可以:

    %导弹拦截
    clear                                    %清除变量
    % rand('state',0)                  %随机状态初始化
    v2=1.1;                                %拦截导弹速率与来袭导弹初速度之比
    %v2=1;                                %拦截导弹速率与来袭导弹初速度之比
    %v2=0.9;                             %拦截导弹速率与来袭导弹初速度之比
    T=linspace(0,1);                 %飞行时间
    while 1                                %做无限循环
        figure                             %创建图形窗口
        axis([0,1,-0.2,0.6])               %坐标范围
        axis equal off                     %隐藏坐标
        title('导弹拦截','FontSize',20)    %标题
        text(0,0.5,'导弹来袭时,按空格键发射拦截导弹.','FontSize',16)%显示操作方法
        hold on                            %保持图像
        plot([0,1],[0,0])                  %画地平线
        for th=[0:10:90]
    %     th=90*rand;                      %0到90度之间的随机角度
        th=th*pi/180;                      %化为弧度
        xx1=0;yy1=0;                       %来袭导弹的初坐标
        xx2=1;yy2=0;                       %拦截导弹的初坐标
        x2=1;y2=0;                         %拦截导弹的终坐标的初值
        c='';                              %字符变量置空
        dt=0;                              %时间间隔取0
        for t=T                            %按来袭导弹的时间循环
            x1=t*sin(2*th);                %计算来袭导弹的横坐标
            y1=2*sin(th)^2*(t-t^2);        %计算来袭导弹纵坐标
            plot([xx1,x1],[yy1,y1],'k','LineWidth',2)%画来袭导弹轨迹
            s=sqrt((x2-x1)^2+(y2-y1)^2);   %计算两弹之间的距离
            if s<=0.02         %如果两导弹距离很小或对方导弹落地
                plot(x1,y1,'*','MarkerSize',20)%画爆炸射线
                disp(['发射角度为',num2str(th*180/pi),'开始拦截成功'])
                break                      %退出循环
            end                            %结束循环
            xx1=x1;yy1=y1;                 %保存来袭导弹的坐标
            c=get(gcf,'CurrentCharacter'); %从键盘取图形窗口的当前字符
            if length(c)~=0&&c==' '        %如果c中有字符且为空格
                dt=T(2);                   %取时间间隔
            end                            %结束条件
            x2=x2-(x2-x1)/s*2*v2*sin(th)*dt;%拦截导弹的横坐标
            y2=y2-(y2-y1)/s*2*v2*sin(th)*dt;%拦截导弹的纵坐标
            plot([xx2,x2],[yy2,y2],'r','LineWidth',2)%画拦截导弹的轨迹
            xx2=x2;yy2=y2;                 %保存拦截导弹的坐标
            pause(0.05)                    %延时
        end                                %结束循环
        end
        c=input('继续玩?(y/n)','s');       %提示键盘输入选择
        if c~='y' break,end                %不是y则退出游戏
    end  
    disp('请按空格关闭全部窗口')
    pause()
    close all;
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月29日
  • 已采纳回答 9月21日
  • 创建了问题 9月21日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题