箭头加直线_【Matlab学习秘籍】绘制带箭头的流线

更新时间:2023-06-23 06:22:27 阅读: 评论:0

箭头加直线_【Matlab学习秘籍】绘制带箭头的流线2012伦敦奥运会吉祥物
问题来源:某讨论群某同学的提问,想做出⼀个带有箭头电场的流线图。
绘制流线,Matlab提供了streamline函数,由于我也是第⼀次遇到这个问题,于是乎打开streamline的帮助⽂档,然后仔细查看⼀番,⼼⾥便有了思路,开始动⼿实践,下⾯就以这个函数的官⽅帮助⽂档⾥的demo来演⽰,如何实现在流线上绘制箭头。
clear; clc;
一旦拥有别无所求% 直接把streamline函数的帮助⽂档demo拷贝过来
[x,y] = meshgrid(0:0.1:1, 0:0.1:1);
u = x;
国际音标在线学习v = -y;
startx = 0.1:0.1:0.9;
starty = ones(size(startx));
% 需要获取所有流线的属性
lines = streamline(x, y, u, v, startx, starty);
% 下⾯开始画箭头,涉及到坐标的转换
% 获取 Axes 位置
composition的意思posAxes = get(gca, 'Position');
posX = posAxes(1);
posY = posAxes(2);
width = posAxes(3);
height = posAxes(4);
% 获取 Axes 范围
telephone是什么意思limX = get(gca, 'Xlim');
imagezoglimY = get(gca, 'Ylim');
艳丽的拼音
minX = limX(1);
maxX = limX(2);
minY = limY(1);
maxY = limY(2);
% 遍历,逐条流线加箭头
for i = 1 : length(lines)
cryonmyshoulder歌词% 获取每条流线的数据
xData = lines(i).XData;
yData = lines(i).YData;
% 这⾥取的是最后两个点,⼀定要是相邻的两个点⽤来确定箭头⽅向    x0 = xData(end-1 : end);
y0 = yData(end-1 : end);
% 转换坐标到相对于figure的坐标
xNew = posX + (x0 - minX) / (maxX - minX) * width;
yNew = posY + (y0 - minY) / (maxY - minY) * height;
% 画箭头
hold on
annotation('arrow', xNew, yNew, 'color', 'b');
end
hold off
title('带箭头的流线图');
看看效果图:
有声读物下载mp3
带有箭头的流线图
【秘籍】
1. 获取流线的坐标数据,如何获取,查看帮助⽂档得知,绘制时赋值即可获取到所有绘制对象的属性,然后逐条流线获取数据即可;
2. 绘制箭头,这个⽅法前⾯也有⽂章提到过(【Matlab学习秘籍】绘制带箭头直线),这⾥把主要过程也重复了⼀遍;whiteflag
3. 关于箭头的两个坐标,选取两个相邻的点,⽅便确定箭头的⽅向。

本文发布于:2023-06-23 06:22:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/154533.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:箭头   流线   绘制   获取   坐标   帮助
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图