Matlab绘制箭头(annotation 、quiver、​quiver3)

devtools/2024/11/14 17:59:22/

本文章开始讲述基于Matlab绘制箭头,主要包括一下函数:

  1. annotation :annotation(lineType,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。将 lineType 指定为 ‘line’、‘arrow’、‘doublearrow’ 或 ‘textarrow’。将 x 和 y 分别指定为 [x_begin x_end] 和 [y_begin y_end] 形式的二元素向量。
  2. quiver:quiver(X,Y,U,V) 在由 X 和 Y 指定的笛卡尔坐标上绘制具有定向分量 U 和 V 的箭头。例如,第一个箭头源于点 X(1) 和 Y(1),按 U(1) 水平延伸,按 V(1) 垂直延伸。默认情况下,quiver 函数缩放箭头长度,使其不重叠。
  3. quiver3:quiver3(X,Y,Z,U,V,W) 在由 X、Y 和 Z 指定的笛卡尔坐标处,绘制具有定向分量 U、V 和 W 的箭头。例如,第一个箭头源于点 X(1)、Y(1) 和 Z(1),根据 U(1) 在 x 轴方向延伸,根据 V(1) 在 y 轴方向延伸,并根据 W(1) 在 z 轴方向延伸。默认情况下,quiver3 函数缩放箭头长度,使其不重叠。

✦ 二维箭头

  1. 调整箭头的大小、颜色和线型
    使用 annotation 和 quiver 函数时,可以设置箭头的颜色、线型、头部大小等参数
figure;
% 使用 annotation 绘制箭头
ah1 = annotation('arrow', [0.2, 0.8], [0.3, 0.7]);hold on
ah1.Color = [0, 0.5, 0.8];        % 设置箭头颜色
ah1.LineWidth = 2;                % 设置箭头线宽
ah1.HeadLength = 10;              % 设置箭头头部长度
ah1.HeadWidth = 10;               % 设置箭头头部宽度
ah1.LineStyle = '--';             % 设置箭头线型
ah2 = annotation('arrow', [0.3, 0.9], [0.3, 0.7]);hold on
ah2.Color = [0, 1, 0.8];        % 设置箭头颜色
ah2.LineWidth = 2;                % 设置箭头线宽
ah2.HeadLength = 10;              % 设置箭头头部长度
ah2.HeadWidth = 10;               % 设置箭头头部宽度
ah2.LineStyle = '-';             % 设置箭头线型
hold off;
set(gca,'FontSize',15,'FontName','Times New Roman');

结果:
在这里插入图片描述
2. 双向箭头
可以使用 doublearrow 类型在 annotation 中创建双向箭头。

figure;
hold on;
% 使用 annotation 绘制双向箭头
annotation('doublearrow', [0.2, 0.8], [0.5, 0.5], 'Color', [0, 0, 0], 'LineWidth', 1.5);
hold off;
box on
set(gca,'FontSize',15,'FontName','Times New Roman');

结果:
在这里插入图片描述
3. 可以使用 doublearrow 类型在 annotation 中创建双向箭头。
使用 quiver 绘制多个箭头(用于矢量场或风场图)
quiver 函数可以用来在图中绘制多个箭头,这对于显示矢量场非常有用。

figure;
[X, Y] = meshgrid(1:12, 1:12);
U = cos(X); % X 方向上的矢量
V = sin(Y); % Y 方向上的矢量
quiver(X, Y, U, V, 'LineWidth', 1, 'MaxHeadSize', 0.5, 'Color', [0, 0.5, 0.5]);
box on
set(gca,'FontSize',15,'FontName','Times New Roman');

结果:
在这里插入图片描述
4. 使用 textarrow 增加带文本的箭头
在图形上标记特定点或趋势时,可以使用 textarrow 将文本和箭头组合起来。

figure;
% 使用 annotation 绘制带文本的箭头
th = annotation('textarrow', [0.4, 0.7], [0.4, 0.6], 'String', 'Important Point');
th.FontSize = 12;               % 设置文本大小
th.Color = [0.2, 0.2, 0.8];     % 设置箭头颜色
hold off;
box on
set(gca,'FontSize',15,'FontName','Times New Roman');

结果:
在这里插入图片描述
✦ 三维箭头

% 创建一个新的图形窗口figure;hold on;% 设置坐标轴范围axis([-5 5 -5 5 -5 5]);% 设置三维视角view(3);  % 设置为三维视角,显示立体效果% 添加标签和标题xlabel('X');ylabel('Y');zlabel('Z');title('Multiple 3D Arrows with Different Styles');% 启动网格grid on;% 第一种箭头样式: 红色,线宽2,头部大小1quiver3(0, 0, 0, 2, 3, 1, 'Color', 'r', 'LineWidth', 2, 'MaxHeadSize', 1);% 第二种箭头样式: 蓝色,线宽1,头部大小0.5quiver3(1, 1, 1, -2, 1, 0, 'Color', 'b', 'LineWidth', 1, 'MaxHeadSize', 0.5);% 第三种箭头样式: 绿色,线宽1.5,头部大小0.7quiver3(-2, -2, 0, 3, -2, 1, 'Color', 'g', 'LineWidth', 1.5, 'MaxHeadSize', 0.7);% 第四种箭头样式: 品红色,线宽2,头部大小0.8quiver3(2, -1, 2, -2, 2, 0, 'Color', 'm', 'LineWidth', 2, 'MaxHeadSize', 0.8);% 第五种箭头样式: 黑色,线宽3,头部大小1.2quiver3(0, 2, -2, -1, -2, 3, 'Color', 'k', 'LineWidth', 3, 'MaxHeadSize', 1.2);% 第六种箭头样式: 黄色,线宽1,头部大小1quiver3(-3, 1, -3, 1, -1, -1, 'Color', 'y', 'LineWidth', 1, 'MaxHeadSize', 1);% 显示图形hold off;

结果
在这里插入图片描述


http://www.ppmy.cn/devtools/133974.html

相关文章

HarmonyOS和OpenHarmony区别是什么?鸿蒙和安卓IOS的区别是什么?

HarmonyOS 和 OpenHarmony 的区别 简单来说: OpenHarmony 开源鸿蒙 - 系统底座 设备开发(硬件方面)应用开发(软件方面) HarmonyOS 华为鸿蒙 - 在系统底座的基础上,添加华为各种服务:如华为登…

“嵌入”在大语言模型中是解决把句子转换成向量表示的技术

上一篇:《人工智能是这样理解“情绪”的》 序言:这段话要优化吗?““嵌入”是一种将句子、单词或其他语言单位转换为向量表示的技术。这个向量通常位于高维空间中,它以一种能够表达相似性的方式编码出文本的含义或上下文。嵌入层…

监控架构- Grafana-监控大屏

1. Grafana极速上手指南 1.1 环境准备 主机ip地址grafana10.0.0.66zabbix_server10.0.0.62 1.2 部署grafana 9.3.6 ##去官网找rpm包下载并上传 ## 安装 yum localinstall -y grafana-9.3.6-1.x86_64.rpm## 启动服务并设置开机自启动 systemctl enable --now grafana-server…

JUC学习笔记

文章目录 锁生产者消费者问题8锁现象集合类不安全Callable创建线程的三种方式 常用辅助类CountDownLatchCyclibarrierSamphore 本篇博客是之前学习JUC时记录的内容,对于并发编程知识只是浅浅谈及,并不深入。也算是给自己开新坑。建一个JUC的专栏&#xf…

室内导航怎么实现?技术方案详解

在日常生活中,我们常常需要在大型购物中心、复杂医院或繁忙机场中寻找目的地。然而,与室外环境不同,室内空间的GPS信号受限,使得传统导航方式难以发挥作用。那么,在GPS信号受限的室内环境中,如何实现精准、…

【设计模式】行为型模式(一):模板方法模式、观察者模式

行为型模式(一):模板方法模式、观察者模式 1.模板方法模式(Template)1.1 主要特点1.2 适用场景1.3 示例1.3.1 抽象类定义模板方法1.3.2 子类实现具体步骤1.3.3 客户端1.3.4 结果输出 2.观察者模式(Observer…

【qt】控件

1.frameGeometry和Geometry区别 frameGeometry是开始从红圈开始算,Geometry从黑圈算 程序证明:使用一个按键,当按键按下,qdebug打印各自左上角的坐标(相当于屏幕左上角),以及窗口大小 Widget::Widget(QWid…

【大语言模型学习】LORA微调方法

LORA: Low-Rank Adaptation of Large Language Models 摘要 LoRA (Low-Rank Adaptation) 提出了一种高效的语言模型适应方法,针对预训练模型的适配问题: 目标:减少下游任务所需的可训练参数,降低硬件要求。方法:冻结预训练模型权重,注入低秩分解矩阵,从而在不影响推理…