matlab 在特定曲线之间画阴影,急急急!!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 在特定曲线之间画阴影,急急急!!!!相关的知识,希望对你有一定的参考价值。

我想在左边这块区域(蓝色线和坐标轴之间)铁甲阴影,怎么弄,望大神指点呀,
下面是我这个图的程序:
h4=ezplot('alpha*beta=0'); set(h4,'linestyle','-','color','b') hold on h5=ezplot('alpha*beta-2*alpha-2*beta+4+alpha*beta*(-0.5)=0'); set(h5,'linestyle','-','color','c') hold on h6=ezplot('(1-alpha)*(1-beta)=1'); set(h6,'linestyle','-','color','m'); hold on axis([0 2 0 2]);

程序改成如下:

clear all;clc;
[x1,y1]=solve('x=0','x*y-2*x-2*y+4+x*y*(-0.5)=0');%
[x2,y2]=solve('x=0','y=0');%
[x3,y3]=solve('x*y-2*x-2*y+4+x*y*(-0.5)=0','y=0'); %
plot(x1,y1,'bo',x2,y2,'bo',x3,y3,'bo');
hold on;
X=[x1,x2,x3,x1];
Y=[y1,y2,y3,y1];
h=fill(X,Y,'c');


hold on
x=0:0.001:2;
 y=(2*x-4)./(x-0.5*x-2);
h1= fill(x,y,'c');

 axis square
 axis([0 2 0 2]);

上图是程序得的结果。中间多了两根黑线。我只能手动编辑能去掉,如下图:

参考技术A

可用fill( )函数画阴影。

fill( )函数的输入本质上是一系列点。其对从第一点开始依次连接剩余点最后连接第一点所围闭合区域画阴影。

所以根据题主要求只要在蓝色线的基础上添加第一个点为(0,0)即可。

在题主代码的基础上添加以下代码即可:

hold on
alpha=0:0.001:2;
beta=(2*alpha-4)./(alpha-0.5*alpha-2);
%add (0,0) point manually
alpha1=[0,alpha];
beta1=[0,beta];
h1= fill(alpha1,beta1,'c');

参考技术B 请用:fill() 或 patch() 函数。
具体用法在matlab中 help fill; 或者 help patch;

以上是关于matlab 在特定曲线之间画阴影,急急急!!!!的主要内容,如果未能解决你的问题,请参考以下文章

在 Matlab 中,如何从曲线画线到特定的 xaxis 位置?

急急急 pyqt5 matplotlib 多线程问题,求大佬指点啊

matlab中如何计算一条线的长度

matlab求一个函数的极小值问题,急急急!!!!!!

Qt 绘图问题,急急急!

急急急!!!matlab gui界面设计