fill in the area in plot

3 visualizzazioni (ultimi 30 giorni)
Alina Abdikadyr
Alina Abdikadyr il 17 Feb 2023
Risposto: Star Strider il 19 Feb 2023
How can I fill in the area
My code is
%3.2
clear all
W=45000;
S=9;
b=7.5;
clmax=2;
clmin=-1;
nmax=4;
AR=7;
nmin=-3;
clalpha = 2*pi;
Vdive=290;
Vstall=sqrt(2*W/(1.225*S*clmax));
cd0 = 0.005;
k = 1/pi/AR;
n1v = 0:0.25:4;
i=0;
for n1 = 0:0.25:4
i=i+1;
V(i) = sqrt(2*n1*W/1.225/S/clmax);
nmaxx(i)=nmax;
nminn(i)=nmin;
end
j=0;
n2v = -3:0.25:0;
for n2 = -3:0.25:0
j=j+1;
V2(j) = sqrt(2*n2*W/1.225/S/clmin);
nmaxx(j)=nmax;
nminn(j)=nmin;
end
k=0;
nv=-3:0.25:4;
for n=-3:0.25:4
k=k+1;
Vmax(k)=Vdive;
end
m=0;
n3v=-3:0.25:4;
for n3=-3:0.25:4
m=m+1;
Vstall1(m)=Vstall;
end
figure(5); plot(V,n1v, 'DisplayName','n1v')
hold on
plot([V Vmax(end)],[nmaxx nmaxx(end)], 'DisplayName','nmaxx')
hold on
plot([V Vmax(end)],[nminn nminn(end)], 'DisplayName','nminn')
hold on
plot(V2,n2v, 'DisplayName','n2v');
plot(Vmax,nv, 'DisplayName','nv');
hold on
plot(Vstall1,n3v, 'DisplayName','n3v');
xlim([-1 325]);
ylim([-4 5]);

Risposta accettata

Star Strider
Star Strider il 19 Feb 2023
Please see my Comment to your previous post.
I do not know what parts you want to fill, so again, I filled each of them.
Choose the appropriate patch calls —
%3.2
clear all
W=45000;
S=9;
b=7.5;
clmax=2;
clmin=-1;
nmax=4;
AR=7;
nmin=-3;
clalpha = 2*pi;
Vdive=290;
Vstall=sqrt(2*W/(1.225*S*clmax));
cd0 = 0.005;
k = 1/pi/AR;
n1v = 0:0.25:4;
i=0;
for n1 = 0:0.25:4
i=i+1;
V(i) = sqrt(2*n1*W/1.225/S/clmax);
nmaxx(i)=nmax;
nminn(i)=nmin;
end
j=0;
n2v = -3:0.25:0;
for n2 = -3:0.25:0
j=j+1;
V2(j) = sqrt(2*n2*W/1.225/S/clmin);
nmaxx(j)=nmax;
nminn(j)=nmin;
end
k=0;
nv=-3:0.25:4;
for n=-3:0.25:4
k=k+1;
Vmax(k)=Vdive;
end
m=0;
n3v=-3:0.25:4;
for n3=-3:0.25:4
m=m+1;
Vstall1(m)=Vstall;
end
figure(5); plot(V,n1v, 'DisplayName','n1v')
hold on
plot([V Vmax(end)],[nmaxx nmaxx(end)], 'DisplayName','nmaxx')
hold on
plot([V Vmax(end)],[nminn nminn(end)], 'DisplayName','nminn')
hold on
plot(V2,n2v, 'DisplayName','n2v');
plot(Vmax,nv, 'DisplayName','nv');
hold on
plot(Vstall1,n3v, 'DisplayName','n3v');
xlim([-1 325]);
ylim([-4 5]);
patch([Vmax(end) V2 flip(V2) Vmax(end)], [zeros(size([n2v n2v(1)])) flip(n2v) n2v(1)], 'm', 'FaceAlpha',0.25)
patch([V Vmax(end) Vmax(end) flip(V)], [zeros(size([n1v n1v(end)])) n1v(end) flip(n1v)], 'm', 'FaceAlpha',0.25)
LvVs1 = V<=Vstall; % Logical Vector: Region 4
LvVs2 = V>=Vstall; % Logical Vector: Region 1
LvV2s1 = V2<=Vstall; % Logical Vector: Region 3
LvV2s2 = V2>=Vstall; % Logical Vector: Region 2
patch([V2(LvV2s1) flip(V2(LvV2s1))], [ones(size(n2v(LvV2s1)))*min(n2v) flip(n2v(LvV2s1))], [0.1 0.8 0.3], 'FaceAlpha',0.25) % Region 4
patch([V(LvVs1) flip(V(LvVs1))], [n1v(LvVs1) ones(size(n1v(LvVs1)))*max(n1v)], [0.5 0.2 0.5], 'FaceAlpha',0.25) % Region 1
patch([V2(LvV2s2) flip(V2(LvV2s2))], [ones(size(n2v(LvV2s2)))*min(n2v) flip(n2v(LvV2s2))], [0.3 0.5 0.8], 'FaceAlpha',0.25) % Region 3
patch([V(LvVs2) flip(V(LvVs2))], [n1v(LvVs2) ones(size(n1v(LvVs2)))*max(n1v)], [0.8 0.4 0.2], 'FaceAlpha',0.25) % Region 2
text([25 75 75 25], [3 3 -2 -2], compose('%d',1:4))
I keyed the patch calls and the logical vectors to the appropriate regions in the in-line comments for each of them. Choose the ones you want to fill, and change the colours as necessary.
.

Più risposte (2)

Sulaymon Eshkabilov
Sulaymon Eshkabilov il 17 Feb 2023

Image Analyst
Image Analyst il 19 Feb 2023

Tag

Prodotti


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by