MATLAB Answers

How to convert arc circle plot into binary circle?

2 views (last 30 days)
afiq rauf
afiq rauf on 17 Jun 2021
Answered: Walter Roberson on 19 Jun 2021
how to change the circumference into binary circle ?

Accepted Answer

KSSV
KSSV on 17 Jun 2021
R = 1;
th = linspace(0,2*pi,1000) ;
x = R*cos(th) ; y = R*sin(th) ;
xi = linspace(-2,2,100) ;
yi = linspace(-2,2,100) ;
[X,Y] = meshgrid(xi,yi) ;
Z = zeros(100) ;
idx = knnsearch([X(:) Y(:)],[x' y']) ;
Z(idx) = 1 ;
imagesc(Z)
  3 Comments
Walter Roberson
Walter Roberson on 19 Jun 2021
Change
th = linspace(0,2*pi,1000) ;
to only have the range of angles that you want the arc to cover.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 19 Jun 2021
But for your purpose, instead of using plot(), multiply the coordinates by the resolution you want, and round() them, and then subtract off the minimum x and y . Now you have matrix coordinates.
resolution = 25;
th = linspace(0, 7*pi/9, 500);
r = 5;
xc = 3;
yc = 7;
[x,y] = pol2cart(th, r);
x = x + xc;
y = y + yc;
%the above are data coordinates. Make them into array coordinates.
buffer = 5;
xm = round(x * resolution);
ym = round(y * resolution);
xmin = min(xm);
ymin = min(ym);
xmax = max(xm);
ymax = max(ym);
xmc = xm - xmin + 1 + buffer;
ymc = ym - ymin + 1 + buffer;
arc_image = accumarray([ymc(:), xmc(:)], 1);
imshow(arc_image)

Tags

Community Treasure Hunt

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

Start Hunting!