【运动学】基于matlab GUI模拟鱼类目标追击问题【含Matlab源码 166期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【运动学】基于matlab GUI模拟鱼类目标追击问题【含Matlab源码 166期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、部分源代码
function varargout = TorpedoAndAim(varargin)
% TORPEDOANDAIM MATLAB code for TorpedoAndAim.fig
% TORPEDOANDAIM, by itself, creates a new TORPEDOANDAIM or raises the existing
% singleton*.
%
% H = TORPEDOANDAIM returns the handle to a new TORPEDOANDAIM or the handle to
% the existing singleton*.
%
% TORPEDOANDAIM('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in TORPEDOANDAIM.M with the given input arguments.
%
% TORPEDOANDAIM('Property','Value',...) creates a new TORPEDOANDAIM or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before TorpedoAndAim_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to TorpedoAndAim_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help TorpedoAndAim% Last Modified by GUIDE v2.5 22-Jun-2021 20:00:58% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @TorpedoAndAim_OpeningFcn, ...'gui_OutputFcn', @TorpedoAndAim_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before TorpedoAndAim is made visible.
function TorpedoAndAim_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to TorpedoAndAim (see VARARGIN)% Choose default command line output for TorpedoAndAim
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes TorpedoAndAim wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = TorpedoAndAim_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
AimSpeed=str2double(get(handles.edit1,'string')); %目标初始速度
AimSpeedAngel=str2double(get(handles.edit2,'string')); %目标速度与x方向夹角
TorpedoSpeed=str2double(get(handles.edit3,'string')); %鱼雷速度
AimOriginX=str2double(get(handles.edit4,'string')); %目标初始位置
AimOriginY=str2double(get(handles.edit5,'string'));
TorpedoOriginX=str2double(get(handles.edit6,'string')); %鱼雷初始位置
TorpedoOriginY=str2double(get(handles.edit7,'string'));%-------------%%输入完毕—————————————AimSpeedAngel=AimSpeedAngel/180*pi; %角度转弧度
AimSpeedX=AimSpeed*cos(AimSpeedAngel); %目标速度x分量
AimSpeedY=AimSpeed*sin(AimSpeedAngel); %目标速度y分量
TorpedoX=TorpedoOriginX;
TorpedoY=TorpedoOriginY;
t=0;t0=0.1;
axes(handles.axes1);
while(1)t=t+t0;set(handles.text12,'string',[num2str(t),'s']);AimX=AimOriginX+AimSpeedX*t;AimY=AimOriginY+AimSpeedY*t;ATAngel=atan((AimY-TorpedoY)/(AimX-TorpedoX)); %舷角if AimX>=TorpedoX&&AimY>=TorpedoY %%鱼雷路径优化TorpedoX=TorpedoX+TorpedoSpeed*cos(ATAngel)*t0;TorpedoY=TorpedoY+TorpedoSpeed*abs(sin(ATAngel))*t0;elseif AimX<TorpedoX&&AimY>=TorpedoYTorpedoX=TorpedoX-TorpedoSpeed*cos(ATAngel)*t0;TorpedoY=TorpedoY+TorpedoSpeed*abs(sin(ATAngel))*t0;elseif AimX>=TorpedoX&&AimY<TorpedoYTorpedoX=TorpedoX+TorpedoSpeed*cos(ATAngel)*t0;TorpedoY=TorpedoY-TorpedoSpeed*abs(sin(ATAngel))*t0;elseTorpedoX=TorpedoX-TorpedoSpeed*cos(ATAngel)*t0;TorpedoY=TorpedoY-TorpedoSpeed*abs(sin(ATAngel))*t0; endh1=plot(TorpedoX,TorpedoY,'*'); %鱼雷路径为***线xlabel('x方向','Fontsize',16);ylabel('y方向','Fontsize',16);hold on h2=plot(AimX,AimY,'.'); %目标路径为...线r=(AimY-TorpedoY)^2+(AimX-TorpedoX)^2; %鱼目距离if(r)<=1 %击中判定set(handles.text11,'string','成功击中目标!');break;endif(t>60) %丢失判定set(handles.text11,'string','超时!丢失目标!');break;endpause(0.01);
endfunction edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 门云阁.MATLAB物理计算与可视化[M].清华大学出版社,2013.
【运动学】基于matlab GUI模拟鱼类目标追击问题【含Matlab源码 166期】相关推荐
- 【图像处理】基于matlab GUI多功能图像处理系统【含Matlab源码 1876期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像处理]基于matlab GUI多功能图像处理系统[含Matlab源码 1876期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【光学】基于matlab GUI光栅条纹投影生成【含Matlab源码 2118期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI光栅条纹投影生成[含Matlab源码 2118期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- 【机械仿真】基于matlab GUI直齿圆柱齿轮应力计算【含Matlab源码 2077期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI直齿圆柱齿轮应力计算[含Matlab源码 2077期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...
- 【天体学】基于matlab GUI太阳天顶角计算【含Matlab源码 2229期】
一.⛄获取代码方式 获取代码方式1: 完整代码已上传我的资源:[天体学]基于matlab GUI太阳天顶角计算[含Matlab源码 2229期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- 【语音去噪】基于matlab GUI IIR滤波器语音去噪【含Matlab源码 1864期】
一.语音处理简介 语言是人们获得各类有效信息的主要途径, 而语音是语言的表现形式.语音在一定程度上可影响人们的生活, 因此, 语音信号的研究对科学领域和人们日常生活具有一定的研究价值和意义.噪声广泛存 ...
- 【身份证识别】基于matlab GUI BP神经网络身份证识别【含Matlab源码 2239期】
⛄一.身份证号码识别简介 1 引言 当今是一个信息高度发达的时代,对于每个公民而言身份证那一连串的数字体现了个人信息的唯一性,出于保障公民合法权益和社会治安的考虑,越来越多的行业都开始建立自己的安全保 ...
- 【病虫害识别】基于matlab GUI SVM病虫害识别系统【含Matlab源码 2429期】
⛄一.基于机器视觉的农作物病害识别技术 1 叶片图像采集 进行农作物病害自动检测与识别首先要对病害叶片的图像进行采集.自动识别的前提是获得数字图像, 数字图像质量的好坏决定着之后叶片病害的识别特征能否 ...
- 【人脸识别】基于matlab GUI KL变换人脸识别【含Matlab源码 859期】
⛄一.KL变换人脸识别简介 人脸识别是指基于己知的人脸样本集,利用图像处理和模式识别的技术从静态或动态场景中,识别或验证一个或多个人脸.人脸识别技术跨越了图像处理.模式识别.计算机视觉.生物学.神经生 ...
- 【限速标志识别】基于matlab GUI形态学限速标志识别【含Matlab源码 1142期】
⛄一.SVM路标检测识别简介 1 路标识别 完整的路标识别系统包括:图像的获取与预处理,图像分割(路标定位),特征提取,模式分类(路标识别)等部分.其中模式分类是系统的关键技术.较常用的模式分类方法是 ...
最新文章
- Flink最锋利的武器:Flink SQL入门和实战 | 附完整实现代码
- 大脑模拟NLP,高德纳奖得主Papadimitriou:神经元集合演算用于句子解析
- 230. Kth Smallest Element in a BST ——迭代本质:a=xx1 while some_condition: a=xx2
- (仿头条APP项目)5.列表页面设计实现
- (LINQ 学习系列)(8)Linq教程实例: 事务处理
- 块分割,维特比算法小结
- Spring集成Memcached三种方式(一)
- 2020年第十七届中国研究生数学建模竞赛赛题+解压码
- c语言编程 if怎么用,C语言编程入门——if的用法
- 唱响艾泽拉斯_战争篇
- 公共基础知识:地理之八大行星
- Apache Pegasus 首次 Meetup 圆满落幕
- ics日历 android,哪些日历 App 支持导入 ics 或 webcal 协议订阅?
- IDEA alt + insert快捷键不能使用
- Spark深入解析(三):Spark基础解析之Spark环境搭建(不同模式)
- ICP备案,收不到短信或没有手机的朋友进来吧,对你肯定有帮助:)
- TexStudio 快捷键 ctrl+R 查找替换
- 栈溢出利用SEH异常处理
- BZOJ4398: 福慧双修【二进制分组+最短路】
- Cheat Engine Step 8详细解读
热门文章
- VMware Server1.03下载地址及序列号
- [英语阅读笔记]Creating Master Detail Pages using GridView
- Mybatis-学习笔记(5)动态SQL
- Visual Studio 2017 vcvarsall.bat 环境配置对应关系
- 【洛谷p1012】拼数
- kubeadm安装k8s测试环境
- DFMZ-开发过程中遇到的错误-01
- 学习笔记_Java_day12_Cookie
- Linux高性能集群搭建(3)---MPICH2安装测试
- 检测相机视野中的物体运动并用Mask显示