matlab两点间箭头连接

这篇具有很好参考价值的文章主要介绍了matlab两点间箭头连接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

话不都说,直接动手:

function drawArrow(x,y,lineType,color,ax)
    switch nargin
        case 2
            lineType='arrow';
            ax=gca;
            color='b';
        case 3
            ax=gca;
            color='b';
        case 4
            ax=gca;
    end
    if length(x)<2
       disp('input data dim must bigger than 2!!!')
       return; 
    end
    dim=length(x);
    xlim=ax.XLim;
    ylim=ax.YLim;
    xlimmin=xlim(1);xlimmax=xlim(2);
    ylimmin=ylim(1);ylimmax=ylim(2);
    if xlimmin>min(x), xlimmin=min(x);end
    if xlimmax<max(x), xlimmax=max(x);end
    if ylimmin>min(y), ylimmin=min(y);end
    if ylimmax<max(y), ylimmax=max(y);end
    ax.XLim = [xlimmin,xlimmax];
    ax.YLim = [ylimmin,ylimmax];
    xlim=ax.XLim;
    ylim=ax.YLim;
    %获取图像原点数据
    pos=ax.Position;
     % 计算缩放比例
    x_ratio = pos(3)/(xlim(2)-xlim(1));
    y_ratio = pos(4)/(ylim(2)-ylim(1));
    %计算缩放后相对原点的距离
    x=(x-xlim(1)).*x_ratio;y=(y-ylim(1)).*y_ratio;
    %缩放后的坐标
    x=x+pos(1);y=y+pos(2);
    for i=1:dim-1
        annotation(lineType,[x(i) x(i+1)],[y(i) y(i+1)],'Color',color);
    end
end

基本思路:

获取当前图片的缩放比例,计算输入点相对图像原点的缩放后的相对距离,然后根据图像原点和相对距离画图。

本代码适用任意坐标的两点间,和多点间用箭头连接的情况,且不要求坐标范围在0-1之间,比较通用。

例子:

matlab两点间箭头连接

 matlab两点间箭头连接

 文章来源地址https://www.toymoban.com/news/detail-496392.html

matlab两点间箭头连接

matlab两点间箭头连接

 

 

 

 

到了这里,关于matlab两点间箭头连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包