![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1632391/image.png)
Filled region between three functions
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rasmus Bruun
am 1 Mär. 2024
Bearbeitet: Mathieu NOE
am 1 Mär. 2024
I would like to shade the region inbetween [sigma1, Friction], [sigma1, Friction2] and [sigma2, Tension_failure]. I have shaded the area between the two first functions but I don'tknow how to restrict the curve to the third function.
Forhold = 1/2 ;
Forhold2 = 54/228;
f_vk0 = 0.4 ; % Klæbningsbidrag [MPa]
mu_k = 0.65 ; % Friktionskoefficient
f_bt = 1.00 ; % Trækstyrke af sten [MPa]
f_k = 10.00 ; % Trykstyrke af sten [MPa]
sigma1 = -0.0:0.1:1.4 ;
sigma2 = 0.1:0.1:10 ;
sigma3 = 8.5:0.1:10 ;
sigma23 = 9.2:0.1:10 ;
Friction = (f_vk0 + mu_k * sigma1) / (1 + mu_k * 2 * Forhold) ;
Tension_failure = f_bt / 2.3 * sqrt(1 + sigma2/f_bt) ;
Compression_failure = (f_k - sigma3) * 1/Forhold*(1/2) ;
Friction2 = (f_vk0 + mu_k * sigma1) / (1 + mu_k * 2 * Forhold2) ;
Tension_failure = f_bt / 2.3 * sqrt(1 + sigma2/f_bt) ;
Compression_failure2 = (f_k - sigma23) * 1/Forhold2*(1/2) ;
figure()
hold on
plot(sigma1, Friction,'--','Color',[0.4660 0.6740 0.1880])
plot(sigma2, Tension_failure,'--','Color',[0.9290 0.6940 0.1250])
plot(sigma3, Compression_failure,'--','Color',[0.4940 0.1840 0.5560])
plot(sigma1, Friction2)
plot(sigma2, Tension_failure,'Color',[0.6350 0.0780 0.1840])
plot(sigma23, Compression_failure2,'Color',[0.8500 0.3250 0.0980])
% Shade the area between [sigma1, Friction] and [sigma1, Friction2]
fill([sigma1, fliplr(sigma1)], [Friction, fliplr(Friction2)], [0.7 0.7 0.7], 'EdgeColor', 'none');
grid on;
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1632321/image.png)
0 Kommentare
Akzeptierte Antwort
Mathieu NOE
am 1 Mär. 2024
Bearbeitet: Mathieu NOE
am 1 Mär. 2024
hello
you need to compute the intersections points - for that I am using the function in attachment (intersections.m , found that on the FEX page but may not be the only solution)
then use those points to redefine the area to fill
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1632391/image.png)
Forhold = 1/2 ;
Forhold2 = 54/228;
f_vk0 = 0.4 ; % Klæbningsbidrag [MPa]
mu_k = 0.65 ; % Friktionskoefficient
f_bt = 1.00 ; % Trækstyrke af sten [MPa]
f_k = 10.00 ; % Trykstyrke af sten [MPa]
sigma1 = -0.0:0.1:1.4 ;
sigma2 = 0.1:0.1:10 ;
sigma3 = 8.5:0.1:10 ;
sigma23 = 9.2:0.1:10 ;
Friction = (f_vk0 + mu_k * sigma1) / (1 + mu_k * 2 * Forhold) ;
Tension_failure = f_bt / 2.3 * sqrt(1 + sigma2/f_bt) ;
Compression_failure = (f_k - sigma3) * 1/Forhold*(1/2) ;
Friction2 = (f_vk0 + mu_k * sigma1) / (1 + mu_k * 2 * Forhold2) ;
Tension_failure = f_bt / 2.3 * sqrt(1 + sigma2/f_bt) ;
Compression_failure2 = (f_k - sigma23) * 1/Forhold2*(1/2) ;
figure()
hold on
plot(sigma1, Friction,'--','Color',[0.4660 0.6740 0.1880])
plot(sigma2, Tension_failure,'--','Color',[0.9290 0.6940 0.1250])
plot(sigma3, Compression_failure,'--','Color',[0.4940 0.1840 0.5560])
plot(sigma1, Friction2)
plot(sigma2, Tension_failure,'Color',[0.6350 0.0780 0.1840])
plot(sigma23, Compression_failure2,'Color',[0.8500 0.3250 0.0980])
% Shade the area between [sigma1, Friction] and [sigma1, Friction2]
[x0,y0,~,~] = intersections(sigma1,Friction,sigma2, Tension_failure);
ind = (sigma1<x0);
sigma1b = [sigma1(ind) x0]; % add x0 of true intersection point
Frictionp = [Friction(ind) y0]; % add y0 of true intersection point
[x1,y1,~,~] = intersections(sigma1,Friction2,sigma2, Tension_failure);
ind = (sigma1<x1);
sigma1c = [sigma1(ind) x1]; % add x1 of true intersection point
Friction2p = [Friction2(ind) y1]; % add y1 of true intersection point
% fill([sigma1, fliplr(sigma1)], [Friction, fliplr(Friction2)], [0.7 0.7 0.7], 'EdgeColor', 'none');
fill([sigma1b, fliplr(sigma1c)], [Frictionp, fliplr(Friction2p)], [0.7 0.7 0.7], 'EdgeColor', 'none');
grid on;
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Fluid Network Interfaces Library finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!