[已答复] Matlab如何在图像中指定区域填充颜色或线条。

[复制链接]
小靖 发表于 2011-1-11 17:11:18
图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)

hold on
y=-3.70.*x.*x;
plot(x,y,'r-','LineWidth',2.5)
hold on
y=-11.0.*x.*x;
plot(x,y,'g-','LineWidth',2.5)
hold on
y=-55.*x.*x;
plot(x,y,'k-','LineWidth',2.5)
xlabel('\fontsize{15} \Phi_0')
ylabel('\fontsize{15} r')
图1.jpg
图2.JPG
图3.jpg

8 条回复


小靖 发表于 2011-1-12 11:55:43
请高手指点!
谢谢

anquanguwen 发表于 2011-1-12 12:03:36
运行的效果不一样,我是在6.0的版本中运行的

小靖 发表于 2011-1-13 09:02:33

回复 3# anquanguwen 的帖子

谢谢关注!
我是应所附程序出图
然后再 Edit Plot
再修改y轴的取值范围:
Y Limits:     -0.6            to          0
便可以得到附图1

ydlcsu 发表于 2011-1-13 09:15:35
使用patch命令吧
x=-0.5:0.01:0.5;
y=-1.95.*x.*x;
plot(x,y,'-','LineWidth',2.5)
XX=x;
YY=y;
hold on
y=-3.70.*x.*x;
plot(x,y,'r-','LineWidth',2.5)
hold on
XX=[XX x(end:-1:1)];
YY=[YY y(end:-1:1)];
patch(XX,YY,'r')

y=-11.0.*x.*x;
plot(x,y,'g-','LineWidth',2.5)
XX=x;
YY=y;
hold on
y=-55.*x.*x;
plot(x,y,'k-','LineWidth',2.5)
XX=[XX x(end:-1:1)];
YY=[YY y(end:-1:1)];
patch(XX,YY,'c')
xlabel('\fontsize{15} \Phi_0')
ylabel('\fontsize{15} r')

为你而醉 发表于 2011-5-12 10:42:17
原帖由 ydlcsu 于 2011-1-13 09:15 发表
使用patch命令吧
x=-0.5:0.01:0.5;
y=-1.95.*x.*x;
plot(x,y,'-','LineWidth',2.5)
XX=x;
YY=y;
hold on
y=-3.70.*x.*x;
plot(x,y,'r-','LineWidth',2.5)
hold on
XX=[XX x(end:-1:1)];
YY=[YY y(end:-1:1)];
patch( ...


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

  1. x0=20;
  2.         y0=20;
  3.         radius=10;
  4.         distance=50;
  5.         length=440;
  6.       
  7.         x1=[0 length length 0];y1=[0 0 length length];
  8.         fill(x1,y1,'k');
  9.         hold on
  10. for m=x0:distance:length
  11.     for n=y0:distance:length
  12.         seta=0:0.01:2*pi;
  13.         x=m+radius*sin(seta);
  14.         y=n+radius*cos(seta);
  15.         axes(handles.axes1);
  16.         plot(x,y);
  17.         fill(x,y,'w');
  18.         hold on
  19.     end
  20. end
  21. axis square
  22. set(handles.axes1,'xlim',[0,length],'ylim',[0,length]);

复制代码

MATLAB学徒 发表于 2011-5-12 11:57:23

回复 1# 小靖 的帖子

将它作为一个patch对象可以实现你所需要的效果!!

一世梦倾城 发表于 2013-12-11 14:09:33
fill也可以做到这种效果

yinjidongx 发表于 2022-1-14 15:55:45
求指点,大佬 大佬 需要
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表