find values for the equation of a circle

8 views (last 30 days)
I have the equation of a circle:
(x - a)^2 + (y - b)^2 - r^2 = 0
a, b and r are known values but I would like to find the values of x and y from a predetermined coordinate matrix which satisfies the equation.
example: a = 2, b = 2, r = 2
A =
1 2
1 3
2 4
hence the last row in A(2,4) would satisfy the equation. i.e. x = 2, y = 4
this is what I've tried so far:
a = 2;
b = 2;
r = 2;
x = find(A(:,1);
y = find(A(:,2);
solve((x - a)^2 + (y - b)^2 - r^2 == 0)

Accepted Answer

Roger Stafford
Roger Stafford on 14 Aug 2014
Edited: Roger Stafford on 14 Aug 2014
a = 2; b = 2; r = 2;
A = [1 2;1 3;2 4];
B = A((A(:,1)-a).^2+(A(:,2)-b).^2==r^2,:);
B contains the coordinate pairs, if any, that lie on the circle. Note that if you need this for values of a, b, and c which are not integers, it is best to allow a small tolerance for round-off errors rather than demanding exact equality in the equation.
  3 Comments
Roger Stafford
Roger Stafford on 14 Aug 2014
That was an error. I have now corrected it. My apologies.
Duncan
Duncan on 25 Aug 2014
I have another question related to this. Say:
A = 1 2
1 3
2 4
4 2
then the last two values would satisfy and hence display 2,4 and 4,2.
What I would like to know is how this code would change if i set limits. Say I want to display only the value that is within the limits of +/-1 of a & b.
i.e. it would only display 2,4

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!