2

我想要一串以一行为中心的文本。我试过这个:

figure
axis([0,10,0,10])
d = 2.81;
center = 5;
line([center - d,center + d],[5,5])
th = text(center,4.9,'mmmmmmmmmmmmmmmmmmmmmm');
set(th,'HorizontalAlignment','center')

文本不在行居中

文本与右侧的行对齐,但不在左侧。上图是屏幕截图。在保存的图形版本中,我并没有一直遇到这个问题。

有没有办法让文本居中一行?我现在不关心调整图形大小,但我想使用默认字体。

4

1 回答 1

1

似乎不可能任意精确地定位文本。我尝试获取文本和画线的大小并相应地重新定位文本。更多关于文本属性的信息在这里

str1 = 'mmmmmmmmmmmmmmmmmmmmmm';
center = 5;
text_line_spacing = 0.2;

figure
axis([0,10,0,10])

% Set text initialy
th = text(0,0,str1);

% Get size of text
ext = get(th, 'Extent');  
% text_width = ext(3);
% text_height = ext(4);

% Draw appropriate line
left = center - ext(3)/2; 
right = center + ext(3)/2;
line([left right], [5 5])

% Reposition original text
set(th, 'Position', [left 5+text_line_spacing]);
于 2013-06-22T19:02:18.317 回答