我如何获得文本中每个单词的边界矩形(用于阅读眼动追踪)?
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
的字间距建议
对于眼动追踪研究,我需要绘制到 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