Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中的二维空间避障_Matlab_Collision Detection - Fatal编程技术网

MATLAB中的二维空间避障

MATLAB中的二维空间避障,matlab,collision-detection,Matlab,Collision Detection,我试图在Matlab中为两个2D对象创建碰撞检查。 我有两个物体,一个是稳定的(障碍物),一个是移动的。当它们重叠时,我想得到信息“error” 问题是,尽管它可以工作,但我认为这种方法不容易重用,而且我不认为“矩形”类型的对象适合我想要做的事情 有其他想法吗 我所做的是: close all; clear all; for i = 0 : 0.1 : 5; aXmin = i; aYmin = 3.5 *sin(i); aXmax = aXmin + 1; aYmax = aYmin*

我试图在Matlab中为两个2D对象创建碰撞检查。 我有两个物体,一个是稳定的(障碍物),一个是移动的。当它们重叠时,我想得到信息“error”

问题是,尽管它可以工作,但我认为这种方法不容易重用,而且我不认为“矩形”类型的对象适合我想要做的事情

有其他想法吗

我所做的是:

close all;
clear all;

for i = 0 : 0.1 :  5;

aXmin = i; 
aYmin = 3.5 *sin(i);
aXmax = aXmin + 1;
aYmax = aYmin*sin(i) + 2;

set(rectangle, 'Position', [aXmin, aYmin, 1, 1]);

bXmin = 3;
bYmin = 3;
bXmax = 3.4;
bYmax = 7;

set(rectangle, 'Position', [bXmin, bYmin, 0.4, 4]);

if ((aXmin < bXmax && aXmax > bXmin) && (aYmin < bYmax && aYmax > bYmin))

display('error')
else 
display('OK')
end
pause(0.1);
end
全部关闭;
清除所有;
对于i=0:0.1:5;
aXmin=i;
aYmin=3.5*sin(i);
aXmax=aXmin+1;
aYmax=aYmin*sin(i)+2;
集合(矩形,'位置',[aXmin,aYmin,1,1]);
bXmin=3;
bYmin=3;
bXmax=3.4;
bYmax=7;
集合(矩形,'位置',[bXmin,bYmin,0.4,4]);
如果((aXminbXmin)和&(aYminbYmin))
显示('错误')
其他的
显示('确定')
终止
暂停(0.1);
终止

你能详细说明你的“问题”吗?为什么这种方法不可重用,为什么矩形是一个糟糕的选择?在我看来没问题,到底是什么问题?您不需要循环前面的行,也不需要
if
条件中的两个内括号。