首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab 2015 &心理工具箱3: CenterRect -正方形不居中

Matlab 2015 &心理工具箱3: CenterRect -正方形不居中
EN

Stack Overflow用户
提问于 2015-06-07 05:29:24
回答 1查看 377关注 0票数 0

这个简短的程序应该显示一个绿色的全屏背景和一个400x400px的红色正方形。但是,红色正方形位于左上角[0, 0, 400, 400],而不是居中。

代码语言:javascript
复制
try
    screens = Screen('Screens'); % check for number of screens (currently '0' because only one screen is connected)
    whichscreen = max(screens);
    [myscreen,rect]=Screen('OpenWindow', whichscreen, [0, 255,0]);
    screen_rect = [0, 0, 1366, 768];
    square_size = [0, 0, 400, 400];
    square_rect = CenterRect(square_size, screen_rect);
    Screen('FillRect', myscreen, [255, 0, 0], square_size);
    Screen('Flip', myscreen);
    KbWait;
    Screen('CloseAll');
catch
    Screen('CloseAll');
end

此外,程序不会在按下键盘上的按钮时关闭。

知道问题出在哪里吗?

谢谢& best,J

EN

回答 1

Stack Overflow用户

发布于 2015-07-13 17:00:59

您使用了错误的变量。您正在绘制一个rect到square_size,而不是您想要的square_rect -因此很明显,该rect被绘制到[0, 0, 400, 400]

代码语言:javascript
复制
try
    screens = Screen('Screens'); % check for number of screens (currently '0' because only one screen is connected)
    whichscreen = max(screens); % 
    [myscreen,rect]=Screen('OpenWindow', whichscreen, [0, 255,0]);
    screen_rect = [0, 0, 1366, 768];
    square_size = [0, 0, 400, 400];
    square_rect = CenterRect(square_size, screen_rect);
    Screen('FillRect', myscreen, [255, 0, 0], square_rect);
    Screen('Flip', myscreen);
    KbWait;
    Screen('CloseAll');
catch
    Screen('CloseAll');
end

此外,通过使用Screen('OpenWindow')提供的rect变量,您可以使其更短,并与您使用的每个监视器兼容。

代码语言:javascript
复制
try
    screens = Screen('Screens');
    whichscreen = max(screens);
    [myscreen,rect]=Screen('OpenWindow', whichscreen, [0, 255,0]);
    square_size = [0, 0, 400, 400];
    square_position = CenterRect(square_size, rect);
    Screen('FillRect', myscreen, [255, 0, 0], square_position);
    Screen('Flip', myscreen);
    KbWait;
    Screen('CloseAll');
catch
    Screen('CloseAll');
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30687749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档