【MATLAB】进阶绘图 ( fill 填充二维多边形 | fill 函数 | 绘制文字 | text 函数 )

2023-03-29 10:14:35 浏览数 (1)

文章目录

  • 一、fill 填充二维多边形
    • 1、fill 函数
    • 2、绘制八边形
    • 3、代码示例
  • 二、文字绘制
    • 1、text 函数
    • 2、代码示例

一、fill 填充二维多边形


1、fill 函数

fill 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/fill.html

fill 函数用于填充二维多边形 , 可以绘制出带色彩的二维空间

x,y

坐标系中的多边形 ;

使用 plot 函数绘制多边形 , 只会将多边形的边连接起来 ;

使用 fill 函数绘制多边形 , 将多边形连接起来 , 并在中心填充上指定的颜色 ;

2、绘制八边形

在坐标系的中心 , 以原点为中心 , 绘制八边形 ,

360

度 (

2 pi

) 拆分

16

等份 , 每份

cfrac{pi}{8}

, 从

cfrac{pi}{8}

开始 , 每次累加

cfrac{pi}{4}

, 生成等差数列 ;

代码语言:javascript复制
t = (1 : 2 : 15) '* pi / 8

(1 : 2 : 15) 作用是生成

[1,3,5,7,9,11,13,15]

数列 ,

(1 : 2 : 15) '* pi / 8 就是在数列每个元素基础上乘以

cfrac{pi}{8}

, 结果是

[cfrac{pi}{8},cfrac{3pi}{8},cfrac{5pi}{8},cfrac{7pi}{8},cfrac{9pi}{8},cfrac{11pi}{8},cfrac{13pi}{8},cfrac{15pi}{8}]

数列 ;

使用上述生成的

t

向量 , 传入

sin , cos

函数 , 得到绘制的坐标点 ;

代码语言:javascript复制
x = sin(t);
y = cos(t)

使用 plot 绘制 , 绘制的就是一个使用线段连接起来的八边形 ;

使用 fill 绘制 , 绘制的是一个填充颜色的八边形 ;

代码语言:javascript复制
% 绘制线图
plot(x, y);

% 绘制图形
fill(x, y, 'k');

3、代码示例

代码语言:javascript复制
% 生成角度值序列
t = (1 : 2 : 17)'* pi / 8;

% 生成 x, y 坐标值
x = sin(t);
y = cos(t);

% 绘制第 1 张图
subplot(1, 2, 1);
% 绘制线图
plot(x, y);
axis equal;


% 绘制第 2 张图
subplot(1, 2, 2);
% 绘制图形
fill(x, y, 'k');
axis equal;

执行结果 :

二、文字绘制


1、text 函数

text 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/text.html

text 语法 :

代码语言:javascript复制
text(x, y, 'text')

这是 text 最基本语法 , 在

(x,y)

位置绘制 ‘text’ 字符串 , 后面可以带长度不固定的成对出现的 '属性名称' , 属性值 参数 , 用于设置文本的各种属性 ;

代码示例 :

代码语言:javascript复制
% 在 (0, 0) 位置绘制 "Hello" 字符串
% 颜色设置为绿色
% 字体大小 40 
% 水平居中样式 居中对齐
text(0, 0, 'Hello', 'Color', 'g', 'FontSize', 40, 'HorizontalAlignment', 'center');

2、代码示例

代码示例 :

代码语言:javascript复制
% 生成角度值序列
t = (1 : 2 : 17)'* pi / 8;

% 生成 x, y 坐标值
x = sin(t);
y = cos(t);

% 绘制第 1 张图
subplot(1, 2, 1);
% 绘制线图
plot(x, y);
axis equal;


% 绘制第 2 张图
subplot(1, 2, 2);
% 绘制线图
fill(x, y, 'k');
axis equal;

% 在 (0, 0) 位置绘制 "Hello" 字符串
% 颜色设置为绿色
% 字体大小 40 
% 水平居中样式 居中对齐
text(0, 0, 'Hello', 'Color', 'g', 'FontSize', 40, 'HorizontalAlignment', 'center');

执行结果 :

0 人点赞