Asked by arun Dhillon
on 10 Oct 2019

How can I find all the x,y coordinates on the circumference of the circle; if I know the center of the circle and the radius of the circle. So in other words; imagine I have a circle in an image with its centre at 500,500. I know that the radius of this circle is 50 pixels. How can I find all the x,y coordinates that will be on the circumference of that circle. Further, the size of the image is 1280*720 pixels. Any suggestions or help is greatly appreciated.

Answer by Image Analyst
on 10 Oct 2019

Use sind() and cosd() to get all the x and y coordinates. Round them to get integers and use unique() with the rows option to remove duplicates. Try this:

radius = 50

xCenter = 500;

yCenter = 500;

rows = 720

columns = 1280

theta = linspace(0, 360, 4*pi*radius); % More than needed to avoid gaps.

x = xCenter + radius * cosd(theta);

y = yCenter + radius * sind(theta);

grayImage = 128 * ones(rows, columns, 'uint8');

xy = round([x', y']);

xy = unique(xy, 'rows');

x = xy(:, 1);

y = xy(:, 2);

for k = 1 : length(x)

grayImage(y(k), x(k)) = 255;

end

imshow(grayImage);

axis('on', 'image');

fprintf('Done!\n');

Sign in to comment.

Answer by Matt J
on 10 Oct 2019

Okay Considering 5 pixels + or - for the inaccuracy to find all the x,y, points on the circumference; how can I find even those.

Dsq=( (1:1280).'-500 ).^ + ((1:720)-500).^2;

idx = (Dsq>=(50-5).^2) & (Dsq<=(50+5).^2) ;

[X,Y]=ndgrid(1:1280,1:720);

CircumferencePixels=[X(idx), Y(idx)];

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Matt J (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/484501-find-the-points-on-circumference-of-a-circle#comment_754575

## arun Dhillon (view profile)

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/484501-find-the-points-on-circumference-of-a-circle#comment_754582

Sign in to comment.