0

我想用给定的幅度从一个点向另一个点画一个箭头。

例如,两个点的坐标分别为 (x,y) = (0,0) 和 (1,1)。

从 (0,0) 开始绘制一个箭头,其大小(长度)mag_pt1_pt2朝向 (1,1)。

我想对大约 400 个点重复此操作,然后绘制一个矢量场。

4

1 回答 1

1

这是一个有人为此编写的 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

要生产这样的东西:

在此处输入图像描述

希望这可以帮助。

于 2012-11-29T02:17:24.770 回答