Matlab任意两点之间绘制带箭头的直线

简单绘制任意两点之间。本来不想自己写的,可是网上的代码用起来不舒服,所以简单看看原理,原来就是个坐标变换而已。索性自己写了一份,分享如下:

function drawarrow(x,y,lineType,ax)
switch nargincase 2lineType='arrow';ax=gca;case 3ax=gca;
end
% 调整坐标大小以适应箭头长度
xlim=ax.XLim;
ylim=ax.YLim;
xlimmin=xlim(1);xlimmax=xlim(2);
ylimmin=ylim(1);ylimmax=ylim(2);
if xlimmin>min(x(1),y(1)), xlimmin=min(x(1),y(1));end
if xlimmax<max(x(1),y(1)), xlimmax=max(x(1),y(1));end
if ylimmin>min(x(2),y(2)), ylimmin=min(x(2),y(2));end
if ylimmax<max(x(2),y(2)), ylimmax=max(x(2),y(2));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)); % 缩放比例
orig_pos=[-xlim(1)*x_ratio+pos(1),-ylim(1)*y_ratio+pos(2)]; % figure坐标系中的原点坐标
x=x.*[x_ratio,y_ratio];y=y.*[x_ratio,y_ratio];
x=x+orig_pos;y=y+orig_pos;
annotation(lineType,[x(1),y(1)],[x(2),y(2)])
end

结果如下图中箭头所示:

简单调用

>> x=[0,0];y=[2,2];
>> drawarrow(x,y)


把最后一句替换一下可以设置箭头属性:

ar=annotation(lineType,[x(1),y(1)],[x(2),y(2)]);
ar.Color='Red';
ar.LineStyle='-.';
ar.LineWidth=1;

Matlab任意两点之间绘制带箭头的直线相关推荐

  1. plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

    Matlab在任意两点之间绘制三维圆柱 Matlab在任意两点之间绘制三维圆柱 此函数可能存在一些不足,请多多指教! function plotcylinder(u1,u2,color_a,r) L= ...

  2. Android Canvas绘制带箭头的直线

    先看下效果图: 下面我们直接看代码 我自定义了一个View,代码如下: package com.davis.drawtrangle;import android.content.Context; im ...

  3. 【MFC】如何画带箭头的直线

    [MFC]如何画带箭头的直线 前言 代码 获得箭头坐标 前言 如何绘制带箭头的直线,说来也简单,只需要算出箭头左右两边的坐标,再使用LineTo()函数即可.话不多说上代码. 代码 获得箭头坐标 已知 ...

  4. Matlab如何绘制带箭头图形

    Matlab如何绘制带箭头图形 带箭头坐标轴 带箭头曲线 实例演示 例1 带箭头曲线 例2 带箭头曲线+带箭头坐标轴 联系作者 带箭头坐标轴 前段时间推出了绘制箭头坐标轴曲线的方法,许多网友联系我索取 ...

  5. C语言入门实战(2):求平面上任意两点之间的距离

    这是<C语言入门实战>系列的第2篇. 上一篇:C语言入门实战(1):准备开发环境.快速上手main()函数 下一篇:C语言入门实战(3):秒数转换为时:分:秒 文章目录 题目 提示 参考代 ...

  6. R语言使用rnorm函数生成正太分布数据、使用plot函数可视化折线图、使用arrows函数在可视化图像中绘制箭头曲线、绘制带箭头线段,可以设置箭头角度,有几个箭头(1起点箭头、2终点箭头,3双箭头)

    R语言使用rnorm函数生成正太分布数据.使用plot函数可视化折线图.使用arrows函数在可视化图像中绘制箭头曲线.绘制带箭头线段,可以设置箭头角度,有几个箭头(1起点箭头.2终点箭头,3双箭头) ...

  7. Dijkstra最短路由算法,求任意两点之间的最短距离【Java】

    一.问题 求下图中节点0到节点5之间的最短距离 二.方法 Dijkstra最短路由算法.本文不再赘述,直接上代码,如果不懂,可以参考 文章 三.代码 public class MyDijkstra { ...

  8. Raphael绘制流程图(二),添加带箭头的直线

    上一篇文章中,我们添加了元素(矩形框),接下来给矩形框加上带箭头的直线,代码如下: var wf_r = null; //画板对象 var wf_steps = []; //步骤数组 var wf_w ...

  9. Echarts绘制带箭头的线

    Echarts绘制带箭头的线 这个图主要参考echarts官网的关系图绘制的,难点在于去掉其余导向图的箭头,只保留最后一个节点的箭头,以及处理值为null时箭头的指向问题,代码如下: <temp ...

最新文章

  1. 阿里云资深总监肖力:安全智能时代公有云更靠谱
  2. hdu3037 Lucas定理
  3. 全国计算机二级考试c语言指针,全国计算机二级考试C语言 指针精讲课件.ppt
  4. Python基本语法元素之温度转换
  5. Android7.0 Doze模式分析(一)Doze介绍 amp; DeviceIdleController
  6. HDU-1811 Rank of Tetris
  7. 12123两小时没付款怎么办_机械厂上班的男朋友,一天十小时,周末不休,没时间陪我怎么办?...
  8. win8 mysql6_Win8系统 MySQL 6.0 安装图解
  9. Linux下安装spf13-vim
  10. 调用另一个cpp的变量_Il2Cpp Internals: 托管调用栈
  11. gerber文件怎么导贴片坐标_SMT贴片加工有哪些常用的名词
  12. java 构造块_java中构造方法、普通块、静态代码块、构造块的执行顺序
  13. 关于G - Naive Operations的一些试探性想法
  14. 前端jquery学习
  15. Oracle RAC系列之:ASM基本操作维护
  16. 2021考研数学一123分经验分享
  17. 轻量级过程改进之项目启动
  18. 2022年电子商务概论(农)之形考作业二
  19. 自己动手开发多线程异步 MQL5 WEBREQUEST
  20. Riverbed:广域网优化应对“云”发展

热门文章

  1. 51点菜 的测试用例
  2. Windows网络编程系列教程之四:Select模型
  3. 02一般现在时VS现在进行时
  4. 基于销售漏斗模型的商机管理分析仪
  5. oracle oui25031,windows平台oracle rac oui-25031问题
  6. Error: connect ECONNREFUSED 127.0.0.1:3306 at TCPConnectWrap.afterConnect [as oncomplete] (node:
  7. Yii2之gii的配置与使用
  8. log4j-maven仓库地址
  9. matlab柱状图 两列,excel中A、B两列数字做柱状图,但是出来两个柱,怎样让A变成横座标?...
  10. 环保数采仪下环境大气污染远程在线监测