黒木先生
はじめまして、谷と申します。
Psychtoolboxを用いて以下の視覚課題を作成したいのですが、なかなかうまくいかないため質問させていただきます。
まず、作成したい刺激ですが、異なる2種類の視覚刺激を同時に呈示する、というものです(添付ファイルの図参照)。
1つ目は、画面中心に線分を呈示し、被験者がキー操作により任意の方向まで回転できるというものです。
2つ目は、線分の周りのランダムドットが一定方向へ回転するというものです。これは、課題(被験者が動かす線分)とは無関係に動くものです。
すなわち、被験者には動く背景画像が呈示されている最中に、ある方向へ線分をあわせる課題を行ってもらいます。
現状、ここに載っていたプログラムを参考に、ランダムドットが回転する刺激を単独で呈示はできており、キー入力で動く線分もそれ単独では呈示できています。
しかしながら、この2つの刺激を同時に刺激することができていない状況です。
具体的には、背景は、ランダムドット作成しそれを回転移動→呈示をループで回しておりますが、そのループ中には1つ目の刺激は呈示できない、ということになっております。
初歩的な質問になるかもしれませんが、もし何かいい方法等がございましたら教えていただけると幸いです。
どうぞよろしくお願いいたします。
谷
なお、以下に、現状作成している背景画像(ランダムドット)のプログラムを記載します。
↓
try
% 背景色
bgColor = [255 255 255];
screenNumber=max(Screen('Screens'));
%ウィンドウでの呈示
[windowPtr, windowRect]=Screen('OpenWindow', screenNumber, bgColor);
%画面中央の座標
[centerX centerY] = RectCenter(windowRect);
xmax = 1000; % -xmaxから+xmaxまでのピクセル数がランダムドットを描画する四角形の水平方向の大きさです。
ymax = 1000; % 同様に-ymaxから+ymaxまでのピクセル数がランダムドットを描画する四角形の垂直方向の大きさです。
%ランダムドットの数
numDots = 1000; %最大値は1000?
%ドットの大きさ
dotSize = 20; %最大値は20?
%ドットの色
col1 = [0 0 0];
%ドットのx座標
dots(1, :) = 2*xmax*rand(1, numDots) - xmax;
%ドットのy座標
dots(2, :) = 2*ymax*rand(1, numDots) - ymax;
%ドットの像差量(像差を持たないドットについては0を代入する)
%1フレームでの回転量
Ang_sec = 30 / 180; %1秒間での回転角度
Ang = Ang_sec / 60; %1フレームに変換
for r = 1: 600 %画像呈示時間
%回転後のドットの座標
for k = 1:numDots
dots(1,k) = dots(1,k)*cos(Ang)-(dots(2,k))*sin(Ang);
dots(2,k) = dots(1,k)*sin(Ang)+(dots(2,k))*cos(Ang);
end
%ドットの表示
Screen('DrawDots', windowPtr, dots(1:2, :) + [dots(3, :)/2; zeros(1, numDots)], dotSize, col1, [windowRect(3:4)/2], 1);
Screen('Flip', windowPtr);
end