2012-01-31 1 views
1

내가 문자열의 전체 폭의 비율로 문자열의 문자 폭의 각을 결정하기 위해 Rubygame과를 사용하려고 해요 ...Rubygame과 :: TTF - 문자열의 폭과 모두의 폭 그것의 문자 사이의 차이

문자열에 대한
 
require "rubygems" 
require "rubygame" 

include Rubygame 

TTF.setup 

$font = TTF.new "/Library/Fonts/Times New Roman.ttf", 40 

total = 0 

"Hello TrueType text! My name is Davide".each_char do |c| 
    size = $font.size_text c 

    #puts "Char: #{c} - #{size[0]}/#{total}" 

    total = total + size[0] 
end 

puts "Size: #{$font.size_text('Hello TrueType text! My name is Davide')[0]}" 
puts "Total: #{total}" 
puts "Difference: #{total - $font.size_text('Hello TrueType text! My name is Davide')[0]}" 

프로그램의 출력은 상기 ...

 
Size: 642 
Total: 650 
Difference: 8 

... 그리고 문자열의 길이와 함량에 따라 달라진다.

결과는 비슷하지만 ... 문자 너비와 문자열 너비의 합계가 8인데 왜 차이가 있는지 아는 사람이 있습니까?

어떤 도움도 대단히 감사하겠습니다 ...

건배 ...

다비드 나는 또한이 일을 다른/더 나은 방법에 대한 제안에 열려있어

PS.

답변

1

결과는 비슷하지만 ... 문자 너비와 문자열 너비의 합계가 8 인 이유는 누구에게 알 수 있습니까?

예 : 좋은 글꼴과 마찬가지로 좋은 트루 타입 글꼴은 레이아웃 엔진에 의해 커닝됩니다. http://en.wikipedia.org/wiki/Kerning

가변 폭 글꼴을 사용하여 레이아웃을 수행 할 때 (원하는 경우) 항상 전체 문자열 너비를 사용하십시오. 문자 당 숫자는 의미가 없습니다. (... 실제로 코드를 작성하는 "올바른 방법"은 레이아웃을 사용하는 것을 사용하는 것입니다. Pango은이를 수행하는 프로젝트이므로 코드 행을 세고 실제로 작성하고 싶은지 고려해보십시오 자신).