find values for the equation of a circle

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)

 Réponse acceptée

Roger Stafford
Roger Stafford le 14 Août 2014
Modifié(e) : Roger Stafford le 14 Août 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 commentaires

Duncan
Duncan le 14 Août 2014
hi, thanks for the reply. what do you mean by coordinate pairs? I ran the code and it only shows up with a single value 2
Roger Stafford
Roger Stafford le 14 Août 2014
That was an error. I have now corrected it. My apologies.
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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Sparse Matrices dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by