我想用给定的幅度从一个点向另一个点画一个箭头。
例如,两个点的坐标分别为 (x,y) = (0,0) 和 (1,1)。
从 (0,0) 开始绘制一个箭头,其大小(长度)mag_pt1_pt2
朝向 (1,1)。
我想对大约 400 个点重复此操作,然后绘制一个矢量场。
我想用给定的幅度从一个点向另一个点画一个箭头。
例如,两个点的坐标分别为 (x,y) = (0,0) 和 (1,1)。
从 (0,0) 开始绘制一个箭头,其大小(长度)mag_pt1_pt2
朝向 (1,1)。
我想对大约 400 个点重复此操作,然后绘制一个矢量场。
这是一个有人为此编写的 matlab 库:
http://www.mathworks.com.au/matlabcentral/fileexchange/278-arrow-m
鉴于 OP 对答案的评论,他可以这样做:
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
要生产这样的东西:
希望这可以帮助。