fill in the area in plot

3 Ansichten (letzte 30 Tage)
Alina Abdikadyr
Alina Abdikadyr am 17 Feb. 2023
Beantwortet: Star Strider am 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]);

Akzeptierte Antwort

Star Strider
Star Strider am 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.
.

Weitere Antworten (2)

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 17 Feb. 2023

Image Analyst
Image Analyst am 19 Feb. 2023

Tags

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by