注册 登录
编程论坛 Matlab

请问一个关于填充颜色的问题?

陶陶 发布于 2006-07-11 16:23, 2285 次点击
x=0:pi/60:2*pi;
y=sin(x);
x1=0:pi/60:pi/2;
y1=sin(x1);
plot(x,y,'-r')
>> hold on
>> fill([pi/2,x1,3*pi/2],[0,y1,0],'r')
程序中[0,y1,0]为什么会把图形填充成那个样子?
x=0:pi/60:2*pi;
y=sin(x);
x1=pi/3:pi/60:pi/2;
y1=sin(x1);
plot(x,y,'-r')
hold on
fill([x1,pi/2],[y1,0],'b')
第三行用pi/3:pi/60:pi/2;为什么不把这个区域的所有面积都填充呢?
2 回复
#2
zhangenter2006-07-11 17:49
用fill(x,y,'r')就可以了,fill本来就是填充线和坐标轴为成的区域,你不要求某段区域就不要指定范围了。
#3
zhangenter2006-07-11 19:32
我理解错你的意思了,
fill([pi/2,x1,3*pi/2],[0,y1,0],'r')
程序中[0,y1,0]为什么会把图形填充成那个样子?
  x1最大是pi/2,那个点坐标是[pi/2,1],所以大于pi/2的那部分你填充的是点[pi/2,1]和[pi/3,0]连线与sin(x1)与x轴三部分线段构成的区域,用fill([x1,3*pi/2],[y1,0],'r')也可以表示你填充的那块.

fill([x1,pi/2],[y1,0],'b')
第三行用pi/3:pi/60:pi/2;为什么不把这个区域的所有面积都填充呢?
  应该用fill([pi/3,x1,pi/2],[0,y1,0],'b'),你要构成的区域要写清楚


1