MATLAB Answers


How to draw an arrow or triangle

Asked by Brett
on 14 Nov 2012
Latest activity Answered by Sanjay Manohar on 14 Feb 2017

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


Log in to comment.

3 Answers

Answer by Image Analyst
on 14 Nov 2012

Are you aware of the annotation() function?

annotation('textbox',[x y w h])
annotation('ellipse',[x y w h])
annotation('rectangle',[x y w h])


Show 1 older comment

Yes, as Walter said, this did not work.

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

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.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today