检查圈之间的重叠
4视图(30天)
显示旧的评论
这段代码是检查圈之间的重叠,
没有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(圈,拉德);