MATLAB: Find the points on circumference of a circle

image analysisimage processingImage Processing ToolboxmathematicsMATLABmatrixplotting

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.

Best Answer

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');
0000 Screenshot.png
Related Question