Draw circle in a rectangular

10 views (last 30 days)
Hussein Haider
Hussein Haider on 17 Jan 2023
Commented: Hussein Haider on 18 Jan 2023
How to draw a Matlab code that draws a red circle with radius 1 at the center of a green square of sides 20. The square borders should be blue.

Accepted Answer

Matt J
Matt J on 17 Jan 2023
Edited: Matt J on 18 Jan 2023
s=([0 0 ; 0 1; 1 1; 1 0]-1/2)*20;
t=linspace(0,360,1000)';
c=[cosd(t), sind(t)];
patch('XData',s(:,1),'YData',s(:,2),'FaceColor','g','EdgeColor','b','LineWidth',3);
patch('XData',c(:,1),'YData',c(:,2),'FaceColor','r','LineStyle','none');
axis equal
  2 Comments
Hussein Haider
Hussein Haider on 18 Jan 2023
The edges are not blue
Matt J
Matt J on 18 Jan 2023
Edited: Matt J on 18 Jan 2023
The edges are blue, but the thickness can be increased, which I have now done.

Sign in to comment.

More Answers (2)

Matt J
Matt J on 17 Jan 2023
Edited: Matt J on 17 Jan 2023
c=nsidedpoly(1000);
s=subtract(nsidedpoly(4,'Side',20),c);
h=plot([c,s]); axis equal
h(1).FaceColor='red';
h(1).FaceAlpha=1;
h(2).FaceColor='green';
h(2).EdgeColor='blue';
  2 Comments
Hussein Haider
Hussein Haider on 17 Jan 2023
Untitled
Undefined function 'nsidedpoly' for input arguments of type 'double'.
Error in Untitled (line 1)
c=nsidedpoly(1000);
Hussein Haider
Hussein Haider on 17 Jan 2023
i use MATLAB R2014a

Sign in to comment.


Matt J
Matt J on 17 Jan 2023
Edited: Matt J on 18 Jan 2023
N=500;
[x,y]=ndgrid(linspace(-10,10,N));
cmsk=x.^2+y.^2>=1;
emsk=padarray(zeros(N-6),[3,3],1);
[R,G,B]=deal(~cmsk&~emsk,cmsk&~emsk,emsk);
I=cat(3,R,G,B);
imshow(I)

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Products


Release

R2014a

Community Treasure Hunt

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

Start Hunting!