• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Matlab填充功能函数fill

武飞扬头像
醉里挑灯看客
帮助2

Matlab填充函数fill函数

前两篇文章讲解了matlab的二维绘图功能,包含有plot、fplot、ezplot、plotyy,然后后续还包括有三个特殊的统计学相关的绘图函数,其中有hist、bar、barh、pie、pie3 这几种,但是对于平面绘图中还有一个很重要的函数就是fill填充函数,该函数能够填充任意的形状,比较的灵活。

  • fill函数的主要语法总共有以下几种:

    • fill(X,Y,C);
      fill(X1,Y1,C1,...,Xn,Yn,Cn);
      fill(___,Name,Value);
      fill(ax,___);
      p = fill(___);
      
    • 第一个语法很明确,就是填充一个区域为一种颜色。fill(X,Y,C)

      • 需要绘制一个区域,那么直接将X,Y指定为向量,C指定为颜色。

        X = [1,3,9];
        Y = [2,5,8];
        subplot(1,2,1)
        fill(X,Y,'r')
        subplot(1,2,2)
        fill(X,Y,[1;0.5;0]);
        % 如上所绘制的图像将是以点[1,2],[3,5],[9,8]三个点连成的区域。
        % 对于C参数的设置,可以做文章,用来对颜色进行渐变设置
        

        上面的代码绘制的图形如下图所示:

    学新通

    • 如果需要在一个figure中绘制多个区域,那么则需要将X,Y指定为矩阵即可,每一列看成一个图形。

      X = [1 5;3 10;9 4];
      Y = [2 3;5 1;8 1];
      C = [1 0;0.5 0.5;0 1]
      fill(X,Y,C);
      % 可以将X和Y一起看,上面的X和Y矩阵总共有两列,每一列都相当于上面的单个图形绘制
      

      所以上面的代码绘制的图形如下图所示:
      学新通

      • 但是一般在同一个figure中绘制多个图形 可以不通过矩阵的方式绘制可能会更灵活一些

        X = [1,3,9];
        Y = [2,5,8];
        fill(X,Y,'r')
        hold on;  % 使用hold on语法将图形绘制一个figure中
        X = [5,9,8,4];
        Y = [3,3,1,1];
        fill(X,Y,'g')
        axis([0,10,-1,10]);
        

        上述代码绘制的结果如下图所示:
        学新通

    • 后面几个语法除了绘制填充图形之外,也有对填充内容进行属性设置的调整参数。其中第二个语法也是绘制多个区域,但是不推荐使用,直接使用hold on来完成不同填充区域绘制即可。后面的几个语法都将在下例中体现。

      • 例如绘制不同面透明度的图形,参考代码如下:

        x = [1 3 4 3 1 0];
        y = [0 0 2 4 4 2];
        hold on
        fill(x,y,'r','FaceAlpha',0.3,'EdgeColor',[0.5 0.2 0.55],'LineWidth',3);
        % 上句是对属性进行了设置,其中
        % FaceAlpha:表示填充面颜色的面透明度
        % EdgeColor:表示填充面的边缘颜色
        % LineWidth:表示填充面边缘的宽度
        p = fill(x 2,y,'m','FaceAlpha',0.3);  % 最后一种的语法
        p.LineWidth = 3;
        p.EdgeColor = [1 0 0];
        p.EdgeAlpha = 0.8;
        % EdgeAlpha:表示填充面边缘的透明度
        fill(x 1,y 2,'y','FaceAlpha',0.3);
        % 该方法未使用矩阵的方式绘制多种图形,而是通过hold on的方式
        

        最终绘制的图形如下所示:
        学新通

  • 当然,在绘制图形后,如若所设置的图形已经固定,后期不需要改动,但是又有别的程序控制该图形运动,例如小车。那么在绘制图形时,最好通过相对的方法填充区块,先定义出一个点,然后根据这个点去创建别的点,这样在调用该图形的时候,只需要改变这一个点即可。

  • 到这,matlab的二维绘图功能就此结束。下个坑有俩,一个是三维绘图的学习,还有个时matlab GUI学习,然后写一个自动绘图APP。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbihke
系列文章
更多 icon
同类精品
更多 icon
继续加载