DotDemo
DotDemo(showSprites, waitframes)
showSprites = 0 のとき、もしくは引数が指定されていないとき、ドットを描画します。
showSprites = 1 のとき、ドットの代わりに顔文字「 :) 」を90度回転させたものが呈示されます。これはスプライトのデモです。
showSprites = 2 のとき、ドットの代わりに四角形を描画します。アンチエイリアスの参考にもなるはずです。
waitframesは、あるフレームから次のフレームに切り替わるまでのフレーム数です。この値が大きいと、ドットがゆっくり動きます。
if differentsizes>0 % drawing large dots is a bit slower
ndots=round(ndots/5);
end
様々なサイズのドットを描画する場合は時間がかかるため、ドットの個数を5分の1に減らしています。
Screen('BlendFunction', w, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
各ドットをなめらかな(ギザギザしてない)円として描画するためにアルファブレンディング(アンチエイリアシング)を有効にしています。
fps=Screen('FrameRate',w); % frames per second
リフレッシュレート(1秒間に何回画面を書き換えるか)を取得しています。
ifi=Screen('GetFlipInterval', w);
1フレームを書き換えるのに要する時間(inter frame interval)を取得しています。単位は「秒」です。
if fps==0
fps=1/ifi;
end;
fpsを正しく取得できないことがあるようで、そのときのためにifiから計算しています。
Priority(MaxPriority(w));
MatlabがCPUを占有する時間を設定しています。詳しくは help Priority をご覧ください。
ppd = pi * (rect(3)-rect(1)) / atan(mon_width/v_dist/2) / 360;
視角の大きさからピクセルの値に変換するために、視角1度あたりのピクセル数を計算しています。実際の環境に合わせて、ディスプレイの横幅(mon_width)および観察距離(v_dist)を測定する必要があります。