http://peterscarfe.com/accuratetimingdemo.html
运行结果:屏幕按灰色——红色——紫色——蓝色顺序显示,每个色块显示1s
程序几点知识:
topPriorityLevel =MaxPriority(window);
% 检索window的最高权限
Priority(topPriorityLevel);
% 设置为最高权限
numSecs = 1;
numFrames = round(numSecs / ifi);
% numSecs为每个色块显示的时间;numFrames为显示每个色块需要的帧数;也就是说在numSecs时间内显示numFrames帧色块
waitframes = 1;
% 表示每个色块之间切换所需的帧数,为1表示下一帧,为2表示隔一帧前后色块切换的帧间隔:vbl + (waitframes - 0.5) * ifi
% Color the screen grey
Screen('FillRect', window, [0.5 0.5 0.5]);
% 给window区域着色,颜色RGB值为[0.5 0.5 0.5]即灰色
vbl =Screen('Flip', window);
% 滑到下一帧
for frame = 1:numFrames
% Color the screen red
Screen('FillRect', window, [0.5 0 0]);
% 着色
% Flip to the screen
vbl = Screen('Flip', window, vbl + (waitframes - 0.5) * ifi);
% 回溯到当前帧时间点vbl,再移到vbl + (waitframes - 0.5) * ifi位置处着色
网友评论