廈門大學matlab第四次課程筆記 PTB的簡單講解


主要內容簡介:1.打開窗口;2.繪制圖像;3.記錄被試按鍵反應;4.記錄被試鼠標反應

%  memory命令可以返回當前計算機的內存信息

%  PTB初期可以調小窗口進行調試

%   [wptr,~]=Screen('OpenWindow',0,0,[50 50 800 600]);  打開一個窗口。第一個參數是命令;第二個參數是把打開的窗口呈現在外接的屏幕上,0表示同一窗口呈現在兩個顯示器上,1表示在1號顯示器,2表示2號顯示器;第三個參數是窗口的背景色;第四個參數設置窗口的大小和位置。

%  [x,y]=WindowCenter(wptr);   獲取打開窗口的中點
%  pic=imread('701.jpg');  獲取圖像的矩陣
     pic2=Screen('MakeTexture',wptr,pic);  將圖像矩陣轉換為OpenGL紋理並返回其句柄
     Screen('DrawTexture',wptr,pic2,[],[x-150,y-150,x+150,y+150]);  通過該句柄將紋理繪入指定窗口
     Screen('Flip',wptr);  執行“”翻轉“”命令,將圖像顯示在顯示器上
     WaitSecs(5);    等待5秒鍾,即圖像顯示5秒鍾

pic=imread('701.jpg');
pic2=Screen('MakeTexture',wptr,pic);
Screen('DrawTexture',wptr,pic2,[],[x-150,y-150,x+150,y+150]);
Screen('Flip',wptr);
WaitSecs(5);

%  只要兩個圖像位置不重疊,是可以在一個畫板上顯示很多圖像的

pic=imread('702.jpg');
pic2=Screen('MakeTexture',wptr,pic);
Screen('DrawTexture',wptr,pic2,[],[x-300,y-150,x,y+150]);
pic=imread('703.jpg');
pic2=Screen('MakeTexture',wptr,pic);
Screen('DrawTexture',wptr,pic2,[],[x,y-150,x+300,y+150]);
Screen('Flip',wptr);

 

%  [string,terminatorChar] = GetEchoString(wptr,'_',x+100,y+200,255,0); 這個函數是用來監聽被試的的輸入的字符的;‘-’是提示/抬頭;后兩個參數是抬頭的位置;最后兩個輸入的字的顏色和輸入框的背景色  按enter鍵輸入完畢並繼續。若需要記錄數字信息,如被試編號,則可以將String改為number,具體可以查詢相關函數

%  下面是當被試做出指定的按鍵反應的時候,實驗程序才會繼續的一段代碼

con=KbName('return'); %return 就是回車鍵
tb1=GetSecs; %記錄當前時間
while 1; %一直循環
  [KD,SECS,KC]=KbCheck; %查詢鍵盤狀態
  tb2=GetSecs; %記錄當前時間
  if KC(con); % 檢測return鍵是否被按
     rt=tb2-tb1;  %計算反應時
     break;  %跳出當前循環
  end
end

%  下面是當被試做出鼠標按鍵反應的時的實驗程序的一段代碼

clear all;close all;
[wptr,~]=Screen('OpenWindow',0,255,[50 50 450 250]);
Screen('DrawText',wptr,'Left button: Draw a Circle');
Screen('DrawText',wptr,'Right button: Exit',0,20);
Screen('Flip',wptr);
while true %一直循環
    [x,y,buttons]=GetMouse(wptr);%檢測當前窗口的鼠標狀態,x與y表示鼠標的坐標位置,button有3個值,1是左鍵,2是中間鍵,3是右鍵
    if buttons(3)  %若按了右鍵
        break; %跳出當前循環
    elseif buttons(1) %若按了左鍵
        Screen('DrawText',wptr,'Left button: Draw a Circle',0,0);
        Screen('DrawText',wptr,'Right button: Exit',0,20);
        Screen('FillOval',wptr,0,[x-10 y-10 x+10 y+10]);%后兩個參數是顏色和位置
        Screen('Flip',wptr);
    end
end
sca;

%  sca是Screen('CloseAll')的簡寫,關閉所有窗口,多用於實驗結束的時候


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM