箭头

matlab有自带的quiver,然而我电脑上画出来的箭头长度不对,于是自己写了一个。

角度和比例可以根据需要修改。


Example:

arrow([-1 0], [11 0], 'k', 2)
arrow([0 1], [0 -11], 'k', 2)


function arrow(S, N, color, LineWidth)

% 画一个以 S(2*1) 为起点的向量 N(2*1)
if size(S, 1) == 1, S = rot90(S, -1); end;
if size(N, 1) == 1, N = rot90(N, -1); end;

% 箭头的夹角
angle = 20 / 180 * pi;
% 箭头长度占总长度的比例
ratio = 0.08;

R = [cos(angle),-sin(angle); sin(angle),cos(angle)];
N1 = ratio * (-N); N2 = N1;
N1 = R * N1;
N2 = R \ N2;

E = S + N;
plot([S(1) E(1)], [S(2) E(2)], 'color', color, 'LineWidth', LineWidth); hold on;
plot([E(1) E(1)+N1(1)], [E(2) E(2)+N1(2)], 'color', color, 'LineWidth', LineWidth);
plot([E(1) E(1)+N2(1)], [E(2) E(2)+N2(2)], 'color', color, 'LineWidth', LineWidth);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值