how to determine the position of points which belong to a circle ?

Hi how to determine the points of a circle (their x, y coordinates) if we knew the position of the center and the radius of the circle thanks!!!!

 Accepted Answer

If the center is at (x0,y0) and the radius is r, then
1) if (x-x0)^2 + (y-y0)^2 < r^2, the point (x,y) is inside the circle,
2) if (x-x0)^2 + (y-y0)^2 == r^2, the point (x,y) is on the circle, and
3) if (x-x0)^2 + (y-y0)^2 > r^2, the point (x,y) is outside the circle.

1 Comment

thanks for this fast response this is what i'm realy looking for just i need now to write the appropriate code

Sign in to comment.

More Answers (1)

6 Comments

The code I think you're looking for, which gives a list of x,y coordinates given a radius and center location is this:
xCenter = 12;
yCenter = 10;
theta = 0 : 0.01 : 2*pi;
radius = 5;
x = radius * cos(theta) + xCenter;
y = radius * sin(theta) + yCenter;
plot(x, y);
axis square;
xlim([0 20]);
ylim([0 20]);
grid on;
Change xCenter, yCenter, and radius value to whatever you need. If this answers your question, please mark as Accepted.
this code works well but for my case i implemented another one but this is work well and gives what i have asked in my question thanks again
Give your actual MATLAB code - if it's different than this, I can add it to the FAQ as an alternate method.
Well the first way is a totally inefficient way of doing the first method of the FAQ. You can do it just once like the FAQ shows you instead of having a double for loop.
And your second half of your code is just the 4th block of code in the FAQ, just what I recommended to you but you said you didn't use . But you did - you just didn't realize it. Anyway, you don't need to do it both ways.
In your first code it seems like you're trying to get the perimeter pixels, while in the second code you're getting a solid circular disc. I think you should decide whether you want all the pixels in the circle, or just the perimeter pixels, and use the section of the FAQ that does whichever one you want. I would not use your code as-is.
the second part of my code is just to show you what i want to get as result i.e i used it to shwo you the difference between the both codes. Besides, i had this part from about one year ago and for all these reasons i accepted the first answer and not yours but thanks !!

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Asked:

jan
on 22 Dec 2014

Edited:

jan
on 23 Dec 2014

Community Treasure Hunt

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

Start Hunting!