检查圈之间的重叠

4视图(30天)
shdotcom shdotcom
shdotcom shdotcom 2018年9月26日
编辑: 安德烈Bobrov 2018年10月8日
这段代码是检查圈之间的重叠, 没有for循环是否可以这样做?
函数对= checkOverlap(圈,拉德)
%圈:圈矩阵(x, y);每一行代表一个圆;
拉德:半径每个圆
ncircles =大小(圈,1);
i = 1: ncircles 1
%圈之间的距离:
dx = bsxfun (@minus圈(我,1),圈(i + 1, - 1));
dy = bsxfun (@minus、圆(我,2),圈(i + 1, 2));
sumr (i) = bsxfun (@plus拉德(我,1),拉德(i + 1, - 1));
%中心之间的距离:
dist (i) =√dx。^ 2 + dy。^ 2);
结束
%对重叠:
对=找到(dist < sumr);
结束
运行:
圆=兰德(5,2);% 5圈
拉德=兰德(5、1);% 5半径
Isoverlap = checkOverlap(圈,拉德);

接受的答案

安德烈Bobrov
安德烈Bobrov 2018年9月26日
编辑:安德烈Bobrov 2018年10月8日
编辑
rad2 =拉德(:)+拉德(:)”;
dxy =√(xy (: 1) - xy (: 1)”)。^ 2 + (xy (:, 2) - xy (:, 2)”)。^ 2);
lo = dxy < = rad2;
罗(1:尺寸(xy, 1) + 1:结束)= false;
intersecting_circles =找到(任何(瞧,2));
1评论
shdotcom shdotcom
shdotcom shdotcom 2018年9月26日
编辑:shdotcom shdotcom 2018年9月26日
非常感谢你的回答。但是,我听不懂的内容。输出应该重叠圆圈的指标。

登录置评。

更多的答案(0)

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

标签

下载188bet金宝搏


释放

R2017a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!