如何在Psychtoolbox中对齐多个字符?

时间:2019-01-22 11:33:43

标签: matlab psychtoolbox

我是MatLab的超级新手,目前正坐在电脑前,不知道如何解决该问题。 我确实打算向我的参与者显示一个字符串,其中一个字母(字母的位置会有所不同)必须位于屏幕上的某个位置,并且在屏幕上具有不同的颜色,之前和之后的字母必须根据方向进行调整该字母的位置,并使用不同的颜色(基本上我尝试重建spritz.com)。到目前为止一切顺利,我知道如何对齐不水平重叠的代码段。但是我不知道如何处理大小不同的字母(例如:“ y”与“ d”与“ o”),因为它们的位置会有所不同,并且对于参与者而言,它们不会出现在同一行。

所以问题是,如何将一行中的字符串与字符串的不同来源对齐,以使y与o和d处于同一行。现在,每个字母的最低像素在同一行上,但是“ y”的一部分必须比d小。 到目前为止,这就是我的简化代码:

[nxORP, nyORP, wb] = DrawFormattedText2('p',...
    'win', w1, 'sx', 960, 'sy', 553, 'xalign', 'left', 'yalign', 'bottom');

DrawFormattedText2('d',...
    'win', w1, 'sx', wb(1), 'sy', 553, 'xalign', 'right', 'yalign', 'bottom');

DrawFormattedText2('y',...
    'win', w1, 'sx', wb(3), 'sy', 553, 'xalign', 'left', 'yalign', 'bottom');

外面有人可以帮助我吗?

PS:在http://psychtoolbox.org/docs/DrawFormattedText2的帮助下,我看到了这样的信息:“因此,要使用(nx,ny)作为连接更多文本字符串的新起点,您需要使用yPositionIsBaseline == true绘制这些字符串。 ”但我不知道该怎么做以及这是否可以解决。 任何帮助表示赞赏。 祝一切顺利, 多米尼克

1 个答案:

答案 0 :(得分:0)

如果使用等宽字体,则字母的宽度将相等。可用字体会因操作系统而异,但是Courier是常见的等宽字体。

可以通过Screen(‘TextFont’)指定字体一次:http://psychtoolbox.org/docs/Screen-TextFont

或作为使用DrawFormattedText2时的格式标记之一:http://psychtoolbox.org/docs/DrawFormattedText2