使用PTB绘制正方形

时间:2015-04-29 09:22:43

标签: matlab psychtoolbox

我想并排绘制4个正方形,使用PTB进行实验,但代码不起作用.. 这是我的代码,

square_size = [0 0 50 50];               
squareXpos = [screenXpixels * 0.125 screenXpixels * 0.25 screenXpixels * 0.5  screenXpixels * 0.75];   
numSqaures = length(squareXpos);                 
allColors = [1 0 0; 0 1 0; 0 0 1; 1 0 0];                      
allRects = nan(4, 4);                      
for i = 1:numSqaures                            
    allRects(:, i) = CenterRectOnPointd(square_size, squareXpos(i),  yCenter);             
end                            
Screen('FillRect', window, allColors, allRects);                        
Screen('Flip', window);                         
KbStrokeWait;                      

如果有人知道如何解决这个问题,请帮助我。

1 个答案:

答案 0 :(得分:0)

如果没有看到错误,很难说。

如果我不得不猜测,那么输入的格式可能有问题。

乍一看我注意到的潜在问题。

  1. Psychtoolbox(与matlab不同)使用从0到255而不是0 - 1的RGB刻度。使用您的代码,所有颜色将显示为黑色。而不是[1,0,0]为红色,使用[255,0,0]。

  2. 你的allColors矩阵是nItems X 3(RGB),但是函数想要的是相反的方式。您需要转置:allColors'而不是输入allColors。

  3. 如果我在与pscyhtoolbox挣扎,我经常检查的第一件事就是输入的格式化。要获得有关输入的适当格式的帮助,请键入:

    Screen('FillRect?')