矢量场图(quiver)用于用箭头直观表示场中各点的方向与大小,常见于速度场、力场可视化。
流线图(streamline)则描绘场中粒子的连续轨迹,展示整体流动趋势,适合流体、风场等分析。本文给出详细讲解,如需查看完整内容,请订阅专栏
矢量场图(Quiver)
概念
矢量场图通过箭头表示场中每个点的方向和大小常用于描述速度场、力场、电磁场等。
使用场景
- 流体力学:显示流体在各位置的速度方向与大小
- 电磁场可视化:表示磁场/电场方向
- 导航与机器人学:展示机器人或无人机的速度向量
- 物理仿真:显示粒子运动趋势
基本语法
quiver(X, Y, U, V) % 基本矢量场
quiver(X, Y, U, V, scale) % 缩放箭头长度
quiver(X, Y, U, V, 'Color','r') % 指定颜色
X, Y
:箭头起点坐标U, V
:箭头水平与垂直分量scale
:箭头长度缩放因子
简单的例程示例
clc;clear;close all;
% 简单矢量场图
figure;
[x, y] = meshgrid(-2:1:2, -2:1:2); % 网格
u = -y; v = x; % 分量(旋转场)
quiver(x, y, u, v, 0.5, 'r'); % 绘制箭头
axis equal; grid on;
title('简单矢量场图');
运行结果:
进阶示例
clear; clc;
% 创建网格
[X, Y] = meshgrid(-2:0.4:2, -2:0.4:2);
% 定义一个简单的涡旋矢量场
U = -Y;
V = X;
% 计算矢量的大小
magnitude = sqrt(U.^2 + V.^2);
figure;
% 进阶方法:使用scatter + quiver组合
quiver(X, Y, U, V, 1.5, 'k'); % 先画黑色箭头
hold on;
scatter(X(:), Y(:), 50, magnitude(:), 'filled'); % 用散点图显示颜色
colorbar;
colormap(jet);
title('quiver + scatter示例');
axis equal;
特点:
- 添加颜色,辅助(直观)展示矢量大小
axis equal
保持比例不失真- 适合展示旋转场、速度场
运行结果:
流线图(Streamline)
概念
流线图用于描绘流场的轨迹,箭头沿流动方向排列,表示场的整体流向。
使用场景
- 流体模拟:可视化流体颗粒的运动轨迹
- 风场分析:气象学中展示风向与风速
- 磁力线可视化:展示磁场的方向分布
- 路径规划:机器人或无人机路径生成参考
基本语法
streamline(X, Y, U, V, startX, startY)
X, Y
:网格坐标U, V
:速度分量startX, startY
:流线起点坐标
简单例程
figure;
% 网格与流场
[x, y] = meshgrid(-2:0.2:2, -2:0.2:2);
u = -y;
v = x; % 旋转场
% 流线起点
startx = -1.5:0.5:1.5;
starty = -1.5:0.5:1.5;
% 绘制流线
streamline(x, y, u, v, startx, starty);
hold on;
运行结果:
进阶示例
figure;
% 网格与流场
[x, y] = meshgrid(-2:0.2:2, -2:0.2:2);
u = -y;
v = x; % 旋转场
% 流线起点
startx = -1.5:0.5:1.5;
starty = -1.5:0.5:1.5;
% 绘制流线
streamline(x, y, u, v, startx, starty);
hold on;
% 叠加矢量场
quiver(x, y, u, v, 0.5, 'Color', [0.3 0.3 0.3], 'LineWidth', 0.8);
% 美化
axis equal;
grid on;
xlabel('X'); ylabel('Y');
title('流线与矢量场结合示例');
set(gca, 'FontSize', 11, 'LineWidth', 1.2, ...
'GridLineStyle', ':', 'GridColor', [0.5 0.5 0.5]);
特点:
- 流线 + 矢量场结合展示
- 流场结构清晰
- 适合做风场、旋涡、流体轨迹演示
运行结果:
例程文件
上述例程归档为一个mlx文件,打开后可直接运行、得到结果:
如果需要,可自行下载:
通过网盘分享的文件:2.3 矢量场图与流线图
链接: https://pan.baidu.com/s/1KNscZoHhjG10vyD6enX_Eg?pwd=w5vp 提取码: w5vp
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者