Matlab绘制二维带朝向的位姿图,箭头表示朝向

  • Matlab自带quiver函数就可以实现

  • 首先介绍下quiver

    • quiver(X,Y,U,V) 在由 X 和 Y 指定的笛卡尔坐标上绘制具有定向分量 U 和 V 的箭头。例如,第一个箭头源于点 X(1) 和 Y(1),按 U(1) 水平延伸,按 V(1) 垂直延伸。默认情况下,quiver 函数缩放箭头长度,使其不重叠。

    • quiver(U,V) 在等距点上绘制箭头,箭头的定向分量由 U 和 V 指定。

    • 如果 U 和 V 是向量,则箭头的 x 坐标范围是从 1 到 U 和 V 中的元素数,并且 y 坐标均为 1。

    • 如果 U 和 V 是矩阵,则箭头的 x 坐标范围是从 1 到 U 和 V 中的列数,箭头的 y 坐标范围是从 1 到 U 和 V 中的行数。

    • quiver(___,scale) 调整箭头的长度:当 scale 为正数时,quiver 函数会自动调整箭头的长度,使其不重叠,然后将箭头长度拉伸 scale 倍。例如,scale 为 2 会使箭头长度加倍,scale 为 0.5 会使箭头长度减半。当 scale 为 0 时,如 quiver(X,Y,U,V,0),则禁用自动缩放。

  • 2d的位姿一般就是 [ x , y , θ ] [x, y, \theta] [x,y,θ],所以u,v分量直接用极坐标的形式, [ r c o s ( θ ) , r s i n ( θ ) ] [rcos(\theta),rsin(\theta)] [rcos(θ),rsin(θ)]就可以了,当然这里要注意一下你使用的 θ \theta θ是和谁的夹角,然后自己做调整吧

  • 写一个例子,箭头的大小设置为0.1

clc;clear;close all;
% 
num = 10;

x = [1:num];
y = [1:num];
theta = pi/4 *ones(1,num);

u = cos(theta);
v = sin(theta);

scatter(x,y);hold on;
quiver(x,y,u,v,0.1);

quiver

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值