matlab画线段加箭头

一、源代码

        今天要画一个带箭头的图,就百度了一下找了一个画箭头的代码,源码如下,参考https://zhidao.baidu.com/question/99233757.html

function  arrow(P,V,color)

%二维空间中画箭头

% 输入:P=[x0,y0],V=[a,b]

%将以P(x0,y0)为起点,以(x0+a,y0+b)为终点画出箭头

%可以进一步修改为三维空间到箭头,或者是以P为起始点,V为终点的箭头图像

if nargin < 3 

    color = 'b'; 

end

x0 = P(1);y0 = P(2); 

a = V(1); b = V(2); 

l = max(norm(V), eps);

u = [x0 x0+a]; v = [y0 y0+b]; 

hchek = ishold;

plot(u,v,color)

hold on 

h = l - min(.2*l, .2) ;v = min(.2*l/sqrt(3), .2/sqrt(3) );

a1 = (a*h -b*v)/l;

b1 = (b*h +a*v)/l; 

plot([x0+a1, x0+a], [y0+b1, y0+b], color) 

a2 = (a*h +b*v)/l; 

b2 = (b*h -a*v)/l; 

plot([x0+a2, x0+a], [y0+b2, y0+b], color)

if hchek == 0 

    hold off 

end

        使用方法就是画a到b的箭头,就是arrow(a,b-a),效果如下,a为[-1,1],b为[0,2],程序调用为:arrow([-1,1],[1,1])

二、箭头大小改进

        由于有的时候需要调节箭头大小,使图看起来漂亮,我改了一下函数,加入了调节大小的方法

改进前                                                                                                                     改进后

三、改进代码

function  arrow(P,V,color,L)
%二维空间中画箭头

% 输入:P=[x0,y0],V=[a,b]

%将以P(x0,y0)为起点,以(x0+a,y0+b)为终点画出箭头

%可以进一步修改为三维空间到箭头,或者是以P为起始点,V为终点的箭头图像

if nargin < 3 

    color = 'b'; 

end

x0 = P(1);y0 = P(2); 

a = V(1); b = V(2); 

l = max(norm(V), eps);

u = [x0 x0+a]; v = [y0 y0+b]; 

hchek = ishold;

plot(u,v,color)

hold on 

h = (l - min(.2*l, .2)*L );v = min(.2*l/sqrt(3), .2/sqrt(3) )*L;

a1 = (a*h -b*v)/l;

b1 = (b*h +a*v)/l; 

plot([x0+a1, x0+a], [y0+b1, y0+b], color) 

a2 = (a*h +b*v)/l; 

b2 = (b*h -a*v)/l; 

plot([x0+a2, x0+a], [y0+b2, y0+b], color)

if hchek == 0 

    hold off 

end

如果还需要其他需求点赞收藏后私聊即可,不然不会回复,希望体谅一下!

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是好人的墨叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值