/usr/share/psychtoolbox-3/PsychDemos/ECVP2013/HelloShapesDemo.m is in psychtoolbox-3-common 3.0.11.20140816.dfsg1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | % HelloShapesDemo - Draw some basic shapes in different colors.
% Make sure Psychtoolbox is properly installed and set it up for use at
% feature level 2: Normalized 0-1 color range and unified key mapping.
PsychDefaultSetup(2);
% Select the display screen on which to show our window:
screenid = max(Screen('Screens'));
% Open a window on display screen 'screenid'. We choose a 50% gray
% background by specifying a luminance level of 0.5:
win = PsychImaging('Openwindow', screenid, 0.5);
% Set a big text size:
Screen('TextSize', win, 48);
% Draw 'Hello World!' into the center of the screen, and in a new line,
% as marked by the '\n' new line marker, we also draw 'Press a key':
DrawFormattedText(win, 'Hello World!\nPress a key', 'center', 'center');
% Show it on the display:
Screen('Flip', win);
% Wait for a keystroke on the keyboard:
KbStrokeWait;
% Draw some basic shapes:
% Draw some framed and filled rects. We define the bounding rectangles
% [left, top, right, bottom] of the rectangles:
r1=[0 0 100 100];
% Helper functions (help PsychRects) allow to manipulate rectangles,
% e.g., shift a rect 'r1' around by an x,y offset:
r2=OffsetRect(r1, 200,200);
r3=OffsetRect(r1, 250,250);
r4=OffsetRect(r1, 300,300);
% Draw a rectangle contour in color [red, green, blue] = [1, 0, 0] at
% location r2, with a line width of 1 pixel:
Screen('FrameRect',win, [1, 0, 0], r2, 1);
% Another one in green at location r3, 4 pixels wide border:
Screen('FrameRect',win, [0, 1, 0], r3, 4);
% And in blue at location r4 with 9 pixels border:
Screen('FrameRect',win, [0, 0, 1], r4, 9);
% And a yellow one at r4, 1 pixel thin:
Screen('FrameRect',win, [1, 1, 0], r4, 1);
% And a filled rectangle at location r5, with a orange color:
r5=OffsetRect(r1, 100,300);
Screen('FillRect', win, [0.8, 0.5, 0.0], r5);
% And some oval:
r6=OffsetRect([0 0 160 80], 10,150);
Screen('FillOval', win, [0.0, 0.5, 0.8], r6);
% Draw a white (=1.0 intensity) line from (100,100) to (400, 400), 3 pixels wide:
Screen('DrawLine', win, 1, 100,100, 400,400, 3);
% Draw some filled and framed polygons:
polyCenterX=500;
polyCenterY=300;
numPoints=15;
polyRadius=50;
% Place the 'numPoints' points at random locations on a circle with
% radius 'polyRadius' and center [polyCenterX, polyCenterY]. For this
% we choose random angles on the circle and calculate the [x,y] locations
% of the points via triogonometric functions. 'polyPoints' is the list of [x,y]
% points which define the polygon:
ClockRandSeed;
angles=sort(rand(1,numPoints) * 2 * pi);
polyPoints=round([ [cos(angles)*polyRadius+polyCenterX]', [sin(angles)*polyRadius+polyCenterY]'])
% Draw a filled polygon:
Screen('FillPoly', win, [0.5, 0.5, 1], polyPoints);
% Draw polygon contour at different vertical location:
polyCenterY=150;
polyPoints=round([ [cos(angles)*polyRadius+polyCenterX]', [sin(angles)*polyRadius+polyCenterY]']);
% Draw only polygon contour:
Screen('FramePoly', win, [0.0, 0.5, 0.5], polyPoints,2);
% Draw instructions, but now at starting location [x,y] = [10, 40], in blue color:
DrawFormattedText(win, 'Hello World!\nPress a key', 10, 40, [0 0 1]);
% Show it on the display:
Screen('Flip', win);
% Wait for a keystroke on the keyboard:
KbStrokeWait;
% Done. Close the window and clean up.
sca;
|