MATLAB Answers

0

Matrix indexing in a function

Asked by arun Dhillon on 9 Oct 2019
Latest activity Answered by Stephan
on 10 Oct 2019
I have an m*3 matrix(metric). Inside the matrix 'metric', I am having x(1st column),y(2nd column) coordinates and the respective radii(3rd column) of each of those circles; thus each row represent a different circle. I need to find if any of the respective circles are intersecting with each other and if yes then which one is intersecting with which one. My question is how can I compare or calculate each of the circle and compare with each other to see if any of the circles are intersecting and where.
Please guide me with any way to solve this problem.
Any suggestion or help is greatly appreciated.

  0 Comments

Sign in to comment.

1 Answer

Answer by Stephan
on 10 Oct 2019

It is a good idea to work with polyshape objects in this case:
% Find intersected circles
P = [0 0 1; 1 1.5 0.75; 2 1 0.5];
for k = 1:size(P,1)
polyout(k) = polybuffer(P(k,1:2),'points',P(k,3));
end
TF = overlaps(polyout)
% Plot results
plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout)
axis equal
hold off
results in a matrix showing you which circles are intersecting:
TF =
3×3 logical array
1 0 0
0 1 1
0 1 1
looks:
circles.PNG
read more here:

  0 Comments

Sign in to comment.