How can i fill the common areas of two curves?

byungkeuk cho (view profile)

on 19 Mar 2019
Latest activity Commented on by byungkeuk cho

on 20 Mar 2019

Akira Agata (view profile)

I can draw two cureves as below.
y1 = @(x) 3*x.^2 + 2*x +1;
y2 = @(x) -5*x.^2 + x + 20;
x=-5:0.1:5;
figure(3),plot(x,y1(x),x,y2(x));
Then, now i would like to fill the common areas with red color but i have no idea.
How can i do that?
And what about if i would like to fill the common areas of three different curves?

Akira Agata (view profile)

on 19 Mar 2019

Another possible solution:
y1 = @(x) 3*x.^2 + 2*x +1;
y2 = @(x) -5*x.^2 + x + 20;
x = -5:0.1:5;
pgon1 = polyshape(x,y1(x));
pgon2 = polyshape(x,y2(x));
figure
plot(x,y1(x),x,y2(x))
hold on
plot(intersect(pgon1,pgon2),'EdgeColor','none')

Akira Agata

Akira Agata (view profile)

on 19 Mar 2019
Same approach works. The following is an example.
y1 = @(x) 3*x.^2 + 2*x +1;
y2 = @(x) -5*x.^2 + x + 20;
y3 = @(x) -10*x.^2 + 20*x + 30;
x = -5:0.1:5;
pgon1 = polyshape(x,y1(x));
pgon2 = polyshape(x,y2(x));
pgon3 = polyshape(x,y3(x));
figure
plot(x,y1(x),x,y2(x),x,y3(x))
hold on
plot(intersect([pgon1,pgon2,pgon3]),'EdgeColor','none')
byungkeuk cho

byungkeuk cho (view profile)

on 19 Mar 2019
Thank you very much :)
byungkeuk cho

byungkeuk cho (view profile)

on 20 Mar 2019
One more question plz.
How can i change the colar of the shade?

byungkeuk cho (view profile)

on 20 Mar 2019

I am trying to shade the triangle between three lines.
but it is not working.
y1 = @(x) x ;
y2 = @(x) sqrt(3)/2*x ;
y3 = @(x) -x + 1 ;
x = 0:0.1:2;
pgon1 = polyshape(x,y1(x));
pgon2 = polyshape(x,y2(x));
pgon3 = polyshape(x,y3(x));
figure
plot(x,y1(x),x,y2(x),x,y3(x))
hold on
plot(intersect([pgon1,pgon2,pgon3]),'EdgeColor','none ')

Akira Agata

Akira Agata (view profile)

on 20 Mar 2019
You need to make a polyshape object correctly. In this case, target area shall be lower than y1, lower than y3 and higher than y2. Also, since these shapes are line, you would better setting 'Simplify' option to false.
Regarding how to change the color of the shade, you should set 'FaceColor' option when plotting.
Here is an example.
y1 = @(x) x;
y2 = @(x) sqrt(3)/2*x;
y3 = @(x) -x + 1;
x = 0:0.1:2;
pgon1 = polyshape([x(1) x x(end)],[-10 y1(x) -10],'Simplify',false);
pgon2 = polyshape([x(1) x x(end)],[10 y2(x) 10],'Simplify',false);
pgon3 = polyshape([x(1) x x(end)],[-10 y3(x) -10],'Simplify',false);
figure
plot(x,y1(x),x,y2(x),x,y3(x))
hold on
plot(intersect([pgon1,pgon2,pgon3]),...
'EdgeColor', 'none',...
'FaceColor', 'c') % change shade color to cyan
byungkeuk cho

byungkeuk cho (view profile)

on 20 Mar 2019
I really appreciate it.