Asked by Brett
on 14 Nov 2012

Hello Matlab community, I am trying to draw an arrow. I am using Psychtoolbox and there doesn't seem to be a specific command for arrows or triangles. I know how to draw a line:

line = [X-3,Y-40,X+3,Y+40]; Screen('FillRect',window,[200,200,200], line');

So if someone knows the code to draw a triangle I can merge it with the code for a line to draw an arrow. Any help would be greatly appreciated.

Thanks, Brett

*No products are associated with this question.*

Answer by Image Analyst
on 14 Nov 2012

Are you aware of the annotation() function?

annotation('line',x,y) annotation('arrow',x,y) annotation('doublearrow',x,y) annotation('textarrow',x,y) annotation('textbox',[x y w h]) annotation('ellipse',[x y w h]) annotation('rectangle',[x y w h]) annotation(figure_handle,...)

Show 1 older comment

Brett
on 19 Nov 2012

Yes, as Walter said, this did not work.

sina farahi
on 9 Apr 2014

annotation('arrow',x,y) doesn't work

Image Analyst
on 9 Apr 2014

At all? Or just with some figure created by the Psychtoolbox (which is not a Mathworks product and I don't have)? Does this draw an arrow for you:

plot(1:10, 'LineWidth', 2); grid on; annotation('arrow', [.21, .5], [.85, .5], 'LineWidth', 2);

Log in to comment.

Answer by sina farahi
on 9 Apr 2014

usage: Arrow(dot,vector); note: This function draw an arrow (head lines have pi/6 angle and the length of l/5) example: Arrow([10;11;12],[0.2;20;25]);

Log in to comment.

Answer by Sanjay Manohar
on 14 Feb 2017

This is not a MATLAB question. But for completeness, the answer should be

% create a triangle head = [ 100, 100 ]; % coordinates of head width = 10; % width of arrow head points = [ head-[width,0] % left corner head+[width,0] % right corner head+[0,width] ]; % vertex Screen('FillPoly', window,[200,200,200], points);

Log in to comment.

Related Content

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments

Log in to comment.