matlab 在特定曲线之间画阴影,急急急!!!
发布网友
发布时间:2023-03-29 22:54
我来回答
共3个回答
热心网友
时间:2023-11-01 15:58
程序改成如下:
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]);
上图是程序得的结果。中间多了两根黑线。我只能手动编辑能去掉,如下图:
热心网友
时间:2023-11-01 15:59
可用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');
热心网友
时间:2023-11-01 15:59
请用:fill() 或 patch() 函数。
具体用法在matlab中 help fill; 或者 help patch;