돋움, 바탕, 굴림, 궁서부터 안상수체까지. 문서 파일을 열어보면 폰트의 종류가 많다. 얼핏 보면 비슷해 보이지만 자세히 보면 제각기 모양이 다르다. 이렇게 다양한 폰트를 만드는 원리를 알면 내 글씨로도 폰트를 만들 수 있을까?
글_조혜인 기자 일러스트_김윤재
손글씨에서는 그 사람의 성격이나 특유의 성향이 드러난다. 반면, 컴퓨터는 폰트 개발자가 만들어 놓은 글꼴로 출력하기 때문에 개성을 표현하기 어렵다. 최근에는 글자를 손으로 쓰기보다는 키보드로 입력하는 경우가 많아져 다양한 폰트가 나오고 있다.
폰트가 다양해지면서 원하는 모양과 크기를 선택할 수 있고, 더 나아가서는 직접 원하는 글씨체를 만들 수도 있게 됐다.
현재 사용하는 폰트는 주로 벡터 방식을 이용하는데, 트루타입폰트(.ttf)와 오픈타입 폰트(.otf)가 대표적이다. 트루타입은 용량이 적어 속도는 빠르지만 해상도가 조금 떨어지는 반면에 오픈타입은 해상도는 높지만 용량이 커서 속도는 느리다. 두 방식은 글자 모서리 부분을 얼마나 세밀하게 조절하느냐에 따라 달라진다.
폰트는 비트맵 방식과 벡터 방식으로 만들 수 있다. 비트맵 폰트는 픽셀이라고 부르는 사각형 모양의 점을 이어 붙여 만든다. 이미지를 확대하면 윤곽선이 계단 모양으로 깨져 지금은 폰트를 만들 때 거의 사용하지 않는다. 이런 문제를 해결한 벡터 폰트는 크기와 방향을 모두 표현하는 벡터를 이용한 수학식으로 만든 문 자의 형태를 선분이나 곡선 데이터의 집합으로 입력해 표시한다. 곡선이기 때문에 확대를 해도 원래와 모양이 같다.
물결표로 폰트를 만든다!?
고무줄의 양끝을 고정해 놓고 중간을 잡아당긴다고 생각해보자. 팽팽한 직선이었던 고무줄이 여러 곡선이 된다. 원하는 지점을 어떻게 끌어당기느냐에 따라 고무줄은 다양한 모양과 방향으로 늘어난다.
물결표 “~”를 그리는 과정을 생각해보자. 시작점 A에서 위로 볼록하게 포물선을 그린 뒤, 아래로 내려오면서 이번에는 오목한 포물선을 그려 점 D에 도착한다. 이때 점 B와 점 D는 곡선을 위아래로 잡아당겨 방향만 유도하고 곡선 위를 지나지는 않는다.
여기에는 베지에 곡선이라는 수학식이 숨어 있다. 두 점을 잇는 선분을 일정한 비율로 나눈 점인 내분점을 이용하는 식이다. 그리고 이 점의 집합이 베지에 곡선이 된다. 세 개의 점을 이용하는 베지에 곡선은 다음과 같은 2차식으로 표현된다.
P (t )=(1-t ){(1-t )A+tB }+t { (1-t )B +tC }, 0 ≤ t ≤ 1
(1-t)A+tB는 A와 B를 잇는 선분을 t:(1-t)의 비율로 나누는 내분점을 의미하고, (1-t)B+tC는 B와 C를 잇는 선분을 t:(1-t)로 나누는 내분점이다. 두 내분점을 차례대로 M과 N이라 두고 간단하게 정리하면 다음과 같다.
P (t )=(1-t )M +tN, 0 ≤ t ≤ 1
두 내분점 M과 N을 잇는 선분을 t:(1-t)로 나눈 점이 P(t)이며, t가 0에서 1까지 움직이면서 포물선이 그려진다.
이 식에서 이용되는 세 개의 점을 ‘조절점’이라고 한다. 양 끝점(A,C)은 고정돼 있지만 중간에 있는 점(B)은 방향만 알려주고 선 위를 지나지는 않는다. 선을 계속 연결해 윤곽을 만들어놓고, 원하는 점을 당겨 조절하면 부드러운 곡선이 나온다. 조절점이 많을수록 곡선이 정교해진다.
처음 그린 베지에 곡선의 도착점을 새로운 시작점으로 설정해 같은 방법으로 그린다. 최초의 시작점이 도착점이 될 때까지 연속해서 그리면 문자의 윤곽선이 완성된다.
세 점만 이용하면 2차식의 포물선이 그려지고, 네 점을 사용하면 3차식의 베지에 곡선이 물결 모양을 만든다. 베지에 3차식으로는 두 번의 굴곡을 한 번에 나타낼 수 있어 폰트를 만들 때 베지에 2차식을 쓸 때보다 더 효율적이다. 트루타입은 베지에 2차식을 사용하고 오픈타입은 3차식을 사용해 앞서 말한 차이가 나타난다.
[조글로•潮歌网]조선족네트워크교류협회•조선족사이버박물관• 深圳潮歌网信息技术有限公司 网站:www.zoglo.net 电子邮件:zoglo718@sohu.com 公众号: zoglo_net [粤ICP备2023080415号] Copyright C 2005-2023 All Rights Reserved.
[필수입력] 닉네임
[필수입력] 인증코드 왼쪽 박스안에 표시된 수자를 정확히 입력하세요.