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.

 Akzeptierte Antwort

Matt J
Matt J am 17 Jan. 2023
Bearbeitet: Matt J am 18 Jan. 2023

0 Stimmen

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 Kommentare

Hussein Haider
Hussein Haider am 18 Jan. 2023
The edges are not blue
Matt J
Matt J am 18 Jan. 2023
Bearbeitet: Matt J am 18 Jan. 2023
The edges are blue, but the thickness can be increased, which I have now done.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Matt J
Matt J am 17 Jan. 2023
Bearbeitet: Matt J am 17 Jan. 2023

0 Stimmen

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 Kommentare

Untitled
Undefined function 'nsidedpoly' for input arguments of type 'double'.
Error in Untitled (line 1)
c=nsidedpoly(1000);
Hussein Haider
Hussein Haider am 17 Jan. 2023
i use MATLAB R2014a

Melden Sie sich an, um zu kommentieren.

Matt J
Matt J am 17 Jan. 2023
Bearbeitet: Matt J am 18 Jan. 2023

0 Stimmen

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)

3 Kommentare

Hussein Haider
Hussein Haider am 18 Jan. 2023
The edges are not blue
Matt J
Matt J am 18 Jan. 2023
Now they are.
Hussein Haider
Hussein Haider am 18 Jan. 2023
thank u

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2014a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by