2013-06-22 3 views
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') 

text is not centered on line

текст выравнивается по линии справа, но не слева. Вышеупомянутое изображение является снимком экрана. У меня не было этой проблемы в сохраненных версиях рисунка.

Есть ли способ центрировать текст на линии? Меня сейчас не интересует изменение размера фигуры, но я бы хотел использовать шрифт по умолчанию.

ответ

1

Похоже, что текст позиции не может быть точным. Я попытался получить размер текста и линии чертежа и переставить позиционирование текста соответственно. Подробнее о свойствах текста here.

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]); 
Смежные вопросы