MATLAB中的二维空间避障
我试图在Matlab中为两个2D对象创建碰撞检查。 我有两个物体,一个是稳定的(障碍物),一个是移动的。当它们重叠时,我想得到信息“error” 问题是,尽管它可以工作,但我认为这种方法不容易重用,而且我不认为“矩形”类型的对象适合我想要做的事情 有其他想法吗 我所做的是: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*
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
条件中的两个内括号。