我如何获得文本中每个单词的边界矩形(用于阅读眼动追踪)?

How do i get the bounding rect of each word in a text (for reading eyetracking)?

对于眼动追踪研究,我需要绘制到 window 的文本中每个单词的位置。 我可以看到如何使用

将整个文本的边界框作为 return 值
[nx, ny, textbounds] = DrawFormattedText(win, tstring)

有没有比使用这个函数逐字绘制整个句子更好的方法?

应该这样做:

teststr = {'Hello World!' ; 'How are you doing?'}

ystart = 100
xstart = 200
wordgap = 10

for i=1:size(teststr,1)

  str=teststr{i};
  wordlist = strsplit(str , ' ');

  for j=1:size(wordlist)(1)
    [nx, ny, textbounds]=DrawFormattedText(win, wordlist{j} ,xstart, ystart);
    poslist{j} = textbounds;
    xstart=nx+wordgap;
  end

end

不漂亮,但很管用。如果你有换行符,你会遇到问题。

编辑:2015-07-14:添加了来自 sven.io

的字间距建议