How to draw an arrow or triangle

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

Answers (3)

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);
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,...)

4 Comments

This does not appear to be applicable to the drawing facilities supported by psychtoolbox.
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);

Sign in to comment.

sina farahi
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]);

Asked:

on 14 Nov 2012

Answered:

on 14 Feb 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!