【发布时间】:2012-11-29 11:32:38
【问题描述】:
我想从一个点向另一个点画一个给定大小的箭头。
例如,两个点的坐标分别为 (x,y) = (0,0) 和 (1,1)。
从 (0,0) 开始画一个箭头,大小(长度)mag_pt1_pt2 朝向 (1,1)。
我想重复这个大约 400 个点,然后绘制一个矢量场。
【问题讨论】:
标签: matlab
我想从一个点向另一个点画一个给定大小的箭头。
例如,两个点的坐标分别为 (x,y) = (0,0) 和 (1,1)。
从 (0,0) 开始画一个箭头,大小(长度)mag_pt1_pt2 朝向 (1,1)。
我想重复这个大约 400 个点,然后绘制一个矢量场。
【问题讨论】:
标签: matlab
这是一个有人为此编写的 matlab 库:
http://www.mathworks.com.au/matlabcentral/fileexchange/278-arrow-m
鉴于 OP 的 cmets 关于他可以这样做的答案:
function [] = arrowLandD(x1, y1, length, x2, y2)
direction = arctan((y2-y1)/(x2-x1));
p2 = [x1+length*cos(direction) y1+length*sin(direction)];
arrow([x1 y1], p2);
end
使箭头从起点而不是p1->p2变成长度和方向的图。
您还可以使用内置的矢量场库 quiver:
http://www.mathworks.com.au/help/matlab/ref/quiver.html
要生产这样的东西:
希望这会有所帮助。
【讨论】:
length 属性是箭头(而不是箭头)的长度。 link