2013-06-22 2 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]); 
관련 문제