Draw circle in a rectangular

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

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

Untitled
Undefined function 'nsidedpoly' for input arguments of type 'double'.
Error in Untitled (line 1)
c=nsidedpoly(1000);
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

Products

Release

R2014a

Tags

Community Treasure Hunt

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

Start Hunting!