【问题标题】:MATLAB: Draw an arrow of set magnitude from a point, in the direction to another pointMATLAB:从一个点向另一个点的方向绘制一个设定大小的箭头
【发布时间】:2012-11-29 11:32:38
【问题描述】:

我想从一个点另一个点画一个给定大小的箭头。

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

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

我想重复这个大约 400 个点,然后绘制一个矢量场。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这是一个有人为此编写的 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
    • @janon128 箭头将从点 1 移动到点 2。您可以根据需要定义箭头的大小。如果您对 arrow.m 不满意,也可以使用 quiver
    • 我认为您误解了我的问题。箭头不应该在点 2 结束。我定义了它的长度;它只指向第 2 点,而不是在第 2 点结束。
    • @janon128 然后您可以根据大小在点 1 和 2 之间创建一个点,并使用它来定义箭头的末端。或者使用专为您正在做的事情而设计的 quiver。或者您可以编辑箭头以获取长度和方向并以此为基础进行绘图。这是对您可以采取的方向的建议,而不是确切的答案。
    • @janon128 好了,我根据您的评论修复了它。这很容易不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2020-05-30
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多