图像缩略图

箭头

版本2.1.0.0(58.2 KB)通过 埃里克·约翰逊
绘制带箭头的线。

261个下载

更新2016年5月25日

查看许可证

编者按:该文件被选为中央MATLAB本周的挑选流行的文件20122013

箭头(2016年5月25日)用箭头画一条线。

箭头(开始,停止)绘制一条线与从开始到停止的箭头(点应是长度为2或3的矢量,或矩阵具有2个或3列),并返回图形处理中的箭头(多个)。就其本身而言,ARROW会用鼠标选择允许。

ARROW DEMO和ARROW DEMO2展示了ARROW功能的3d和2d演示。

ARROW PROPERTIES示出了可设置的属性(长度,底角,尖端角度,宽度,其端部具有箭头等)

引用作为

埃里克·约翰逊(2020)。箭头(//www.tianjin-qmedu.com/matlabcentral/fileexchange/278-arrow),MATLAB中央文件交换。检索

评论和评分(224)

茅输瞒

胜北

刘皓瑜

这是否包括描述直线中心的箭头的功能(或者除了直线的尾部/头部之外的任何地方)?

Mesbahose,做“帮助箭头”,看看它是如何使用的。如果你正在试图使红色箭头,箭头(R,U,“颜色”,“R”)是正确的语法。

有什么问题。我得到一个错误!!!!

使用箭头的错误(第190行)
ARROW要求财产“R”与属性值进行配对。
误差在摆线(线12)
箭头(r u ' r ')

编码:
%图摆线曲线
弧度= 1;欧米加= 1;
T = linspace(0,4 * PI,121);
x = rad*(t * -sin(t));
y = rad*(1 - cos(t));
积(X,Y)
坚持,稍等
%添加的速度矢量
对于s = linspace(0,4 * PI,25)
R = [弧度*(ω-* S-SIN(欧米加* S)),拉德*(1-COS(ω-* S))];
U = [弧度*欧米加*(1-COS(ω-* S)),拉德*欧米加* SIN(欧米加* S)];
箭头(r u ' r ')
结束
拖延

1.如果你需要的传奇。
加入了这个功能的顶部。
功能arrow2(varargin)
全球测试
测试= varargin {3};
varargin(3)= [];
箭头(varargin {:})

(与“全球测试”箭函数的顶部)
功能并[h,YY,ZZ] =箭头(varargin)
全球测试
现在,你可以调用arrow2([1,2],[3,4], 'YouLegend',...)
2.如果需要隐藏的传说提的箭头
在第969行或971行
H(K)=补丁(XYZ {:});
写这篇文章
H(K)=补丁(XYZ {:}, 'HandleVisibility', '断');

Jocelino,你可能需要设置你xlimits和ylimits调用箭头,如前

数字
集(gcf,“位置”,[100250750600])
次要情节(212)
挺住,网格,箱上
XLIM([2000 3000]),ylim([1E5 2E6])
箭头([2390 0.46 * 1.2e6],[2335,2.5e5], '长度',10)
xlabel( 'X标签')

L:它看起来对我罚款。请给我发电子邮件(见m文件的电子邮件地址)的截图,让我知道你正在使用的MATLAB的版本和在什么平台上。

Jocelino罗德里格斯:我无法重现你的错误。哪个版本的MATLAB您使用的是什么平台?

当我使用虚线这样的线型时,破折号看起来很奇怪,因为破折号之间的间距是可变的。

>>图中,XLIM([0 2]),ylim([0 1])中,箭头([1,0],[1,1], '的LineStyle', ' - ')

任何人都知道为什么吗?

箭看起来不错,但是当它的绘制,我的副区(2,1,2)xlabel熄灭的身影。我试着在下面的意见建议的所有解决方案,万博 尤文图斯但他们都没有为我工作。
当我调用箭头fixlimits时,我得到一个消息:“箭头不记得要重置的任何轴限制。”

谁能帮助?我的代码如下。

谢谢

*****************************

数字;
集(gcf,“位置”,[100250750600])

副区(2,1,1)
坚持,稍等;网格;框上;

AX1 =副区(2,1,2);
轴(AX1);
坚持,稍等;网格;框上;
轴(AX1)
箭头([2390 0.46 * 1.2e6],[2335,2.5e5], '长度',10);
箭头fixlimits;

我不明白你的意思。你能详细吗?MATLAB在什么平台上的什么版本?你能给出一些代码来说明你的问题吗?

延庆锅

伟大的功能。虽然我遇到了一个不同的问题,脚本似乎工作得很完美,没有任何错误,但输出数据不断消失。如果有人能帮忙,我将万分感激,并永远感谢。

sgreess

需要一些时间来适应,但是评论是一个巨大的帮助,一旦我掌握了它,这是非常有用的。谢谢!

萨芬哲

萨芬哲

萨芬哲

萨芬哲

仅供参考,王树亮的错误走了,当他重新安装。

Ruizhao朱

埃里克·约翰逊

Shuliang,还不清楚这个错误是如何发生的:406行没有给出这个错误的‘*’操作符。你能告诉我你用的是哪个版本的箭头吗?(查看箭头中版权线上的日期。m代码)?请点击我的名字,点击“查看个人资料”,点击“联系方式”给我发邮件。

Shuliang田

对不起,我也遇到一些问题(修订R2018b)
我试着和Tomy的代码审判,它显示:
未定义操作“*”类型“matlab.graphics.axis.Axes”的输入参数。
误差在箭头(线406)
如果〜的isEmpty(crossdir),

兴隆坊

埃里克,谢谢!是的,我用的是旧版本的arrow。m函数(5/20/09)。下载最新版本解决了这个问题。所以在R2018a甚至R2018b上都可以。

TOMY的错误似乎是一个(非常)旧版本的箭头(大约2009年)的,不应该与目前的版本出现。让我知道如果不然。

和Tomy迪比

很抱歉,但不适合我(修订R2108a)工作:
X = 0:PI / 100:2 * PI;
Y =的sin(x);
数字
积(X,Y)
坚持,稍等
箭头([0,0],[1,0])
未定义操作“*”类型“matlab.graphics.axis.Axes”的输入参数。
误差在箭头(线423)
斧= O * GCA;

完美的2014B

bigseat

达哥尚

伟大的功能。完美的作品。

周宰羊

非常感谢。该脚本完全可以帮助我用颤抖功能时调整箭头的headsize的问题。

他传

您可能希望在调用ARROW之前执行AXIS(AXIS),这样它就不会改变
%你身上的斧头;元素之前的箭头组件的大小
%箭头绘制的,所以如果改变ARROW轴限制,箭头可以畸形。

麦兜大厅

伟大的工作。
如果有人需要隐藏的箭头,它可以通过箭头手柄的扩展数据和YDATA(补丁OBJ)设置为空arraies实现;重绘的箭头,只是使用该功能的箭头(h_arrow, '开始',[X1 Y1], '停止',[X2 Y2]),如在第m文件提及。
再次感谢。

Vojtech

它运作良好,如果你有一些挺有意思轴限制。但除此之外,你有带箭头的外观有很多玩..
例如:箭头([0 1E6],[1000 1E6]);- 它不产生箭头人们所期望..

杰克·李

Nesse威廉

箭头绘制的伟大工程,但在此之前我调用的函数,我绘制的另外两条曲线,并呼吁传说功能给他们标签(只有两个标签)。但是,调用传奇之后我再调用四个箭头,他们的传奇出现了,我似乎无法将它们排除在外。在传说中,四个箭头显示了标签“数据1”,“数据2”,“数据3”,“DATA4”。我能找到没有办法将它们排除在外。

我使用2017A

我看到了一些奇怪的行为,当渲染器是油漆工的时候,部分尖端角度有点向上。

现在汗

曾诚

很有用!我已经有相当多的麻烦,在过去颤动(),因为它并不意味着这么多的绘制形状为载体,但是这确实的伎俩!

注意上轴限制:警告“警告:箭头添加箭头时改变轴界限。
呼叫ARROW FIXLIMITS现在重新设置它们。”不具有warning.identifier,以允许其被抑制,但调用‘轴(轴)的’使用箭头()之前防止错误的发生。

阿诺德

我使用这个SOOOO多,不过,这将是很好,如果你可以添加对箭头的能力,总是“面子”的相机,让他们在旋转时是不平坦的三维空间。

Yujiao太阳

出色的文档,以及非常实用的包装功能!

套路

弗里德黑尔姆,它只有在调试发生什么呢?您可以发邮件给我一些代码?(电子邮件地址是在M文件;或点击我的名字,然后“查看资料”,然后“联系”。)

亲爱的Erik,我正在运行几个Matlab版本(2016a, 2016b和2017a),“奇怪的行为”是箭头的长度和形状都是扭曲的。与此同时,我注意到以逐点方式(在for循环中)调用“arrow”并逐步调试代码会导致问题。如果我避免调试,那么问题就会消失。多谢。Friedhelm

你能描述奇怪的行为?MATLAB是什么版本?你能提供一个最小的工作例子来说明吗?

首先,这是一个伟大的功能,这是我现在用了很多年。谢谢!不过,今天我看到一个奇怪的现象称之为两次(不同的数据)之后,但具有相同的参数,我不知道的原因可能是什么。手柄参数列表是相同的。任何帮助将高度赞赏。谢谢。弗里德黑尔姆克鲁姆

保罗

宇文李

看起来完美

Cebri

潘铭

真棒工作!

迈克尔

gusjammo

非常好。

林友树

好了!

保宁吴

随着性能的完美控制,这正是我想要的!

藏经楼

尼斯的工作!

穆罕默德

不错的工作!在我最老的MATLAB上运行得很好。

这里是我的代码行:
箭头(TSTART,TSTOP,10, '端', '两者', '宽度',1, 'FaceColor', 'K', 'EdgeColor', 'K');

既TSTART一个TSTOP是数值参数和预先定义的。

干草堆

全元

大辅,我还没有见过这个问题。MATLAB是什么版本的?你可以给一个最低工作例子来证明呢?

Daisuke

当我画了一个垂直箭头,线从箭头(见图片的URL)下车。有没有办法来解决这个问题?如果没有,你能告诉我,我怎么能调整呢?
https://drive.google.com/file/d/0B8e6a9ddS2_aTnBidW5sTVllZUk/view?usp=sharing

在长时间的中断之后,arrow被更新为HG2兼容性。我认为下面的大部分评论已经被采纳了。

easywei

这个错误是怎么回事?

观点=得到(ax(:),{‘视图’});

箭头错误(第961行)
掩模= arrow_is2DXY(oldaxlims(:,1));

感谢任何人!

在8.6.0.267246 (R2015b)上运行得很好,在这里输入了Johannes推荐的修改(2篇文章)。在那之前,它在我的版本上不起作用,但在我在学校安装的其他matlab程序上起作用,得到了人们正在谈论的同样的错误。

哎呀,我的坏。你必须实现所有的贾斯汀和布伦顿的建议。

对于大家,对新的Matlab的版本上运行当前版本arrow.m问题,请遵循Justin和布伦顿从11月11日2014年提出的改正我适应他们的Matalb R2015a和工程....

这里的职务复制的修改建议:

贾斯汀:
上一个:线423斧= O * GCA;
更新:AX = repmat(GCA,变窄,1);

上一页:线路590简略= GET(CURAX '的Xform');
更新:[氮杂,ELA] =视图(CURAX);
curT = viewmtx(阿扎,elA);

布伦顿:利用贾斯汀的编辑,更新如下:

线504:oldaxlims(分钟(查找(oldaxlims(:,1)== 0)),:) = [II重塑(AXL”,1,6)]。

LINE 960:
LIMS = GET(AX(oldaxlims(:,1)),{ 'XLIM', 'YLim', 'ZLim'})';

LINE 962:
掩模= arrow_is2DXY(AX(oldaxlims(:,1)));

它在Matlab 2015a中不工作

>>箭头
未定义操作“*”类型“matlab.graphics.axis.Axes”的输入参数。

误差在箭头(线423)
斧= O * GCA;

摩西

谢谢贾斯汀和布伦顿!我得到它工作的MatLAB版本2015b后,你的编辑。

作为一种替代,现在有达芬奇绘制工具箱,davinci-draw.com,它使用低级别的Matlab的命令,如曲线图()和补丁()来绘制中级的形状像箭头。示例语法:

达芬奇( '箭头', 'X',[0 10],...
'Y',[0 2],...
'Shaft.Type', '矩形',...
'Shaft.Width',1,...
的头。长度的,2.5,……
'颜色', 'W',...
'EdgeColor', 'K',...
“线宽”,2.5)

约翰内斯

同样在这里2015B,不能正常工作
>>箭头DEMO
未定义操作“*”类型“matlab.graphics.axis.Axes”的输入参数。

误差在箭头(线423)
斧= O * GCA;

误差在箭头> arrow_demo3(线1273)
h1 = feval(mfilename,[axlim(1) axlim(4) 4],[-]。8 1.2 4],…

误差在箭头(线142)
HH = arrow_demo3(demo_info);

中国徐

亲爱的作者,

看来,箭不能用Matlab R2015a版本。我得到一个错误消息

误差在箭头(线406)
斧= O * GCA;

你能修好它吗?谢谢!

志刚

谢谢丹尼尔·克勒斯 - 为我工作!

它不是我的,但我在GitHub上找到了一个工作版本(适用于2015a):
https://raw.githubusercontent.com/stabix/stabix/master/third_party_code/arrow/arrow.m

谢谢你的评论前述。他们帮助使这个本来功能优良的工作。5星的功能。0星为缓慢的更新。我强烈鼓励作者更新此功能可以根据所提出的意见。

闵智士

感谢贾斯汀A.,布伦顿,和布鲁斯·埃利奥特,我已经它得到工作以及(R2014b)。这比内置annotation.m好得多。

谢谢你的评论-我现在也有它的工作。

埃里克

感谢贾斯汀A的意见,布伦顿和布鲁斯·埃利奥特,我得到了这个奇妙的文件,我需要在MATLAB R2014b的箭头工作。作者:请更新此文件,使之与新的图形系统兼容。

芭芭拉

伊莱

有人做过吗
箭头演示
与2014B工作?这将有可能上传更新的工作版本?

感谢Justin和布伦顿为R2014b推荐MODS。我有另一组的相关变化。

这些更改将取消关于使用图形对象属性“EraseMode”的警告,该属性已不再使用。我相信这几行代码的唯一目的是临时更改EraseMode,然后将其重置为原始值。

REMOVE线路103,1032,1033,1065:

oldArrowProps = { 'EraseMode'};
oldArrowValue = GET(H,oldArrowProps);
集(H, 'EraseMode', '背景');%,因为“XOR”使轴看不见的,除非宽度> 1


集(H,oldArrowProps,oldArrowValue);

布伦顿

捎带上Justin的编辑,有以下更新:

线504:oldaxlims(分钟(查找(oldaxlims(:,1)== 0)),:) = [II重塑(AXL”,1,6)]。

LINE 960:
LIMS = GET(AX(oldaxlims(:,1)),{ 'XLIM', 'YLim', 'ZLim'})';

LINE 962:
掩模= arrow_is2DXY(AX(oldaxlims(:,1)));

贾斯汀A.

罢工。它适用于一个方向,但不是演示。

贾斯汀A.

2014年,我在做了两处改动后,让它开始工作:

上一个:线423斧= O * GCA;
更新:AX = repmat(GCA,变窄,1);

上一页:线路590简略= GET(CURAX '的Xform');
更新:[氮杂,ELA] =视图(CURAX);
curT = viewmtx(阿扎,elA);

刘洋

@大卫,@Tobias,我也遇到了同样的问题。
你设法解决这个问题?提前致谢!

大卫

喜欢这个剧本,但它看起来像有新2014B的图形系统,其中GCA不再返回一个数字的根本不相容。只要运行演示(箭头DEMO)将返回错误:

未定义的函数“mtimes”的类型的输入参数
'matlab.graphics.axis.Axes'。
误差在箭头(线423)
斧= O * GCA;

尼斯功能,但遗憾的是它不接受轴手柄,像情节。在相同的情况下,如Maltab GUI,不能只是让剧情之前设置的轴。

皮特

我有点怀疑,但其实这是一个非常有用的和详细记录的功能。非常感谢

你太聪明了。非常感谢您的辛勤工作和高超的技术。

约翰

工作很好,但我确实发现了一个错误:
一个完全垂直箭头(从[0 0 0]为[0 0 1])被绘制用〜16的长度在负z域到达为止。只要输入
箭头([0 0 0],[0 0 1])
看看。

是否有人知道一个解决的办法?

亲切的问候,
约翰。

@Li,看了Rajib的评论后,我发现你可以在一个函数调用中改变颜色:

h =箭头(…,'EdgeColor', 'g', 'FaceColor', 'g');

@Tobias,我没有2014B,但你可以尝试用更换信号线423:

AX = repmat(邻,变窄,1);

更新Matlab到2014b后,arrow。m没有工作。它停止在第423行与错误:

未定义功能“mtimes”类型“matlab.graphics.axis.Axes”的输入参数。

误差在箭头(线423)
斧= O * GCA;

有人能帮帮我吗?

了不起。谢谢。
对于那些希望箭头与起点和终点之间有一个小间隙的人(例如,为了不使标记变得模糊),我编写了一个小更新(注意:与箭头不兼容。属性直接,但你可以很容易地适应):

函数[varargout] = my_arrow(开始,停止)
arrow_gap_pc = 0.05;%的相对间隙大小定义了初始箭头大小
d =停止 - 起动;
dx = d (1); dy = d (2); dz = d (3);
(th,φ,r) = cart2sph (dx, dy, dz);
arrow_gap = arrow_gap_pc * R;
(x1, y1, z1) = sph2cart (th,φ,arrow_gap);
B = START + [X1 Y1 Z1];
E = STOP- [X1 Y1 Z1];
啊=箭头(B,E);
如果nargout == 1
varargout{1} =啊;结束

我觉得这是我曾经偶然发现的最好的功能之一。非常感谢。

Yagiz

李张

有用!如何改变箭头的颜色?

艾伦

很有用,谢谢。帮助建议使用AXIS(AXIS)来修正限制,我认为同样的效果可以通过AXIS手册来实现,这样会更清晰。
它也没有明显的箭头将是一个补丁对象,所以有一个像edgecolor,facecolor,而不是线性的特性。

扬Motl

扬Valdman

完美!

思思马

我写了下面的代码:

图1)
CLF
坚持,稍等;
scatter3(X,Y,Z, 'KO')
Z1 = 500;
箭头([马克斯(X)马克斯(Y) Z1], [min (X)分钟(Y) Z1), 15日BaseAngle, 60岁的“FaceColor”, [0 1 0])

我想使输出(它必须包含具有箭头头部沿着线)中的X-Z平面上;即图([180 0]),而不是在3D这是良好的唯一的可视化。不幸的是,虽然该行可见,箭头头是不是当我进入2D视图中看到。我想包括“CrossDir”,[0 0 1]由脚本的作者建议,但它并没有帮助。任何建议?

你如何开始和停止点的任一端关闭箭头头?

马修M.

非常有益的和彻底的!我只有几个小的狡辩 - 1)笔者没能完全清除您应该使用什么正常的MATLAB线属性来更改箭头的颜色和箭头颜色。但它不是太难搞清楚。2)作者没有分配消息标识符到的警告(例如,用于改变轴界限)。我编辑添加消息标识符,所以我可以将其关闭的功能 - 不需要我的命令窗口堆满了大量的橙色的文字。

浩辰唐

瑞安

有谁知道如何箭头添加到传奇?我使用arrow.m提请代表对剧情数据箭头,这将是有帮助的传说中的蓝色箭头。

梁肯特

@Matthias,我有这个问题太,只是无意中发现了一个解决方案。(事实上​​,我的问题是,xlabel正在消失。)为了解决这个问题我所做的:

AX1 =副区(2,1,1);[...]
轴(AX1);箭头([X1 Y1],[X2 Y2]);箭头fixlimits;

我总是做“固定限制”,以防万一。我这样做的原因是因为在帮助文件中:
“你可能想调用箭头之前执行轴(轴),所以它不会改变你的轴;确定箭头箭头组件的尺寸前的箭头绘制的,所以如果改变箭头轴限制,箭头可以畸形”。

这不是很明显,这种固定的插曲调整问题,但它的工作!

到目前为止,画箭头最简单的方法就是用箭头。m和mArrow3.m。

江民张

一般正常工作。但是,我使用次要情节,E。G。3 X 2,和它们中的一些具有箭头。现在,箭头改变插曲,使得次要情节是没有大小相等的长尺寸。任何想法如何纠正?

ATN

如何使箭头虚线,使颜色每个箭头不同,对应其Z值?

添加“线型”,“:”为虚线选项使箭头看起来很奇怪。

对于颜色,我试图创建一个NX3矩阵lineColors其中每行是相应的元素的颜色,并添加了选项“‘EdgeColor’,lineColors”,但得到了一个错误:

“颜色值必须是一个3元素数值向量”

任何帮助表示赞赏。谢谢。

原野王

正是我需要的。非常感谢。

关于W&雅格布

设置箭头功能前视图解决您的问题例如为:

CLC;明确;关闭所有

xvector = [1 0 0];
yvector = [0 1 0];
zvector = (0 0 1);

数字
网格
daspect([1 1 1])
xlabel( 'X [mm]的', 'fontWeight设置', '粗体')
ylabel('y [mm]', 'FontWeight', 'bold')
zlabel( 'Z [mm]的', 'fontWeight设置', '粗体')

这里是视图设置
视图([1 1 1])

箭头([0 0 0],xvector‘EdgeColor’,‘k’,‘FaceColor’,‘k’)
箭头([0 0 0],yvector, 'EdgeColor', 'B', 'FaceColor', 'b')的
箭头([0 0 0],zvector, 'EdgeColor', 'R', 'FaceColor', 'R')

%不在这里
%视图((1 1 1))

不要没有为什么,但似乎工作!

BW,
托比

精彩。谢谢你,埃里克!

Kuifeng

雅格布

>克里斯托弗此代码,至少在> R2009a,看起来很奇怪。
>关闭所有;CLC;
>图(1)
>箭头([0; 0; 0],[1; 0; 0])
>箭头([0; 0; 0],[0; 1; 0])
>箭头([0; 0; 0],[0; 0; 1])
>轴([-1 -1 -1 -1])
>我真的具有3-d曲线麻烦>和箭头沿第三轴指向。

我基于Matlab R2010a版本同样的问题(7.10.0)

使用箭头这个脚本产生一个非常长的z方向,这是相当恼人的箭头。我希望在Z方向没有变长。

CLC;明确;关闭所有

xvector = [1 0 0];
yvector = [0 1 0];
zvector = (0 0 1);

数字
网格
daspect([1 1 1])
xlabel( 'X [mm]的', 'fontWeight设置', '粗体')
ylabel('y [mm]', 'FontWeight', 'bold')
zlabel( 'Z [mm]的', 'fontWeight设置', '粗体')
箭头([0 0 0],xvector‘EdgeColor’,‘k’,‘FaceColor’,‘k’)
箭头([0 0 0],yvector, 'EdgeColor', 'B', 'FaceColor', 'b')的
箭头([0 0 0],zvector, 'EdgeColor', 'R', 'FaceColor', 'R')
视图([1 1 1])

非常感谢您的帮助。

这太棒了,在找到它之前,我花了1.5个小时摆弄注释。一旦我发现它,一切都在我希望它在几分钟内工作的方式。伟大的工作!

完善。究竟是什么,我需要。

智博

很不错的实用功能。我只是想知道,如果它是可以固定箭头大小,使其不与轴 - 缩放或调整大小而改变。谢谢!

很有用,谢谢!

亚瑟

很好,谢谢

桂枝

这个函数可以指定“LineStyle”吗,比如“-”,“——”,“——”。和:?
怎么做?
谢谢。

非常感谢。我试图让一个GUI窗口一个箭头。是具有正确保存箭头位置的难度。使用你的代码它完美:)

CC

总体而言,剧本是非常有用的。但是,使用此箭头脚本时,传说是搞砸了。有些传奇符号会显示为“黑色”方块代替正确的符号。当不使用箭头脚本,显示正确的传说。

hajime山田

可能有人请让我知道以下内容:

1.如何改变箭头的大小?
2.请让我知道如何更改箭头的类型。
3.如果可能的话,请让我知道如何有箭头的头部和载体的尾部两者。
4.相反方向的,请让我知道我怎么可以在载体的两端点?
5.如何更改线路类型?

谢谢。

本哈珀

你可以请包括颜色选项,你写这些注释的代码求助热线
谢谢

江民张

完美!

工作得很好,但默认情况下,箭头提示看起来并不完美,因为它们是两个行结束的连接,因此在pdf打印输出中不是四舍五入的。
“终结”,“开始”:您可以通过绘制在相反的方向和使用参数箭头解决此问题。
但无论如何这将是很好,如果他们是在默认情况下完美;-)

谢谢!!!!

此代码,至少在R2009a,看起来很奇怪。
关闭所有;CLC;
图1)
箭头((0,0,0),(1,0,0))
箭头([0; 0; 0],[0; 1; 0])
箭头([0; 0; 0],[0; 0; 1])
轴([ - 1 1 -1 1 -1 1])

我真的具有3-d图和沿第三轴箭头指向的麻烦。

我发现这个实现是缓慢和缺乏。诚然,我在极短的长度,吸引了成千上万的箭头。这是一个内联函数我写在大约5分钟绘制简单的箭头。

功能OUT = draw_arrow(起始点,终点,headsize)
%由瑞安Molecke

v1 = headsize * (startpoint-endpoint) / 2.5;

THETA = 22.5 * PI / 180;
theta1 = -1 * 22.5 * PI / 180;
旋转矩阵= [cos() -sin();罪(θ)因为(θ)];
rotMatrix1 = [COS(theta1)-sin(theta1);罪(theta1)COS(theta1)];

V2 = V1 * rotMatrix;
v3 = v1 * rotMatrix1;
X1 =端点;
x2 = x1 + v2;
X3 = X1 + V3;
坚持,稍等;
下面%填充线箭头(黑色)
填充([X1(1)×2(1)×3(1)],[X1(2)X 2(2)×3(2)],[0 0 0]);
下面%线绘制线(黑色)
图([起始点(1)端点(1)],[起始点(2)端点(2)], '线宽',2, '颜色',[0 0 0]);

有用在许多方面,但是代码非常复杂,目前还不清楚如何达到特定的效果,而无需通过函数体拖网。为什么不把演示代码在一个单独的文件?

阿米尔

阿米尔

它看起来真的很棒......我会代替开始颤动的使用!

惊人的,非常有用

箭头看起来变形了。甚至连演示中的箭头看起来都变形了。

剑波

太好了。一个小问题是,创建的箭头与手动通过“插入”菜单插入的箭头有一点不同。例如,位置不能通过鼠标来调整。

海勒姆

以设置箭头的颜色,看看这个例子:
轴([0 3 0 3 0 3]);
网格
H =箭头([3 3 3],[0 0 0],36, 'BaseAngle',60);
集(H, 'FaceColor', 'B');
集(H, 'EdgeColor', 'R');
很棒的应用程序!

很有用。

赛义德Taherion

莱昂纳多·杜阿尔特

丽丽kalmer

Joselito Dimayuga

这个目录或格式的目的是??

德米特里•Vasilyev

我的天啊!刚才正是我一直在寻找!出色的工作,谢谢埃里克!

GDR!X

一个可以通过指定“FaceColor”和“EdgeColor”属性,这是不幸的是,没有记录改变箭头的颜色。

续涨沉

亚历克斯主命

Matthijs Klomp的

伟大的作品。

老爷黄平君

对不起,如何添加这个图形句柄(返回值)到一个现有的轴,图。

艾哈迈德Sacan

在部署的应用程序调用时不工作(即,从使用MCC生成的可执行调用时)。

Rutty蜂

绘制与z分量3- d箭头时遗址图。在这种情况下,箭头的宽度变得过大,该地块呈现为不可用。这样的话,不管一个人如何试图设置其大小。

达斯汀·克鲁斯

完美的作品

豪尔赫·马林

乙古尔

也正是它需要做的。

强尼è

优秀且易于使用。我要强调的是,在绘制箭头之前应该调用axis(axis),否则将重置轴限制,从而导致箭头不正确显示。这一点在“帮助”中有说明,但被塞在底部。

拉梅什Rajasekaran

瓦西里Pastushenko

不指向(1,1)

瓦西里Pastushenko

做得好。小注:

箭头([0 0],[1 1],50,10,30)

不指向(0,1)。

如果baseAngle < tipAngle,那么添加一个自动交换baseAngle和tipAngle的特性可能是合理的。

阿伦卡Subramaniyan

伟大的工具。很容易与详细的文档使用。感谢您与我们分享。

Ĵ许

这个节目是真的好,易于使用。3X埃里克。

Nithya C.R.

该方案是密谋向线覆盖良好的所有方面真的很棒。

健康基特森

感谢埃里克

JR P

这是伟大的。我讨厌MATLAB在annotation()调用中使用规范化的图形坐标来绘制箭头。这是没有意义的,而且有些人在MathWorks变得懒惰,所以它变得几乎毫无用处。这段代码正是他们应该做的…好埃里克!

碧玉门格尔

很好地完成。遗憾的是,Matlab似乎没有从命令行绘制箭头的内置函数。

很满意

正是我需要的。完美!

超级坦讷

巴蒂尔林

我在文件头添加下面的注释。箭头(启动,停止, 'EdgeColor', 'B', 'FaceColor', 'b')的颜色箭头。

Vijaykumar Sathyamurthi

感谢这个优秀的工具。我希望你继续写这样winderful码!

Sharoni沙菲尔

伟大的工作,谢谢!

阿米特·凯萨尔

很好。谢谢。

长顺邓

好剧本!

戴夫·科格德尔

这个代码(特别包括文档(同时是不完整和不充分的)对于它所做的简单的事情来说太复杂了。我相信作者是一名工程师:他不应该试图像计算机科学家那样写作,而应该像工程师那样写作。

雅尼克Zikovsky

非常好,比标注(“箭头”),因为它是在轴的单位!

伊恩·麦肯齐

埃文·韦斯特伍德

无法弄清楚如何使箭头线和箭头有一个特定的颜色。箭头没看一样好那些你可能在绘图/演示包绘制如PowerPoint。

Rattikan Saelim

纳撒尼尔·德Lautour

精湛的努力。高度可配置的,易于使用和有据可查的时间来引导。

奥利维尔·马斯登

很有用!

埃迪Fiorelli

出色的工作,完整的文档。谢谢!

马蒂亚斯Forsblom

太好了。

开尔文罗沙

很有用。说明都非常优秀。正是我一直在寻找。

杰拉德斯达利

很好

王科

非常有用和方便。易于使用!!

的Arnd - 拉格纳Rhiemeier

优秀的方案。帮助主题非常全面。易于使用。快速导致有吸引力的图形输出。这个包裹正是我要找的东西。

伯恩哈德BOECK

这正是我要找的

Benedikt Halldorsson

整洁的包,但(除非我失去了一些东西明显)使本身基本上是无用的。
尝试箭头线的线型设置为虚线(集(H,“线型”,“:”),然后尝试打印出来的文件(打印-depsc test.eps)和查看图像后记行肯定是。不点缀(Matlab的6.5)。同样的问题虚线和点划线。
我不知道这是否是一个arrow.m问题,或Matlab的。

雅各布·范德拉尔

伟大的包装,它应该被纳入
标准的Matlab的分布

中号Bakht

这下好了。惊人。

尼克拉斯Borlin

太棒了!

Aslak Grinsted

一个c

最大的功能永远!

更新

2.1.0.0

添加了一个“Color”属性(它为使用补丁对象绘制的箭头设置了“EdgeColor”和“FaceColor”)以及如何使用它的文档。

2.0.0.0

HG2更新(R2014b及以后版本)

1.2.0.0

实际更新文件(而不仅仅是说明);上演示正确的看法

1.1.0.0

替换 “的eval( 'trycmd', 'catchcmd')” 与 “尝试,trycmd;抓,catchcmd;结束;”,其突破的兼容性与MATLAB 5,但提高了遵守新版本。

MATLAB版本兼容性
创建了R2016a
与任何版本兼容
平台兼容性
视窗 苹果系统 Linux的
标签添加标签