复习:
Screen('Preference', 'SkipSyncTests', 1);
[w, rect] = Screen('OpenWindow',0,155,[50,50,1900,1000]);
Screen( 'FillRect',w, [0,255,0],[150,150,300,400]);%(绘制在后台了)
Screen('Flip', w); %切换到前台
KbWait; %等待按键
sca; %关闭所有屏幕
绘制类函数 用于绘制不同的视觉刺激
用PTB绘制图片
array=imread('pic.jpg');
[w, wect] = Screen('OpenWindow',0,0,[50,50,1900,1000]);
texid = Screen('MakeTexture',w,array);
Screen('DrawTexture',w,texid,[],[100,100,500,300],45);
Screen('Flip', w);
运行结果:
首先用matlab内读取图片的函数imread读取目标图片。MakeTexture函数的作用是制作图片的纹理,调用MakeTexture后返回值为数值;绘制图片的函数为DrawTexture,共11个参数,一般用不到所有的参数。
Screen('DrawTexture', windowPointer, texturePointer [,sourceRect] [,destinationRect] [,rotationAngle] [,filterMode] [,globalAlpha] [modulateColor] [,textureShader] [,specialFlags] [,auxParameters]);
windowPointer,页面窗口指针,可以是主页面或者缓冲页面。
texturePointer,由MakeTexture函数创建的纹理指针。
sourceRect,纹理中的某个区域,默认为整个纹理。
destinationRect,由windowPointer指定窗口中的某个区域,默认为与sourceRect相等,而且显示在窗口的中心。
rotationAngle,纹理旋转的角度(以度为单位),默认为0度。
filterMode,当sourceRect与destinationRect不等时,如果计算像素的颜色值,0=采用最相邻的限速的颜色,1=线性插值(为默认值)。
globalAlpha,取值范围介于0~1之间,0表示完全透明,1表示不透明,需要回合函数(blendFunction)的支持。
modulateColor,如果提供该参数,则忽略globalAlpha参数,不需要回合函数(blendFunction)的支持,该参数可以分别控制r,g,b三个通道。
textureShader,纹理着色器,如果在创建纹理时也使用了着色器,则忽略先前的着色器。
specialFlags,可选参数,特殊标志。
auxParameters,可选参数,为着色器提供额外参数空间。
用PTB绘制文字
[w, wect] = Screen('OpenWindow',0,0,[50,50,1900,1000]);
DrawFormattedText(w,double('ABCfwwefgwg'),'center',50,255);
Screen('Flip', w);
运行结果:
绘制文本函数DrawFormattedText(w,tstring,[,sx][,sy][,color][,wrapat][,flipHorizontal][,flipVertical][,vSpacing][,righttoleft]);
w:页面窗口指针。
tstring:所绘制的文本内容,可以用格式化字符。
sx,sy:绘制文本的起始坐标,默认为0,0。若指定为‘center’,则水平居中或者垂直居中。
color:文本颜色,可以是颜色索引或rgb。
wrapat:是否自动换行。
flipHorizontal:是否水平翻转。
flipVertical:是否垂直翻转。
vSpacing:行间距,默认为1。
righttoleft:是否从右至左绘制,默认为0。