MATLAB图案填充分析和总结.docxVIP

  • 3
  • 0
  • 约2.37千字
  • 约 7页
  • 2024-04-30 发布于上海
  • 举报

FillColor

MATLAB图案填充

图1和图2的数据见下面方程。

要求在指定的两条曲线和水平轴(如y=-0.6)所包围的区域,用指定区域填充颜色(效果见附图2)

或线条(效果见附图3)来标定。谢谢高手指点!

x=-0.5:0.01:0.5;

y=-1.95.*x.*x;

plot(x,y,-,LineWidth,2.5)

holdon

y=-3.70.*x.*x;

plot(x,y,r-,LineWidth,2.5)holdon

y=-11.0.*x.*x;

plot(x,y,g-,LineWidth,2.5)holdon

y=-55.*x.*x;

回复

回复3#anquanguwen 的帖子

谢谢关注!

我是应所附程序出图然后再EditPlot

再修改y轴的取值范围:

YLimits: -0.6 to 0

便可以得到附图1

图1.jpg(43.67KB,下载次数:5)

图2.JPG(42.19KB,下载次数:0)

图3.jpg

图3.jpg(30.67KB,下载次数:3)

使用patch命令吧x=-0.5:0.01:0.5;

y=-1.95.*x.*x;

plot(x,y,-,LineWidth,2.5)XX=x;

YY=y;

holdon

y=-3.70.*x.*x;

plot(x,y,r-,LineWidth,2.5)holdon

XX=[XXx(end:-1:1)];

YY=[YYy(end:-1:1)];

patch(XX,YY,r)

y=-11.0.*x.*x;

plot(x,y,g-,LineWidth,2.5)XX=x;

YY=y;

holdon

y=-55.*x.*x;

plot(x,y,k-,LineWidth,2.5)XX=[XX

plot(x,y,k-,LineWidth,2.5)XX=[XXx(end:-1:1)];

YY=[YYy(end:-1:1)];

patch(XX,YY,c)xlabel(\fontsize{15}\Phi_0)ylabel(\fontsize{15}r)

如何对小圆以外的区域进行填充呢,谢谢!

x0=20;

y0=20;

radius=10;distance=50;length=440;

x1=[0lengthlength0];y1=[00lengthlength];fill(x1,y1,k);

holdon

form=x0:distance:lengthforn=y0:distance:length

seta=0:0.01:2*pi;x=m+radius*sin(seta);y=n+radius*cos(seta);axes(handles.axes1);plot(x,y);fill(x,y,w);

holdon

end

end

axissquareset(handles.axes1,xlim,[0,length],ylim,[0,length]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%

有时,我们需要对图形进行填充,如填充两条曲线之间的区域、在图中用阴影填充某序列上下限之间的区域,在Matlab中,可以用fill函数实现这一目的。

程序示例:

填充两区间之间的区域

x=-5:0.01:5;

ls=length(x);

y1=2*x.^2+12*x+6; %y1是一个长ls的行向量y2=3*x.^3-9*x+24;%y2是一个长ls的行向量figure;

plot(x,y1,r-);holdon;

plot(x,y2,g-);holdon;

y1_y2=[y1;y2]; %是一个2×ls的矩阵,第一行为y1,第二行为y2maxY1vsY2=max(y1_y2);%1×ls的是一个行向量,表示y1_y2每一列的最大值,即x相同时、y1与y2的的最大值

minY1vsY2=min(y1_y2);%1×ls的是一个行向量,表示y1_y2每一列的最小值,即x相同时、

y1与y2的的最小值yForFill=[maxY1vsY2,fliplr(minY1vsY2)];xForFill=[x,fliplr(x)];

fill(xForFill,yForFill,c,FaceAlpha,0.5,EdgeAlpha,1,EdgeColor,c);%填充并设置图形格式

效果如下:

填充某序列上下限之间的区域

x=0:0

文档评论(0)

1亿VIP精品文档

相关文档