KR100227585B1 - 문자 생성 장치 - Google Patents

문자 생성 장치 Download PDF

Info

Publication number
KR100227585B1
KR100227585B1 KR1019960045587A KR19960045587A KR100227585B1 KR 100227585 B1 KR100227585 B1 KR 100227585B1 KR 1019960045587 A KR1019960045587 A KR 1019960045587A KR 19960045587 A KR19960045587 A KR 19960045587A KR 100227585 B1 KR100227585 B1 KR 100227585B1
Authority
KR
South Korea
Prior art keywords
font
character
data
shape
unit
Prior art date
Application number
KR1019960045587A
Other languages
English (en)
Other versions
KR970022948A (ko
Inventor
요시꼬 이마끼
스스무 하세가와
미네히로 곤야
유따가 시기
마사유끼 후지사와
메구미 이또
Original Assignee
마찌다 가쯔히꼬
샤프 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마찌다 가쯔히꼬, 샤프 가부시키가이샤 filed Critical 마찌다 가쯔히꼬
Publication of KR970022948A publication Critical patent/KR970022948A/ko
Application granted granted Critical
Publication of KR100227585B1 publication Critical patent/KR100227585B1/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/246Generation of individual character patterns of ideographic or arabic-like characters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

데이타량을 증가시키지 않고 다중 폰트 시스템(multiple-font system)을 실현하는 문자 생성 장치가 제공된다. 문자 데이타 기억부에는 기본 문자의 문자 데이타가 기억되고 첨부용 부품 데이타 기억부에는 첨부용 부품 데이타가 기억된다. 형상 인식부는 키보드로부터 지정된 폰트 코드와 문자 번호에 기초하여 폰트 속성 기억부를 참조하여 처리 대상 엘리먼트가 속하는 스트로크의 각도 뿐만 아니라 처리 대상 엘리먼트의 길이 및 각도를 구한다. 첨부용 부품 데이타 변형부는 폰트 속성 기억부를 참조하여 선택된 첨부용 부품 데이타로 확대/축소 처리나 회전 처리를 행한다. 데이타 합성부는 확대/축소 처리 및 회전 처리가 행해진 첨부용 부품을 처리 대상 엘리먼트에 첨부한 문자 데이타를 생성한다. 그러므로, 기본 폰트에서 처리 대상 엘리먼트에 첨부용 부품을 첨부함으로써 다중 폰트 시스템이 적은 데이타량으로 실현될 수 있다.

Description

문자 생성 장치{CHARACTER GENERATION DEVICE}
본 발명은 다중 폰트 시스템(다폰트화; multiple font system)을 실현할 수 있는 문자 생성 장치의 개량에 관한 것이다.
일본어 문자의 경우에는, 1개의 폰트를 작성하고자 하면 유럽 폰트에 비해 매우 많은 문자를 작성할 필요가 있다. 그 문자수는, 유럽 폰트의 경우에는 1 폰트 당 200 문자 정도인데 비해, 일본어 문자의 경우에는 1 폰트 당 약 7000 문자나 필요하다. 따라서, 문자 생성 장치에 있어서, 이미 등록되어 있는 폰트에 새롭게 작성된 폰트를 등록하는 경우에는 막대한 노동력과 시간이 필요하다. 또한, 새롭게 등록하는 데이타량도 방대하게 된다.
상기 폰트 중에는, 엘리먼트의 형상을 변화시키기만 해도 꽤 인상이 다른 (경우에 따라서는 완전히 다른 폰트로 인지됨) 폰트를 생성할 수 있는 것이 있다. 그래서, 상기 엘리먼트의 형상을 변화시킴으로써 다른 폰트를 생성하는 방법이 제안되어 있다(일본국 특개평 3-234559호 공보 및 특개평 4-56894호 공보). 여기서, 상기 엘리먼트는 도 31a, 31b에 도시한 바와 같이, 문자 1을 구성하는 각 스트로크(stroke)(2a, 2b, 2c, …) 각각의 선단 부분[도 31b에서 태선(bold line)으로 도시한 부분](3)의 것이다.
이하, 일본국 특개평 3-234559호 공보 및 특개평 4-56894호 공보의 내용에 의거하여, 상기 엘리먼트의 형상을 변화시킴으로써 다른 폰트를 생성하는 방법에 관해서 설명한다.
우선, 도 32a 내지 32c를 참조하면서, 일본국 특개평 3-234559호 공보에 관해서 간단히 설명한다. 고딕체에 의한 각 문자를 구성하는 각 스트로크의 아우트라인(윤곽)을, 직선과 베지어 곡선(Bezier curve)에서 근사한 아우트라인 문자 데이타로 표현한다. 그리고, 도 32a에 도시한 바와 같이, 상기 아우트라인 문자 데이타에 기초하여, 엘리먼트(3)의 양끝의 묘화점(plotting point) "a" 및 "b"의 중간에 묘화점 "c"를 설정한다. 그리고, 도 32b에 도시한 바와 같이, 상기 묘화점 "a", "b" 각각으로부터 스트로크에 있어서의 아우트라인을 따라서 소정 거리만 진행한 위치에 묘화점 "a'", "b'"를 설정한 후, 묘화점 "a", "b"를 삭제한다. 그리고, 도 32c에 도시한 바와 같이, 새롭게 설정한 3개의 묘화점 "a'", "b'", "c"를 이용하여, 고딕체의 각 엘리먼트를 뾰족하게 한 엘리먼트를 갖는 폰트를 생성하는 것이다.
다음에, 도 33a 내지 33c를 참조하면서, 일본국 특개평 4-56894호 공보에 관해서 간단하게 설명한다. 각 문자를 구성하는 각 스트로크의 아우트라인선의 변위점 좌표를 벡터로서 표현한 벡터 문자 데이타를 생성한다. 그리고, 도 33a에 도시한 바와 같이, 엘리먼트(3)의 벡터 문자 데이타를 삭제하고, 미리 종점 형상 기억부에 등록되어 있는 도 33b에 도시한 바와 같은 종점 형상(4)의 벡터 문자 데이타와 교체하여, 도 33c에 도시한 바와 같이, 고딕체에서 환 고딕체(round Gothic font)를 형성하는 것이다.
그러나, 상기 종래의 엘리먼트의 형상을 변화시킴으로써 다른 폰트를 생성하는 방법에 있어서는, 이하와 같은 문제가 있다.
우선, 일본국 특개평 3-234559호 공보에 있어서는, 직선과 베지어 곡선에서 근사한 아우트라인 문자 데이타에 의해서, 새롭게 묘화점(또는 제어점)을 연산에 의해서 파생시켜 엘리먼트 형상을 변경하는 것이고, 우선의 엘리먼트 형상의 변경은 가능하다. 그런데, 연산에 의해서 새로운 묘화점(제어점)을 파생시키는 관계상, 상기 엘리먼트를 복잡한 엘리먼트 형상으로의 변경은 매우 곤란하다고 하는 문제가 있다.
또한, 일본국 특개평 4-56894호 공보에 있어서는, 일단 엘리먼트 부분의 벡터 문자 데이타를 소거한 후에 미리 등록되어 있는 종점 형상의 벡터 문자 데이타와 교체한다. 이 경우에도 일단 엘리먼트 형상의 변경은 가능하다. 그런데, 단순히, 미리 준비한 종점 형상으로 교체하는 것이기 때문에, 처리 대상 엘리먼트의 방향이 스트로크의 연장 방향으로 수직인 방향인 경우에는 문제는 없지만, 어떤 각도를 갖고 있는 경우에는, 엘리먼트 형상을 교체한 후의 문자의 디자인에 지장을 초래할 경우가 있다.
또한, 상기 종점 형상은, 엘리먼트 부분의 벡터 문자 데이타를 일단 삭제하여 다른 종점 형상의 벡터 문자 데이타를 다시 연결하므로, 엘리먼트 형상 변경 후의 문자는 1개의 아우트라인으로 표현되도록 된다. 즉, 문자를 표현하는 아우트라인의 내부에 독립한 도형을 갖게 할 수도 없고, 도 34에 도시한 바와 같은, 독립한 반전 디스플레이 부분(5)를 내포하는 폰트를 생성하는 것은 불가능하다.
최근, 디스크 탑 퍼블리싱(desk top publishing)의 인식이 고조되고, 보다 많은 오리지널리티(originalities)에 넘친 폰트를 취급하고 싶다고 하는 필요성이 높아지고 있다. 그런데, 한편에서는, 하드웨어는 보다 소형화, 퍼스널화하여 되어 있고, 특히 폰트의 데이타량이 지나치게 많다고 하는 문제가 발생되고 있다.
그래서, 본 발명의 목적은, 데이타량을 증가하지 않고, 용이하게 고속의 다 폰트 시스템을 실현할 수 있는 문자 생성 장치를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명은, 기본의 폰트에서 문자의 처리 대상 부분의 형상의 부품을 중첩시켜 상기 처리 대상 부분의 형상을 변경하여, 새로운 폰트의 문자를 생성하는 문자 생성 장치를 제공하는데, 상기 장치는,
폰트를 나타내는 폰트 코드와, 상기 폰트의 명칭과, 상기 폰트의 기본이 되는 폰트를 나타내는 기본 폰트 코드와, 상기 폰트의 생성시에 사용되는 부품을 나타내는 부품 코드와, 상기 폰트를 생성하기 위한 변형 정보를 포함하는 폰트 속성을 기억하기 위한 폰트 속성 기억부;
상기 기본 폰트에서 문자의 형상을 나타내는 문자 데이타를 기억하기 위한 문자 데이타 기억부;
상기 부품의 형상을 나타내는 부품 데이타를 기억하기 위한 부품 데이타 기억부;
생성될 폰트를 지정하기 위한 입력부;
상기 폰트 속성들을 참조하여, 상기 입력부에서 지정된 폰트의 기본이 되는 폰트에서 문자의 문자 데이타를 상기 문자 데이타 기억부에서 판독하고, 이 판독된 문자 데이타에 기초하여, 상기 기본의 폰트의 문자의 처리 대상 부분의 형상을 인식하기 위한 형상 인식부;
상기 폰트 속성을 참조하여, 상기 입력부에서 지정된 폰트의 생성시에 사용될 부품 데이타를 상기 부품 데이타 기억부에서 판독하고, 상기 사용 부품의 크기 및 배치가 상기 처리 대상 부분의 형상에 매칭(matching)되도록 상기 판독된 부품 데이타를 상기 처리 대상 부분의 형상에 기초하여 변형하기 위한 부품 데이타 변형부; 및
상기 형상 인식부에 의해서 판독된 기본 폰트의 문자 데이타와 상기 부품 데이타 변형부에 의해서 변형된 부품 데이타 양자 모두를 기초로 하여, 상기 기본 폰트에서의 문자의 처리 대상 부분에 상기 부품을 중첩시켜 문자가 이루어지는 상기 지정된 폰트에서 문자의 문자 데이타를 생성하는 데이타 합성부를 구비하고 있다.
상기 구성에 의하면, 상기 데이타 합성부에 의해서, 상기 형상 인식부에 의해 판독된 기본 폰트의 문자 데이타와 상기 부품 데이타 변형부에 의해 변형된 부품 데이타에 기초하여, 상기 기본 폰트에서 문자의 처리 대상 부분에 상기 사용 부품을 중첩하여 이루어지는 지정된 폰트에서 문자의 문자 데이타가 생성된다.
따라서, 새로운 묘화점을 연산하거나, 묘화점을 삭제/재연결하거나 하지 않고도, 상기 부품 데이타의 변형과 중첩시킴으로써 적은 연시간(manhour)수로 새로운 폰트의 문자가 생성된다.
또한, 한 실시예에서 상기 문자 데이타 기억부에 기억된 문자 데이타는 상기 부품을 중첩시킬 동안 이용되는 중첩 정보를, 상기 기본 폰트에서 문자의 각각의 처리 대상 부분별로 또한 생성될 각각의 폰트 별로 갖고 있다.
상기 구성에 의하면, 기본의 폰트에서 동일 문자만으로도, 처리될 다른 부분이나 생성도리 다른 폰트에 다른 중첩 방법이 설정된다.
한 실시예에서 상기 형상 인식부는 상기 폰트 속성의 변형 정보와 상기 판독된 문자 데이타에서 해당 폰트와 처리 대상 부분의 중첩 정보를 참조하여 부품의 중첩 방법을 판정하고, 이 판정 결과에 기초하여 상기 형상의 인식을 행한다.
상기 구성에 의하면, 기본의 폰트에서 동일 문자만으로도 처리도리 상이한 부분이나 생성될 폰트에 대해 상이한 중첩 방법을 이용하여, 상기 부품 사이에 또는 부품과 처리 대상 부분 사이의 접촉이 회피된다.
한 실시예에서 상기 형상 인식부에 의해서 인식되는 형상의 처리 대상 부분은 문자를 구성하는 소정의 스트로크의 선단 부분인 엘리먼트이고,
상기 형상 인식부는 상기 기본의 폰트에서 문자의 상기 엘리먼트의 길이를 인식한다.
상기 구성에 의하면, 상기 기본의 폰트에서 문자의 길이에 맞도록 상기 사용 부품의 길이를 최적하게 설정할 수 있다.
한 실시예에서, 상기 형상 인식부에 의해서 인식되는 형상의 처리 대상 부분은 문자를 구성하는 스트로크 및 이 스트로크의 선단 부분인 엘리먼트이고,
상기 형상 인식부는 상기 기본의 폰트에서 문자의 상기 엘리먼트 및 상기 엘리먼트가 속하는 스트로크의 적어도 한쪽의 경사 각도를 인식한다.
상기 구성에 의하면, 상기 기본의 폰트에서 문자의 상기 엘리먼트 및 스트로크의 적어도 한쪽의 경사 각도에 맞도록 상기 사용 부품의 경사 각도를 최적하게 설정할 수 있다.
한 실시예에서 상기 부품 데이타 변형부는 상기 사용 부품의 길이가 상기 엘리먼트의 길이에 맞도록, 또는 상기 사용 부품의 경사 각도가 상기 엘리먼트 및 스트로크의 적어도 한쪽의 경사 각도에 맞도록 상기 부품 데이타를 변형한다.
상기 구성에 의하면, 상기 사용 부품의 길이가 엘리먼트의 길이에 맞도록 설정되고 또는 상기 사용 부품의 경사각이 상기 엘리먼트 및 스트로크의 적어도 한쪽의 경사각에 맞는 경사각으로 설정되어 있으므로, 상기 처리 대상 부분에 중첩된 상기 부품의 길이 또는 경사각은 소정의 위화감이 없는 길이 혹은 경사각이 된다.
도 1은 본 발명의 문자 생성 장치의 블록도.
도 2는 도 1에 있어서의 폰트 속성 기억부(font attribute storage)에 기억된 폰트 속성의 구성의 한 예를 도시한 도면.
도 3은 도 1의 문자 속성 기억부에 기억된 아우트라인 문자 데이타(outline character data)의 구성의 한 예를 도시한 도면.
도 4는 도 1의 첨부용 부품 데이타 기억부에 기억된 첨부용 부품 데이타의 한 예를 도시한 도면.
도 5a 및 도 5b는 폴리곤의 설명도.
도 6은 도 1에 있어서의 CPU의 제어 하에 실행되는 문자 생성 처리의 플로우차트.
도 7은 도 6에 계속되는 문자 생성 처리의 플로우차트.
도 8은 도 7에 계속되는 문자 생성 처리의 플로우차트.
도 9은 도 6에 계속되는 문자 생성 처리의 플로우차트.
도 10은 도 9에 계속되는 문자 생성 처리의 플로우차트.
도 11은 도 6에 계속되는 다른 문자 생성 처리의 플로우차트.
도 12a 및 도 12b는 도 3에 도시된 아우트라인 문자 데이타의 실제 설명도.
도 13a, 13b, 13c, …, 및 13i는 첨부용 부품의 예를 도시한 도면.
도 14a, 14b, 14c, 14d 및 14e는 새롭게 생성된 폰트의 예를 도시한 도면.
도 15는 처리 대상 엘리먼트의 길이 및 각도 산출의 설명도.
도 16은 도 13에 도시된 첨부용 부품의 확대 설명도.
도 17은 도 16에 도시된 첨부용 부품의 회전의 설명도.
도 18은 도 15에 도시된 처리 대상 엘리먼트에 도 17에 도시된 첨부용 부품이 첨부되는 상태를 도시한 도면.
도 19는 처리 대상 엘리먼트가 속하는 스트로크의 각도 산출의 설명도.
도 20은 도 17에 도시된 첨부용 부품과 상이한 첨부용 부품의 회전의 설명도.
도 21은 도 19에 도시된 처리 대상 엘리먼트에 도 20에 도시된 첨부용 부품이 첨부되는 상태를 도시한 도면.
도 22는 처리 대상 엘리먼트의 각도 및 이 처리 대상 엘리먼트가 속하는 스트로크의 각도 산출의 설명도.
도 23a 및 도 23b는 도 17 및 도 20에 도시된 첨부용 부품과 상이한 첨부용 부품의 회전의 설명도.
도 24는 도 22에 도시된 처리 대상 엘리먼트에 도 23a 및 도 23b에 도시된 첨부용 부품이 첨부된 상태를 도시한 도면.
도 25a 및 도 25b는 도 12a 및 도 12b에 도시된 아우트라인 문자 데이타의 문자 스트로크 폭이 변경한 예를 도시한 도면.
도 26a 및 도 26b는 도 17, 도 20, 및 도 23a와 도 23b에 도시된 첨부용 부품과 상이한 첨부용 부품의 회전의 설명도.
도 27a 및 도 27b는 도 18, 도 21 및 도 24에 도시된 첨부 방법과 상이한 방법으로 도 26a 및 도 26b에 도시된 첨부 부품이 첨부되는 상태를 도시한 도면.
도 28은 처리 대상 엘리먼트가 속하는 스트로크의 각도 산출의 설명도.
도 29는 도 17, 도 20, 도 23a와 도 23b, 도 26a와 도 26b에 도시된 첨부용 부품과 상이한 첨부용 부품의 회전의 설명도.
도 30은 도 28에 도시된 처리 대상 엘리먼트에 도 29에 도시된 첨부용 부품이 첨부되는 상태를 도시한 도면.
도 31a 및 도 31b는 엘리먼트의 설명도.
도 32a, 도 32b 및 도 32c는 종래 기술에 따른 엘리먼트 형상 변화 방법의 설명도.
도 33a, 도 33b 및 도 33c는 도 32a, 도 32b 및 도 32c의 방법 이외의 종래 기술에 따른 엘리먼트 형상 변화 방법의 설명도.
도 34는 엘리먼트 형상의 변화에 의해 얻어지는 폰트의 예를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
11 : 키보드
12 : 보조 메모리
13 : 주 메모리
14 : CPU
15 : 비트 맵 메모리
16 : 디스플레이 유니트
17 : 출력 유니트
18 : 폰트 속성 기억부
19 : 문자 데이타 기억부
20 : 첨부용 부품 데이타 기억부
21 : 입력 버퍼
22 : 출력 버퍼
23 : 기억부
24 : 형상 인식부
25 : 첨부용 부품 데이타 변형부
26 : 데이타 합성부
27 : 워크용 메모리
34 : 부품 번호
35 : 변형 정보
47, 58 : 폴리콘 정보
48, 59 : 포인트 정보
51∼56 : 플래그
61, 71, 71' : 폴리콘
72∼80 : 첨부용 부품
이하, 본 발명을 첨부된 도면에 도시되어 있는 실시예에 의해 상세하게 설명한다.
도 1은 본 실시예의 문자 생성 장치에 있어서의 블럭도이다. 또한, 본 실시예에 있어서는, 1개의 문자를 구성하는 각 스트로크의 아우트라인을 직선과 묘화점 및 제어점으로 이루어지는 베지어 곡선으로 근사한 아우트라인 문자 데이타를 문자 데이타로서 이용하는 경우를 예로 설명하지만, 본 발명에 있어서 이용하는 문자 데이타는 이에 한정되지 않는다.
도 1에 도시한 바와 같이, 본 문자 생성 장치는 키보드(11), 보조 메모리(12), 주 메모리(13), CPU(중앙 연산 처리 장치)(14), 비트 맵 메모리(15), 디스플레이 유니트(16) 및 출력 유니트(17)에 의해서 개략 구성되어 있다.
상기 키보드(11)는 생성되는 폰트의 폰트 코드와 문자의 문자 번호를 입력할 때에 이용된다. 보조 메모리(12)는 생성하고자 하는 폰트마다의 중첩에 관한 정보인 폰트 속성을 기억하는 폰트 속성 기억부(18)와, 생성하고자 하는 폰트의 기본이 되는 폰트의 아우트라인 문자 데이타를 기억하는 문자 데이타 기억부(19)와, 상기 기본 폰트의 처리 대상 부분의 형상을 변경할 때에 사용되는 첨부용 부품 데이타를 기억하는 첨부용 부품 데이타 기억부(20)를 갖고 있다. 주 메모리(13)는 보조 메모리(12)로부터 판독된 아우트라인 문자 데이타를 임시 기억하는 입력 버퍼(21)와, 형상을 변형한 첨부용 부품 데이타를 임시 기억하는 출력 버퍼(22)와, 형상 변형 정보를 기억하는 기억부(23(를 갖는다.
또한, 이하에 있어서는, 상기 첨부용 부품 데이타로 표현되는 1개의 도형을 첨부용 부품이라고 한다.
상기 CPU(14)는 기본이 되는 폰트의 아우트라인 문자 데이타의 처리 대상 부분을 추출하여 그 형상을 인식하는 형상 인식부(24)와, 첨부용 부품의 형상을 변형하는 첨부용 부품 데이타 변형부(25)와, 형상 인식부(24) 및 첨부용 부품 데이타 변형부(25)에 의해서 얻어진 결과를 합성하여 새로운 폰트의 문자의 아우트라인 문자 데이타를 생성하는 데이타 합성부(26)와, 작업용 메모리(27)를 갖는다. 그리고, CPU(14)는 보조 메모리(12)와 주 메모리(13)에 기억되어 있는 여러 데이타에 기초하여 문자 생성을 위한 제어를 행한다. 비트 맵 메모리(15)는 CPU(14)의 제어 하에서 생성된 문자의 패턴을 비트 맵 데이타에 전개하여 디스플레이 유니트(16) 또는 출력부(17)에 송출한다. 디스플레이 유니트(16)는 상기 비트 맵 메모리(15)로부터 유도되는 비트 맵 데이타에 기초하여 문자 화상을 디스플레이한다. 출력 유니트(17)는 프린터 등으로 구성되고, 상기 비트 맵 메모리(15)로부터 유도되는 비트 맵 데이타에 기초하여 문자를 인자한다.
여기서, 도 5a에 도시한 바와 같이 직선과 베지어 곡선으로 표현되는 아우트라인 문자 데이타에 있어서, 도 5b에 도시한 바와 같은 상기 스트로크의 아우트라인으로 이루어지는 자루형(pouch-like)의 폐쇄된 도형(61)을 폴리곤이라고 말한다. 또한, 폴리곤(61)을 구성하는 아우트라인 문자 데이타의 배열 방향이 시계 회전인 경우에는, 그 폴리곤(61) 내부는 해지(hatch)된다(도 14a 내지 14e). 한편, 아우트라인 문자 데이타의 배열 방향이 반시계 회전인 경우에는, 그 폴리곤(61) 내부는 블랭크(blank)이다(도 12a, 12b).
또한, 이하에 사용하는 용어 「첨부함(첨부)」이란 기본 폰트의 아우트라인 문자 데이타에 있어서의 처리 대상 부분에, 별도로 준비한 첨부용 부품 데이타를 중첩시키는 것을 의미한다.
다음에, 상기 보조 메모리(12)에 관해서 상세히 설명한다.
상술된 바와 같이, 상기 폰트 속성 기억부(18)에는, 생성하고자 하는 폰트마다가 중첩에 관한 정보인 폰트 속성이 기억되어 있다. 이 폰트 속성은 도 2에 도시한 바와 같이, 생성하고자 하는 폰트를 도시한 폰트 코드(31), 생성하고자 하는 폰트의 명칭(32), 생성하고자 하는 폰트의 기본이 되는 폰트(기본 폰트)를 도시하는 기본 폰트 코드(33), 생성에 사용하는 부품을 도시하는 부품 번호(34), 중첩 처리에 필요한 변형 정보(35)로 이루어진다.
상기 부품 번호(34)는 생성하고자 하는 폰트에 대응하는 첨부용 부품이 2 종류 존재하는 경우에는, 표준 첨부용 부품(이하, 제1 부품이라고 말한다)를 나타내는 제1 부품 번호(36)와, 특수 첨부용 부품(이하, 제2 부품이라고 말한다)를 나타내는 제2 부품 번호(37)를 구별하고 지정한다.
상기 변형 정보(35)는 기본 폰트의 문자에 있어서의 처리 대상 부분의 전부에 대하여 유효한 부품 첨부 방법을 지정하는데 사용되며, 첨부용 부품을 엘리먼트의 크기에 따라 확대/축소하는가 아닌가를 지시하는 확대/축소 정보(38), 엘리먼트의 경사 각도를 구하는가 아닌가를 지시하는 정보(39), 스트로크의 경사 각도를 구하는지의 여부를 지시하는 정보(40), 부품 첨부의 기준점을 엘리먼트의 중점으로 하는지의 여부를 지시하는 정보(41)로 이루어진다.
또한, 상기 부품 번호(34) 및 변형 정보(35)에 있어서의 지시 사항은 적절하게 늘리는 것도 가능하다.
또한, 상기 문자 데이타 기억부(19)에는 생성되는 폰트의 기본이 되는 폰트의 아우트라인 문자 데이타로부터 기억되어 있다. 이 아우트라인 문자 데이타는 도 3에 도시한 바와 같이, 폰트의 명칭을 도시한 폰트명(45), 해당 폰트의 각 문자를 도시하는 문자 코드(46)(JIS에 준거), 해당 문자를 구성하는 각 폴리곤의 정보를 도시하는 폴리곤 정보(47), 해당 폴리곤을 구성하는 각 포인트의 정보를 도시하는 포인트 정보(48)로 이루어진다.
또한, 상기 문자 코드(46)에는 해당 문자를 구성하는 폴리곤의 수가 포함되어 있다. 폴리곤 정보(47)에는 해당 폴리곤을 구성하는 포인트의 수로부터 포함되어 있다. 포인트 정보(48)에는 해당 포인트의 포인트 번호 및 좌표값 및 부품 첨부 처리에 관한 정보인 변형 속성(플래그)이 포함되어 있다.
상기 포인트 정보(48)의 변형 속성은 기본 폰트의 문자에 있어서의 각 처리 대상 부분에 대해 유효한 부품 첨부 방법을 지시하는 것이고, 해당 포인트는 엘리먼트의 시점인 것을 도시하는 엘리먼트 시점 플래그(49), 엘리먼트의 종점인 것을 도시하는 엘리먼트 종점 플래그(50), 부품 첨부를 행하는지의 여부를 지정하는 첨부 플래그(51), TWIG 폰트 생성시에 제1 부품을 첨부할지 제2 부품을 첨부할지를 지정하는 플래그(52), PRINCESS 폰트 생성시에 상기 제1 부품을 첨부할지 제2 부품을 첨부할지를 지정하는 플래그(53), PIERROT 폰트 생성시에 상기 제1 부품을 첨부할지 제2 부품을 첨부하는지를 지정하는 플래그(54), PIERROT 폰트 생성시에 부품 첨부의 기준점을 제1점으로 할지 제2점으로 할지를 지정하는 플래그(55), TUKUSI 폰트 생성시에 상기 제1 부품을 첨부할지 제2 부품을 첨부할지를 지정하는 플래그(56)의 8개의 플래그로 이루어진다.
또한, 이 플래그는 적절히 늘리는 것도 가능하다.
도 3에 도시하는 아우트라인 문자 데이타는 도 12a에 도시한 바와 같이, 상기 폰트명은 POP이고, 이 POP 폰트에 속해 있는 문자 중 JIS 코드 3026의 문자「사랑」이고, 이 문자가 갖는 13개의 폴리곤 중 폴리곤 번호 13의 폴리곤(71)의 포인트 정보이다.
이 폴리곤(71)에는, 도 12b에 도시한 바와 같이, 4개의 묘화점 al, a4, a5, a8(이하, 단순히 포인트라고 하는 경우는 묘화점을 가리킨다) 및 4개의 제어점 a2, a3, a6, a7이 속해 있다.
상기 첨부용 부품 데이타 기억부(20)에는 첨부용 부품 데이타가 기억되어 있다. 이 첨부용 부품 데이타는 상기 아우트라인 문자 데이타와 마찬가지로, 직선과 베지어 곡선을 이용하여 표현된다. 그리고, 그 구성은, 도 4에 도시한 바와 같이, 제1 부품 및 제2 부품으로 이루어지는 모든 첨부용 부품의 첨부용 부품 데이타에 대한 일련 번호인 부품 코드(57), 해당 첨부용 부품을 구성하는 폴리곤의 정보를 도시한 폴리곤 정보(58), 해당 폴리곤을 구성하는 포인트의 정보를 도시하는 포인트 정보(59)로 이루어진다.
상기 부품 코드(57)에는 해당 부품을 구성하는 폴리곤의 수가 포함되어 있다. 폴리곤 정보(58)에는 해당 폴리곤을 구성하는 포인트의 수가 포함되어 있다. 포인트 정보(59)에는 해당 포인트의 포인트 번호 및 좌표값이 포함되어 있다.
도 4에 도시되는 첨부용 부품 데이타는 도 13c에 도시되는 부품 번호 3의 첨부용 부품을 나타낸다.
상기 구성을 갖는 문자 생성 장치는 이하와 같이 동작하여 새로운 폰트의 문자의 아우트라인 문자 데이타를 생성한다.
도 6 내지 도 11은 CPU(14)의 제어 하에서 행해지는 문자 생성 처리 동작의 플로우 차트이다. 이하, 도 6 내지 도 11에 따라서, 도 12a에 도시한 폰트의 아우트라인 문자 데이타를 기본 폰트의 아우트라인 문자 데이타로 하고, 도 13a 내지 13i에 도시한 첨부용 부품의 첨부용 부품 데이타를 이용하여, 도 14a 내지 14e에 도시한 폰트(도 14a : 폰트명 TWIG; 도 14b : 폰트명 PRINCESS; 도 14c : 폰트명 CRYSTAL; 도 14d : 폰트명 PIERROT; 도 14e : 폰트명 TUKUS1)에서 JIS 코드 3026 "AI"의 문자 데이타를 생성하는 문자 생성 처리 동작에 관해서 상세히 설명한다.
스텝 S1에서, 상기 키보드(11)로부터, 생성되는 문자의 폰트 코드(2 : TWIG, 3 : PRINCESS, 4 : CRYSTAL, 5 : PIERROT 또는 6 : TUKUSI) 및 문자 번호(3026)가 입력된다.
스텝 S2에서, 상기 형상 인식부(24)에 의해서, 보조 메모리(12) 내의 폰트 속성 기억부(18)의 기본 폰트 코드(33)을 참조하여 상기 스텝 S1에서 지정된 폰트의 기본 폰트의 폰트명이 구해진다. 그리고, 문자 데이타 기억부(19)에 기억되어 있는 아우트라인 문자 데이타 중에서, 상기 기본 폰트의 폰트명에 의해 지정되는 폰트의 아우트라인 문자 데이타로서, 상기 스텝 S1에서 입력된 문자 번호(3026)로 지정되는 문자 "AI"의 아우트라인 문자 데이타가 판독된다. 이 판독된 아우트라인 문자 데이타가 주 메모리(13)의 입력 버퍼(21)에 기억된다.
스텝 S3에서, 상기 형상 인식부(24)에 의해서, 상기 스텝 S2에서 입력 버퍼(21)에 기억된 아우트라인 문자 데이타로부터, 이 아우트라인 문자 데이타를 구성하고 있는 폴리곤 정보(47)가 판독된다.
스텝 S4에서, 상기 형상 인식부(24)에 의해서, 상기 판독된 폴리곤 정보(47)의 모든 포인트 정보(48)가 워크용 메모리(27)에 기억된다.
스텝 S5에서, 상기 형상 인식부(24)에 의해서, 다음과 같이 하여 해당 폴리곤 정보(47)로 나타내는 폴리곤에 속하는 모든 처리 대상 엘리먼트가 검색된다.
우선, 상기 워크용 메모리(27)에 기억되어 있는 포인트 정보(48)에 기초하여, 엘리먼트 시점 플래그(49)가 온으로 되어 있는 포인트 번호가 검색된다. 또한, 이 엘리먼트 시점 플래그(49)가 온으로 되어 있는 포인트로부터 해당 폴리곤의 아우트라인에 따라서 시계 회전(즉, 포인트 번호의 올림차순)으로 엘리먼트 종점 플래그(50)가 온으로 되어 있는 포인트 번호가 검색된다. 그리고, 상기 검색된 2개의 포인트의 사이에 있는 엘리먼트가 변형 처리의 대상이 되는 처리 대상 엘리먼트로서 인식된다. 이하, 모든 처리 대상 엘리먼트가 인식될 때까지 전술의 동작을 반복한다.
그 결과, 예를 들면, 도 12b에 도시한 바와 같이, 포인트 a4를 시점으로 하여, 포인트 a5를 종점으로 하는 엘리먼트가, 처리 대상 엘리먼트로서 인식되는 것이다.
스텝 S6에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 상기 스텝 S5에 있어서 검색된 처리 대상 엘리먼트 중, 미처리의 엘리먼트가 1개 선택된다. 또한, 상기 스텝 S1에서 입력된 폰트 코드에 기초하여 보조 메모리(12)의 폰트 속성 기억부(18) 내의 부품 번호 34가 참조되어, 생성하고자 하는 폰트에 대응하는 첨부용 부품 데이타가 첨부용 부품 데이타 기억부(20)로부터 판독된다. 그리고, 이 판독된 첨부용 부품 데이타가 주 메모리(13)의 입력 버퍼(21)에 기억된다.
스텝 S7에서, 상기 형상 인식부(24)에 의해서, 폰트 속성 기억부(18)의 변형 정보(35)에 있어서의 확대/축소 정보(38)를 참조하여, 첨부용 부품의 사이즈를 처리 대상 엘리먼트에 따라 확대/축소하는지의 여부가 판별된다. 그 결과, 확대/축소하는 경우는 스텝 S8에 진행하고, 확대/축소하지 않는 경우는 스텝 S21로 진행한다.
도 2에 도시한 폰트 속성의 경우에는, TUKUSI 폰트만이 확대/축소하지 않는다고 지정되어 있으므로, TUKUSI 폰트를 생성하는 경우에는 스텝 S21에 진행하게된다.
스텝 S8에서, 상기 형상 인식부(24)에 의해서, 워크용 메모리(27)에 기억된 포인트 정보(48)의 첨부 플래그(51)가 참조되어, 각 엘리먼트마다 부품 첨부를 행하는지의 여부가 판별된다. 그 결과, 부품 첨부를 행하는 경우는 프로그램이 스텝 S9에 진행하고, 행하지 않은 경우는 스텝 S57로 진행한다.
스텝 S9에서, 상기 형상 인식부(24)에 의해서, 상기 스텝 S1에서 입력된 폰트 코드에 대응하는 폰트 속성의 부품 번호 34에 제1 부품 번호 36과 제2 부품 번호 37 모두가 존재하는 경우에는 워크용 메모리(27)에 기억된 포인트 정보(48)의 각 플래그(52 내지 54 및 56)가 참조되어, 제1 부품 또는 제2 부품 중 어느 하나의 첨부용 부품을 사용할지가 판별된다. 그 결과, 제1 부품을 사용하는 경우는 스텝 S10에 진행하고, 제2 부품을 사용하는 경우에는 스텝 S41로 진행한다.
CRYSTAL 폰트의 경우에는 첨부용 부품이 1 종류 밖에 없으므로, 전부 스텝 S10으로 진행한다.
스텝 S10에서, 상기 형상 인식부(24)에 의해서, 상기 스텝 S6에 있어서 선택된 처리 대상 엘리먼트(여기서는, 포인트 a4를 시점으로 하고, 포인트 a5를 종점으로 하는 처리 대상 엘리먼트로 한다)의 길이 D1가 다음과 같이 하여 산출된다.
도 15에 도시한 바와 같이, 상기 폴리곤(71)의 포인트 a4, a5의 좌표값(a4(x1, y1, a5(x2, y2))를 이용하여, 포인트 a4, a5사이의 거리 D1이 다음 식에 의해서 산출된다.
D1 = {(x2 - x1)2+ (y2 - y1)2} ½
이렇게 해서 산출된 거리 D1는, 처리 대상 엘리먼트의 길이로서 워크용 메모리(27)에 기억된다.
스텝 S11에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 상기 스텝 S6에 있어서 입력 버퍼(21)에 기억된 제1 부품의 첨부용 부품 데이타가 상기 스텝 S10에 있어서 산출된 처리 대상 엘리먼트의 길이 D1에 따라서 다음 식
D1/D*E
단, D는 엘리먼트의 기준 길이이고 E는 첨부용 부품(72)의 D에 대응하는 기준 길이에 의해서, 도 16에 도시한 바와 같이 원점(0, 0)을 중심으로 하여 확대/축소 변환된다.
스텝 S12에서, 상기 형상 인식부(24)에 의해서, 폰트 속성 기억부(18)에 기억된 폰트 속성의 변형 정보(35)에서 정보(39, 40)를 참조하여, y축에 대한 엘리먼트의 각도와 x축에 대한 스트로크의 각도 중 어느 각도를 구할지가 판별된다. 그 결과, 엘리먼트 각도를 구하는 경우에는 프로그램은 스텝 S13에 진행하고, 스트로크의 각도를 구하는 경우에는 스텝 S15에 진행하고, 양쪽의 각도를 구하는 경우에는 스텝 S17로 진행한다.
도 2에 도시한 폰트 속성의 경우에는, TWIG 폰트생성시에는 엘리먼트 각도를 구한다고 판별된다. PRINCESS 폰트, PIERROT 폰트 또는 TUKUSI 폰트 생성시에는 스트로크 각도를 구한다고 판별된다. 또한, CRYSTAL 폰트 생성시에는 양쪽의 각도를 구한다고 판별된다.
스텝 S13에서, 상기 형상 인식부(24)에 의해서, TWIG 폰트 생성시에 이용되는 엘리먼트 각도 θ1가 다음과 같이 하여 구해진다.
도 15에 도시한 바와 같이, 해당 처리 대상 엘리먼트의 양단인 2개의 포인트 a4, a5를 연결하는 직선 L1과 y축과 평행한 직선 LY와의 교차각 θ1이 산출된다.
스텝 S14에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 상기 스텝 S11에 있어서 확대/축소된 첨부용 부품(72a)가, 도 17에 도시한 바와 같이, 원점(0, 0)을 중심으로 하여 y축으로부터 각도 θ1만 회전한 처리로부터 첨부용 부품 데이타가 구해진다.
이들 단계 후, 프로그램은 스텝 S52로 진행한다.
스텝 S15에서, 상기 형상 인식부(24)에 의해서, 상기 PRINCESS 폰트, PIERROT 폰트 또는 TUKUSI 폰트 생성시에 이용되는 대상 엘리먼트가 속하는 스트로크의 스트로크 각도 θ2가 다음과 같이 하여 구해진다.
도 19에 있어서, 처리 대상 엘리먼트의 시점인 포인트 a4와 해당 폴리곤을 구성하는 묘화점 및 제어점의 배열 방향에 따라서 상기 포인트 a4의 1개 전에 있는 묘화점 또는 제어점(본 실시예에 있어서는 제어점 a3)을 연결하는 직선 L2(dx, dy)과 x축과 평행한 직선 LX와의 교차각 θa가 2직선의 교차각을 구하는 함수 atan2(dx, dy)에 의해서 구해진다. 이와 마찬가지 처리 대상 엘리먼트의 종점인 포인트 a5와 이 포인트 a5의 1개 후의 묘화점 또는 제어점(본 실시예에 있어서는 제어점 a6)을 연결하는 직선 L3과, 직선 LX와의 교차각 θb를 구한다. 그리고, 양 교차각 θa, θb의 평균치를 처리 대상 엘리먼트가 속하는 스트로크의 x축에 대한 각도 θ2로 하는 것이다.
스텝 S16에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 도 20, 도 26a, 26b 및 도 29에 도시한 바와 같이, 상기 스텝 S11에 있어서 확대/축소된 첨부용 부품(74a, 77a, 79a)를, 원점(0, 0)을 중심으로 하여 x축으로부터 각도 θ2만큼 회전한 첨부용 부품 데이타가 구해진다.
이 스텝 후, 프로그램은 스텝 S52로 진행한다.
스텝 S17 및 스텝 S18에서, 상기 스텝 S13 및 스텝 S15과 마찬가지로 하여, CRYSTAL 폰트 생성시에 이용되는 엘리먼트 각도 θ1와 스트로크 각도 θ2가 구해진다(도 22).
스텝 S19에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 도 23a에 도시한 바와 같이, 상기 스텝 S11에 있어서 확대/축소된 첨부용 부품(76a)를, 원점(0, 0)을 중심으로 하여 대각선 qr가 상기 직선 LY에서 엘리먼트 각도 θ1와 동일한 각도만큼 회전한 첨부용 부품 데이타가 구해진다.
스텝 S20에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 도 23b에 도시한 바와 같이, 상기 스텝 S19에 있어서 대각선 qr이 각도 θ1만큼 회전된 첨부용 부품(76b)를, 원점(0, 0)을 중심으로 하여 대각선 po가 상기 직선 LX에서 스트로크 각도 θ2와 동일한 각도만큼 회전한 첨부용 부품 데이타가 구해진다.
이들 단계 후, 프로그램은 스텝 S52로 진행한다.
스텝 S21 내지 스텝 S23에서, 상기 스텝 S8, S9, S12에서와 같이, 부품 첨부를 행하는지의 여부의 판별, 제1 부품 사용의 판별, 및, 어느 각도를 구할지의 판별이 행해진다.
스텝 S24 내지 스텝 S31에서, 상기 스텝 S13 내지 스텝 S20에서와 같이, 엘리먼트 각도 θ1 및 스트로크 각도 θ2가 구해지고, 이 구한 엘리먼트 각도 θ1 혹은 스트로크 각도 θ2에 기초하여 입력 버퍼(21)에 기억된 제1부품의 첨부용 부품 데이타에 대한 회전 처리가 행해진다.
이들 스텝 후, 프로그램은 스텝 S52로 진행한다.
스텝 S32 내지 스텝 S40에서, 상기 스텝 S12 내지 스텝 S20에서와 같이, 어느 각도를 구할지의 판별, 엘리먼트 각도 θ1 및 스트로크 각도 θ2의 산출 및 입력 버퍼(21)에 기억된 제2 부품의 첨부용 부품 데이타에 대한 회전 처리가 행해진다.
이들 스텝 후, 프로그램은 스텝 S52로 진행한다.
스텝 S41 내지 스텝 S51에서, 상기 스텝S10 내지 스텝 S20에서와 같이, 처리 대상 엘리먼트의 길이 D1의 산출, 상기 입력 버퍼(21)에 기억된 제2부품의 첨부용 부품 데이타에 대한 확대/축소 처리, 어느 각도를 구할지의 판별, 엘리먼트 각도 θ1 및 스트로크 각도 θ2의 산출, 상기 확대/축소 처리 후의 제2 부품의 첨부용 부품 데이타에 대한 회전 처리가 행해진다.
이들 스텝 후, 프로그램은 스텝 S52으로 진행한다.
스텝 S52에서, 상기 데이타 합성부(26)에 의해서, 폰트 속성 기억부(18)에 기억된 폰트 속성의 변형 정보(35)에 있어서의 정보(41)와 워크용 메모리(27)에 기억된 포인트 정보(48)에 있어서의 플래그(55)가 참조하여, 상술된 바와 같이 하여 확대/축소 처리 및 회전 처리가 실시된 첨부용 부품의 원점을, 처리 대상 엘리먼트의 어디에 중첩할지(즉, 첨부의 기준점을 어디로 할지)가 판별된다.
상기 기준점으로서, 도 15에 있어서의 엘리먼트 시점 a4, 엘리먼트의 중점 b 및 엘리먼트 종점 a5의 3 종류가 준비되어 있다. 또한, 도 2에 도시한 변형 정보(35)의 경우에는 PIERROT 폰트만이 중점 b 이외를 기준점으로 취하도록 지시되어 있으므로, PIERROT 폰트 생성시에는, 포인트 정보(48)의 플래그(55)를 참조하여 기준점은 엘리먼트 시점인지 엘리먼트 종점인지를 판별하는 것이다.
상기 판별의 결과로서, 상기 엘리먼트 시점을 기준점으로 하는 경우에는 프로그램은 스텝 S53으로 진행하고, 중점을 기준점으로 하는 경우에는 스텝 S54에 진행하고, 엘리먼트 종점을 기준점으로 하는 경우에는 스텝 S55로 진행한다.
상기 스텝 S8에 있어서, 부품 첨부를 행하지 않는다고 판별된(즉, 포인트 정보(48)에 있어서의 첨부 플래그(51)가 설정되어 있지 않는) 경우에는, 상기 스텝 S9 및 스텝 S52은 스킵되므로, 포인트 정보(48)에 있어서의 플래그(52 내지 56)는 모두 무효로 된다.
스텝 S53에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, PIERROT 폰트의 경우에는, 도 26a에 도시한 바와 같이, 상기 스텝 S11 및 스텝 S16에 있어서 확대/축소 처리 및 회전 처리가 실시된 부품(77b)가 수평축에서 리플렉트되고, 이 리플렉트된 부품(77c)의 원점이 도 27a에 도시한 바와 같이, 처리 대상 엘리먼트의 엘리먼트 시점 a4의 좌표치로 이동된 첨부용 부품 데이타가 구해진다.
이들 스텝 후, 프로그램은 스텝 S56으로 진행한다.
스텝 S54에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, 도 18, 도 21, 도 24 및 도 30에 도시한 바와 같이, 상술된 바와 같이 하여 확대/축소 처리 및 회전 처리가 실시된 부품(72b, 74b, 76c, 79b)의 원점을, 처리 대상 엘리먼트에 있어서의 엘리먼트 시점 a4과 엘리먼트 종점 a5과의 중점 b로 이동한 첨부용 부품 데이타가 구해진다.
위 스텝 후, 프로그램은 스텝 S56으로 진행한다.
스텝 S55에서, 상기 첨부용 부품 데이타 변형부(25)에 의해서, PIERROT 폰트의 경우에는, 상술된 바와 같이 하여 확대/축소 처리 및 회전 처리가 실시된 부품(77b)의 원점을 도 27b에 도시한 바와 같이, 처리 대상 엘리먼트의 엘리먼트 종점 a5로 이동한 첨부용 부품 데이타가 구해진다.
스텝 S56에서, 상기 데이타 합성부(26)에 의해서, 상술된 바와 같이 하여 확대/축소 처리, 회전 처리 및 이동 처리가 실시된 첨부용 부품 데이타가, 주 메모리(13) 내의 출력 버퍼(22)에 기억된다.
스텝 S57에서, 상기 형상 인식부(24)에 의해서, 상기 스텝 S3에서 판독된 폴리곤 정보(47)에 있어서의 모든 처리 대상 엘리먼트에 대한 처리가 종료했는지의 여부가 판별된다. 그 결과, 종료하고 있으면, 프로그램은 스텝 S58에 진행하고, 종료하고 있지 않으면 상기 스텝 S6으로 되돌아가 다음 처리 대상 엘리먼트의 인식 처리가 행해진다.
이 판별은 상기 스텝 S56에서 출력 버퍼(22)에 기억된 첨부 부품 데이타의 수가, 상기 스텝 S5에서 검색된 처리 대상 엘리먼트의 수와 일치한지의 여부에 의해서 행해진다.
스텝 S58에서, 상기 데이타 합성부(26)에 의해서, 상기 스텝 S3에서 판독되어 워크용 메모리(27)에 기억되어 있는 폴리곤 정보(47)가 출력 버퍼(22)에 기억된다.
그 때에, 상기 스텝 S56에 있어서, 출력 버퍼(22)에 기억되어 있는 첨부용 부품 데이타는, 상기 스텝 S53, 스텝 S54 또는 스텝 S55에 있어서 본 스텝에서 기억된 폴리곤 정보(47)에 의한 폴리곤(71)의 처리 대상 엘리먼트에 중첩되도록 위치 결정되어 있으므로, 본 스텝을 종료한 시점에서 출력 버퍼(22)에는, 도 18, 도 21, 도 24, 도 27 또는 도 30과 같이, 해당 폴리곤(71)의 엘리먼트에 해당하는 첨부용 부품이 첨부된 아우트라인 문자 데이타가 기억되어 있는 것이다.
스텝 S59에서, 상기 형상 인식부(24)에 의해서, 상기 스텝 S2에서 판독된 아우트라인 문자 데이타에 있어서의 모든 폴리곤에 대한 처리가 종료했는지의 여부가 판별된다. 그 결과, 종료하고 있으면, 프로그램은 스텝 S60에 진행하는 한편, 종료하지 않으면 상기 스텝 S3으로 되돌아가 다음 폴리곤에 대한 처리가 행해진다.
이 판별은 상기 스텝 S58에 있어서 출력 버퍼(22)에 기억된 폴리곤 정보의 수가, 입력 버퍼(21)에 기억되어 있는 아우트라인 문자 데이타의 문자 코드(46)의 관련 문자를 구성하는 폴리곤 수와 일치한지에 따라 행해진다.
스텝 S60에서, 상기 출력 버퍼(22)에 기억되어 있는 1 문자의 아우트라인 문자 데이타가 비트 맵 메모리(15) 또는 보조 메모리(12)에 전송된다. 이들 스텝이 종료된 후, 문자 생성 처리 동작을 종료한다.
상기 비트 맵 메모리(15)에 전송된 아우트라인 문자 데이타는 비트 맵 데이타로 전개된 후에 디스플레이 유니트(16)로 디스플레이되거나 또는 출력 유니트(17)에 의해서 인자된다.
상술된 바와 같이, 본 실시예에서는 상기 보조 메모리(12)의 문자 데이타 기억부(19)에는 기본 폰트의 아우트라인 문자 데이타를 기억하고, 첨부용 부품 데이타 기억부(20)에는 첨부용 부품의 아우트라인 문자 데이타인 첨부용 부품 데이타를 기억해 놓는다. 그리고, 키보드로부터 폰트 코드 및 문자 번호가 입력되면, CPU(14)을 구성하는 형상 인식부(24) 및 첨부용 부품 데이타 변형부(25)에 의해서, 상기 폰트 코드에 기초하여 입력 폰트 속성 기억부(18)의 기본 폰트 코드(33)를 참조하여 얻어진 기본 폰트의 문자(기본 문자)의 처리 대상 엘리먼트에, 부품 번호 34를 참조하여 얻어진 첨부용 부품을 변형 정보(35)의 참조 결과에 기초하여 확대/축소, 회전, 이동하여 첨부되도록 하고 있다.
따라서, 본 실시예에 의하면, 새로운 폰트의 문자 데이타를 생성시에는 디자이너가 한자 한자 디자인할 필요가 없고, 대신에 폰트 코드와 문자 번호를 입력하기만 해도, 자동적으로 새로운 폰트의 문자 데이타를 생성할 수 있다. 이 처리에서, 상술된 바와 같이, 상기 기본 문자의 처리 대상 엘리먼트에 상기 첨부용 부품을 접부함으로써 기본 문자에 있어서의 엘리먼트 형상을 변경하므로, 새로운 묘화점을 연산에 의해서 구하거나, 묘화점을 삭제/연결하거나 할 필요가 없고, 적은 데이타량과 근소한 연시간으로 고품위인 다 폰트 시스템을 용이하게 실현할 수 있다.
상기 형상 인식부(24)는 처리 대상 엘리먼트의 길이 및 각도와, 처리 대상 엘리먼트가 속하는 스트로크의 각도를 구한다. 그리고, 첨부용 부품 데이타 변형부(25)에 의해서, 상기 첨부용 부품을 상기 처리 대상 엘리먼트의 길이에 따라서 확대/축소하고, 처리 대상 엘리먼트 또는 스트로크의 각도에 따라서 회전한 첨부용 부품 데이타를 구하고, 이 확대/축소 처리 및 회전 처리를 행한 첨부용 부품 데이타를 데이타 합성부(26)에 의해서 기본 문자의 처리 대상 엘리먼트의 아우트라인 문자 데이타에 중첩시킨 아우트라인 문자 데이타를 생성하도록 하고 있다.
따라서, 상기 처리 대상 엘리먼트의 길이나 기울기에 구애받지 않고, 적절한 크기의 첨부용 부품을 적절한 각도로 처리 대상 엘리먼트에 첨부하여 자연스러운 인상의 폰트를 생성할 수 있다.
또한, 상기 형상 인식부(24)는 폰트 코드에 관련된 폰트 속성의 변형 정보(35)와 아우트라인 문자 데이타의 폴리곤 정보(47)에 부여되어 있는 포인트 정보(48)의 각 플래그(51 내지 56)에 기초하여, 부품 첨부의 유무의 선택, 부품의 종류의 선택, 부품 확대/축소 처리의 유무의 선택 및 첨부 기준점의 선택 등의 첨부용 부품에 있어서의 첨부 방법의 판정을 행하도록 하고 있다.
따라서, 상기 변형 정보(35)나 플래그(51 내지 56)을 최적으로 설정함으로써, 부품끼리 또는 부품과 스트로크의 접촉에 의한 일그러짐을 회피할 수 있고, 문자 품위의 열화를 막을수 있다. 또한, 동일 기본 문자에 있어서의 동일 엘리먼트만으로도, 생성하는 상이한 폰트에 대해 첨부 방법을 바꾸는 것도 가능하고, 오리지널리티로 넘치는 풍부한 변경 전개가 가능해진다.
본 실시예에서는, CPU14의 제어의 하에서 행해지는 문자 생성 처리의 알고리즘은, 도 6 내지 도 11에 도시한 플로우 차트에 한정되지는 않는다.
예를 들면, 본 실시예에 있어서의 문자 생성 처리 동작의 플로우 차트에서는, 생성하고자 하는 1개의 폰트에 관해, 모든 첨부용 부품에 대해 일률적으로 처리 대상 엘리먼트의 길이에 따라서 확대/축소의 판정을 행하도록 하고 있지만, 상기 변형 속성의 플래그를 추가하여 특정한 엘리먼트시에만 확대·축소를 행하고, 이 이외의 엘리먼트는 확대/축소하지 않는다고 한 조합에 대응 가능하도록 본 플로우 차트를 변형하여도 지장은 없다.
또한, 상기 기본 문자의 스트로크 폭을 변경하는 장치와 조합하여, 예를 들면, 도 25b에 도시한 바와 같이, 각 스트로크의 선 폭을 가늘게 하여, 폭이 좁게 된 폴리곤(71')에 대해 도 30과 같이 확대/축소 및 회전된 첨부용 부품을 첨부하여도 지장은 없다.
또, 본 실시예에 사용되는 문자 데이타는 폴리곤의 아우트라인을 직선과 베지어 곡선에 근사한 아우트라인 문자 데이타이지만, 이 발명은 이것에 한정되지는 않는다. 중요한 것은, 최종적으로 문자의 아우트라인을 아우트라인에 변환가능한 문자 데이타이면 좋다.
이상으로 명백한 바와 같이, 이 발명의 문자 생성 장치는, 생성하는 폰트가 입력부로부터 입력되면, 형상 인식부에 의해서, 폰트 속성 기억부에 기억된 폰트 속성을 참조하여, 상기 지정된 폰트의 기본 문자의 문자 데이타를 판독하여 문자 데이타에 기초하여 처리 대상 부분의 형상을 인식한다. 부품 데이타 변형부에 의해서, 상기 폰트 속성을 참조하여, 사용하는 부품의 크기 및 배치가 상기 처리 대상 부분의 형상에 맞도록 부품 데이타를 변형한다. 다음, 데이타 합성부에 의해서, 상기 형상 인식부에 의해 판독된 문자 데이타와 상기 부품 데이타 변형부에 의해 변형된 부품 데이타를 합성하여, 상기 기본 문자의 처리 대상 부분에 상기 부품이 종첩된 문자 데이타를 생성한다. 그러므로, 새로운 묘화점을 연산하거나, 묘화점을 삭제/연결하거나 하지 않고, 단순히, 상기 부품 데이타의 변형과 중첩에 의해 새로운 폰트의 문자 데이타를 생성할 수 있다.
따라서, 이 발명에 의하면, 데이타량을 증가하지 않고, 작은 연시간으로 용이하게 다 폰트 시스템을 실현할 수 있다.
또한, 상기 부품의 크기 및 배치가 상기 처리 대상 부분의 형상에 맞도록 부품 데이타를 변형하므로, 상기 처리 대상 부분의 형상에 구애받지 않고, 자연스러운 인상을 줄 수 있도록 상기 처리 대상 부분에 부품을 중첩시킬 수 있다.
한 실시예에서, 상기 문자 데이타는 기본 문자의 각 처리 대상별로, 또한, 생성되는 폰트별로, 중첩 정보를 갖고 있으므로, 동일 기본 문자만으로도 처리 대상 부분이나 생성하고자 하는 폰트마다 중첩 방법을 바꾸는 것이 가능해진다.
한 실시예의 문자 생성 장치에 있어서의 형상 인식부는 상기 폰트 속성의 변형 정보와 문자 데이타의 중첩 정보를 참조하여 중첩 방법을 판정하고, 이 판정 결과에 기초하여 상기 형상의 인식한다. 그러므로, 동일 기본 문자만으로도 처리 대상 부분이나 생성하고자 하는 폰트마다 중첩 방법을 바꾸고, 부품끼리의 접촉이나 부품과 처리 대상 부분과의 접촉에 의한 일그러짐을 회피할 수 있다.
따라서, 이 실시예에 의하면, 예를 들면, 상기 POP 문자를 기본 폰트로서 상기 PIERROT 폰트를 생성할 때에, 도 14d에 도시한 바와 같이, 각 엘리먼트마다 첨부용 부품(77)(도 13f 참조)를 첨부하거나/하지 않거나, 첨부의 기준점을 엘리먼트 시점과 엘리먼트 종점으로 적절히 변경하여, 첨부용 부품(77)과 스트로크나 접촉하지 않도록 할 수 있는 것이다.
한 실시예의 문자 생성 장치에 있어서의 형상 인식부는 상기 기본 문자의 엘리먼트의 길이를 인식한다. 그러므로, 상기 사용 부품을 상기 기본 문자의 엘리먼트의 길이에 맞도록 확대/축소하는 것이 가능해진다.
한 실시예의 문자 생성 장치에 있어서의 형상 인식부는, 상기 기본 문자의 엘리먼트 및 이 엘리먼트가 속하는 스트로크의 적어도 한쪽의 경사 각도를 인식한다. 그러므로, 상기 엘리먼트나 스트로크의 경사 각도에 일치한 경사 각도로 부품을 중첩시키는 것이 가능해진다.
따라서, 이 실시예에 의하면, 예를 들면, 도 14a에 도시한 바와 같은, 상기 엘리먼트가 속하는 스트로크의 흐름을 막는 듯이 액센트가 강조된 폰트의 문자를 생성하거나, 도 14b에 도시한 바와 같은, 스트로크의 흐름에 일치한 자연스런 인상을 주는 폰트의 문자를 생성할 수도 있다.
한 실시예의 문자 생성 장치에 있어서의 부품 데이타 변형부는 상기 사용 부품의 길이가 상기 처리 대상 부분의 길이에 맞도록, 또는 경사각이 상기 엘리먼트나 스트로크의 적어도 한쪽의 경사각에 맞도록 부품 데이타를 변형하므로, 상기 엘리먼트의 길이에 맞도록 또는 엘리먼트나 스트로크의 경사각에 맞도록 상기 사용 부품을 확대/축소, 회전할 수 있다.
따라서, 이 실시예에 의하면, 상기 기본의 폰트에 의한 문자의 엘리먼트에 위화감이 없는 길이 또는 경사각에서 부품을 중첩시킬 수 있고, 자연스러운 인상을 주는 폰트의 문자를 생성할 수 있다.
상기 설명된 본 발명을 여러 가지로 변형할 수 있다. 본 분야에 숙련된 기술자들은 본 발명의 정신 및 범위를 벗어나지 않고 다음의 특허 청구의 범위 내에서 본 발명을 여러 가지로 변형할 수 있다.

Claims (7)

  1. 기본 폰트에서 문자의 처리 대상 부분에 일정한 형상의 부품을 중첩시킴으로써 상기 처리 대상 부분의 형상을 변경하여, 새로운 폰트의 문자를 생성하기 위한 문자 생성 장치에 있어서,
    폰트를 나타내는 폰트 코드와, 상기 폰트의 명칭과, 상기 폰트의 기본이 되는 폰트를 나타내는 기본 폰트 코드와, 상기 폰트의 생성시에 사용되는 부품을 나타내는 부품 코드와, 상기 폰트를 생성하기 위한 변형 정보를 포함하는 폰트 속성을 기억하기 위한 폰트 속성 기억부;
    상기 기본 폰트에서 문자의 형상을 나타내는 문자 데이타를 기억하기 위한 문자 데이타 기억부;
    상기 부품의 형상을 나타내는 부품 데이타를 기억하기 위한 부품 데이타 기억부;
    생성될 폰트를 지정하기 위한 입력부;
    상기 폰트 속성들을 참조하여, 상기 입력부에서 지정된 폰트의 기본이 되는 폰트에서 문자의 문자 데이타를 상기 문자 데이타 기억부에서 판독하고, 이 판독된 문자 데이타에 기초하여, 상기 기본의 폰트의 문자의 처리 대상 부분의 형상을 인식하기 위한 형상 인식부;
    상기 폰트 속성을 참조하여, 상기 입력부에서 지정된 폰트의 생성시에 사용될 부품 데이타를 상기 부품 데이타 기억부에서 판독하고, 상기 사용 부품의 크기 및 배치가 상기 처리 대상 부분의 형상에 매칭(matching)되도록 상기 판독된 부품 데이타를 상기 처리 대상 부분의 형상에 기초하여 변형하기 위한 부품 데이타 변형부; 및
    상기 형상 인식부에 의해서 판독된 기본 폰트의 문자 데이타와 상기 부품 데이타 변형부에 의해서 변형된 부품 데이타 양자 모두를 기초로 하여, 상기 기본 폰트에서의 문자의 처리 대상 부분에 상기 부품을 중첩시켜 문자가 이루어지는 상기 지정된 폰트에서 문자의 문자 데이타를 생성하기 위한 데이타 합성부
    를 포함하는 문자 생성 장치.
  2. 제1항에 있어서,
    상기 문자 데이타 기억부에 기억된 상기 문자 데이타는, 상기 기본 폰트에서 문자의 각각의 처리 대상 부분별로 그리고 생성될 폰트별로, 상기 부품을 중첩시킬 때에 이용되는 중첩 정보를 갖는 문자 생성 장치.
  3. 제2항에 있어서,
    상기 형상 인식부는 상기 판독된 문자 데이타에서 해당하는 폰트와 처리 대상 부분의 중첩 정보 뿐만 아니라 상기 폰트 속성의 변형 정보를 참조하여 부품의 중첩 방법을 판정하고, 이 판정 결과에 기초하여 상기 형상의 인식을 행하는 문자 생성 장치.
  4. 제1항에 있어서,
    상기 형상 인식부에 의해서 인식되는 형상의 처리 대상 부분은 문자를 구성하는 소정의 스트로크의 선단 부분인 엘리먼트이고,
    상기 형상 인식부는 상기 기본 폰트에서의 문자에서 상기 엘리먼트의 길이를 인식하는 문자 생성 장치.
  5. 제1항에 있어서,
    상기 형상 인식부에 의해서 인식되는 형상의 처리 대상 부분은 문자를 구성하는 스트로크 및 이 스트로크의 선단 부분인 엘리먼트이고,
    상기 형상 인식부는 상기 기본 폰트의 문자의 상기 엘리먼트 및 상기 엘리먼트가 속하는 스트로크중 적어도 어느 하나의 경사 각도를 인식하는 문자 생성 장치.
  6. 제4항에 있어서,
    상기 부품 데이타 변형부는 상기 부품 데이타를 변형하여 상기 사용 부품의 길이가 상기 엘리먼트의 길이에 매칭되거나, 상기 사용 부품의 경사 각도가 상기 엘리먼트 및 스트로크중 적어도 하나의 경사 각도에 매칭되도록 하는 문자 생성 장치.
  7. 제5항에 있어서,
    상기 부품 데이타 변형부는 상기 부품 데이타를 변형하여 상기 사용 부품의 길이가 상기 엘리먼트의 길이에 매칭되거나, 상기 사용 부품의 경사 각도가 상기 엘리먼트 및 스트로크중 적어도 하나의 경사 각도에 매칭되도록 하는 문자 생성 장치.
KR1019960045587A 1995-10-13 1996-10-12 문자 생성 장치 KR100227585B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26526395A JP3344188B2 (ja) 1995-10-13 1995-10-13 文字生成装置
JP95-265263 1995-10-13

Publications (2)

Publication Number Publication Date
KR970022948A KR970022948A (ko) 1997-05-30
KR100227585B1 true KR100227585B1 (ko) 1999-11-01

Family

ID=17414805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960045587A KR100227585B1 (ko) 1995-10-13 1996-10-12 문자 생성 장치

Country Status (5)

Country Link
US (1) US5771035A (ko)
JP (1) JP3344188B2 (ko)
KR (1) KR100227585B1 (ko)
CN (1) CN1099096C (ko)
TW (1) TW322552B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3344538B2 (ja) * 1996-05-13 2002-11-11 シャープ株式会社 文字生成装置
JP3317852B2 (ja) * 1996-07-30 2002-08-26 シャープ株式会社 文字生成装置
JPH11149284A (ja) * 1997-11-18 1999-06-02 Sharp Corp 文字パターン生成装置及び文字パターン生成装置制御プログラムを記憶した媒体
AUPP557998A0 (en) 1998-08-28 1998-09-24 Canon Kabushiki Kaisha Method and apparatus for orientating a set of finite N-dimensional space curves
AUPP557898A0 (en) 1998-08-28 1998-09-24 Canon Kabushiki Kaisha Method and apparatus for orientating a character stroke
AU743290B2 (en) * 1998-08-28 2002-01-24 Canon Kabushiki Kaisha Method and apparatus for orientating a set of finite N-dimensional space curves
US6678410B1 (en) * 1999-02-17 2004-01-13 Adobe Systems Incorporated Generating a glyph
US7242404B2 (en) * 2005-09-15 2007-07-10 Microsoft Corporation Enlargement of font characters
CN102279841A (zh) * 2011-08-31 2011-12-14 深圳市茁壮网络股份有限公司 一种实现多字体显示的方法、用户端及服务器
CN102289511B (zh) * 2011-08-31 2013-04-03 深圳市茁壮网络股份有限公司 一种字库文件下载方法、用户端及服务器
AU2015268723B1 (en) * 2015-12-15 2017-06-29 Canon Kabushiki Kaisha Method, system and apparatus for modifying a font character
KR102329116B1 (ko) * 2019-12-09 2021-11-19 숭실대학교 산학협력단 부분 글자 스타일 변경이 가능한 폰트 생성 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2833101B2 (ja) * 1990-02-09 1998-12-09 富士ゼロックス株式会社 パターン変形方式
JPH0456894A (ja) * 1990-06-25 1992-02-24 Fujitsu Ltd 文字作成装置の端点形状変更方式

Also Published As

Publication number Publication date
US5771035A (en) 1998-06-23
JP3344188B2 (ja) 2002-11-11
JPH09106271A (ja) 1997-04-22
KR970022948A (ko) 1997-05-30
TW322552B (ko) 1997-12-11
CN1099096C (zh) 2003-01-15
CN1157979A (zh) 1997-08-27

Similar Documents

Publication Publication Date Title
KR100227585B1 (ko) 문자 생성 장치
US5959635A (en) Character pattern generator
KR100306862B1 (ko) 문자 패턴 생성 장치 및 문자 패턴 생성 장치 제어 프로그램을 기억한 매체
KR100212412B1 (ko) 문자패턴 생성장치
JPH02270019A (ja) 高品質文字パターン発生方式
JP3344538B2 (ja) 文字生成装置
JPH10143134A (ja) 文字の生成と記憶のための方法と装置
JP3224138B2 (ja) 漢字フォント生成方式
JPH0697387B2 (ja) 文字処理方法
JPH025095A (ja) 文字出力方法および文字出力装置
JP2695788B2 (ja) 図形データ補間方法
JPS63217394A (ja) 文字輪郭線生成方式
JPH06124076A (ja) アウトラインデータ処理装置
JP3055306B2 (ja) データ出力装置
JP3160957B2 (ja) 文書作成装置
JP3084817B2 (ja) 文字出力装置
JPH0627926A (ja) 文字処理装置
JPH0394323A (ja) 文書出力装置
JPH08305865A (ja) 図形描画装置
JPH09244614A (ja) 文字発生方法及び装置
JPH0315892A (ja) フォント作成装置
JPH10188006A (ja) 線描画方法及びそれを実現する画像処理装置
JPH1020846A (ja) 文字処理装置
JPH0997045A (ja) 文字処理装置及び方法
JPH0667642A (ja) 文字記号発生装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120724

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee