JPH07262390A - 字形情報処理方法及び装置 - Google Patents

字形情報処理方法及び装置

Info

Publication number
JPH07262390A
JPH07262390A JP6049031A JP4903194A JPH07262390A JP H07262390 A JPH07262390 A JP H07262390A JP 6049031 A JP6049031 A JP 6049031A JP 4903194 A JP4903194 A JP 4903194A JP H07262390 A JPH07262390 A JP H07262390A
Authority
JP
Japan
Prior art keywords
contour
data
intersection
closed
closed curve
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP6049031A
Other languages
English (en)
Inventor
Hiroko Matsuo
裕子 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP6049031A priority Critical patent/JPH07262390A/ja
Publication of JPH07262390A publication Critical patent/JPH07262390A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】フォントを構成する複数の閉曲線が複雑に交差
する場合においても、白抜けを生じることなくフォント
編集を容易に行うことができるフォント編集方法及び装
置を提供すること。 【構成】輪郭グループリスト15bが輪郭データに基づ
いて輪郭グループリストを作成し、交点算出部15cが
該輪郭グループリストに基づいて交点グループリストを
算出し、輪郭片作成部15dが該交点グループリストに
基づいて輪郭片データを作成し、閉曲線合成部15eが
該輪郭片データの所定のものを選択及び合成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ベクトルフォントの文
字形状に関する情報を処理する字形情報処理方法及び装
置に関し、特に文字形状の輪郭を複数の閉曲線で表し、
該複数の閉曲線で囲まれた所定の領域を塗りつぶすこと
により形成された文字形状に関する情報を処理する字形
情報処理方法及び装置に関する。
【0002】
【従来の技術】従来から用いられているフォントには、
ドットパターン方式等で利用されるラスタ表現されたフ
ォントだけでなく、アウトライン文字方式等で利用され
るベクトル表現されたフォント(以下「ベクトルフォン
ト」と言う。)がある。
【0003】このベクトルフォントは、「ページ記述言
語POSTSCRIPTリファレンスマニュアル」(Adobe System
著、松村訳、アスキー出版社、1988年)等に開示され
るベジェ関数や直線等を用いて文字形状を複数の閉曲線
で構成し、該閉曲線で囲まれた領域を塗りつぶすことに
より文字形状を形成することが多い。
【0004】ところが、上記塗りつぶし方式によると、
閉曲線相互の交差箇所に白抜けが生じることがある。
【0005】すなわち、閉曲線が相互に重なり合う場合
には、交差箇所に新たな閉曲線が構成されるため、この
領域がフォントの構成要素ではないとみなされ、白抜け
が生じるのである。
【0006】このため、特開平1−318177号公報
には、出力機械の特性に応じて閉曲線が接するように該
閉曲線をわずかに変形して文字形状を形成し、その後こ
れをラスタ化して出力することにより白抜けをなくすベ
クトル文字の処理方式が開示されている。
【0007】また、特開平4−125590号公報に
は、重なり合う閉曲線をひとつに合成し、該閉曲線が外
輪郭であるか否かを分岐点におけるベクトル相互の外積
結果及び内積結果に基づき判断し、該閉曲線が内輪郭で
あるか否かを閉曲線が元の閉曲線により囲まれるか否か
で判断する文字パターン情報変換方式及び装置が開示さ
れている。
【0008】
【発明が解決しようとする課題】しかしながら、前者の
技術によると、閉曲線が相互に交差する頻度が高い場合
には、フォント出力の要求がある度に変形処理を行う必
要があるため、効率的ではない。また、その処理結果を
記憶するように構成すると、ラスタ化を行う際に細めな
ければならない時は、白抜けが生じるおそれがある。
【0009】また、後者の技術によると、内輪郭と外輪
郭とを区別する手段、及び閉曲線が元の閉曲線に囲まれ
るか否かを判断する手段が軽易な構成では実現できない
ため、処理が複雑化するという問題がある。
【0010】そこで、本発明では、互いに交差する複数
の閉曲線を含む文字形状データから、出力した際に白抜
けの生じない文字形状データを容易に得ることのできる
字形情報処理方法及び装置を提供することを目的とす
る。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、第1の発明は、閉曲線で囲まれた領域を塗りつぶす
ことにより字形を形成するための複数の閉曲線の情報を
含む字形情報から、互いに交わる閉曲線を特定する第1
の過程と、前記第1の過程で特定された互いに交わる閉
曲線の交点を特定する第2の過程と、前記第1の過程で
特定された閉曲線を前記交点で分割した輪郭片を求める
第3の過程と、互いに交わることのない閉曲線を構成す
るための輪郭片を前記輪郭片から特定する第4の過程
と、前記第4の過程で特定された輪郭片から互いに交わ
ることのない複数の閉曲線の情報を作成する第5の過程
とを具備したことを特徴とする。
【0012】また、第2の発明は、閉曲線で囲まれた領
域を塗りつぶすことにより字形を形成するための複数の
閉曲線の情報を含む字形情報から、互いに交わる閉曲線
を特定する閉曲線特定手段と、前記閉曲線特定手段によ
り特定された互いに交わる閉曲線の交点を特定する交点
特定手段と、前記閉曲線特定手段により特定された閉曲
線を、前記交点により分割した輪郭片を作成する輪郭片
作成手段と、互いに交わることのない閉曲線を構成する
ための輪郭片を前記輪郭片から特定し、該輪郭片に基づ
いて複数の閉曲線の情報を作成する閉曲線生成手段とを
具備したことを特徴とする。
【0013】
【作用】第1の発明によれば、閉曲線で囲まれた領域を
塗りつぶすことにより字形を形成するための複数の閉曲
線の情報を含む字形情報から、互いに交わる閉曲線を特
定し、該特定された互いに交わる閉曲線の交点を特定す
るとともに、前記閉曲線を前記交点で分割した輪郭片を
求め、該輪郭片のうち互いに交わることのない閉曲線を
構成するための輪郭片を前記輪郭片から特定し、該特定
された輪郭片から互いに交わることのない複数の閉曲線
の情報を作成する。
【0014】また、第2の発明によれば、閉曲線で囲ま
れた領域を塗りつぶすことにより字形を形成するための
複数の閉曲線の情報を含む字形情報から、閉曲線特定手
段により互いに交わる閉曲線を特定し、交点特定手段が
この特定された互いに交わる閉曲線の交点を特定すると
ともに、輪郭片作成手段は閉曲線特定手段が特定した閉
曲線を、交点特定手段が特定した交点を用いて輪郭片に
分割し、閉曲線生成手段は、この輪郭片の中から互いに
交わることのない閉曲線を構成するための輪郭片を特定
して、該輪郭片に基づいて複数の閉曲線の情報を作成す
る。
【0015】これにより、互いに交差する複数の閉曲線
を含む文字形状データから、出力した際に白抜けの生じ
ない文字形状データを容易に得る。
【0016】
【実施例】以下、本発明の一実施例について図面を参照
して説明する。本実施例は、本発明をフォント編集装置
に適用した例である。
【0017】図1は、本発明に係るフォント編集装置の
構成を示すブロック図である。
【0018】図1に示すように、このフォント編集装置
は、入力部10と、ハードディスク11と、メモリ12
と、ディスプレイ制御部13と、ディスプレイ14と、
編集処理部15とから構成される。
【0019】入力部10は、マウス等のポインティング
デバイス又はキーボードから構成される入力デバイスで
あり、文字形状の形状修正を行う場合や表示内容・表示
形式の変更を行う場合には、この入力部10から指示入
力を行なう。
【0020】ハードディスク12は、フォントファイル
11a及びフォントファイル11b等の各種フォントフ
ァイルを記憶する不揮発性記憶媒体であり、各フォント
ファイル11a及び11bには、それぞれ一連の文字形
状が格納されている。
【0021】メモリ12は、フォント編集に必要となる
作業領域を提供するメモリであり、具体的には、編集処
理部15において作成される文字形状テーブル12a、
文字形状データ12b、旧輪郭データ12c、輪郭グル
ープリスト12d、交点グループリスト12e、輪郭片
グループリスト12f及び新輪郭データg等が記憶され
る。
【0022】ここで、文字形状テーブル12aとは、ハ
ードディスク11に記憶するフォントファイル内の文字
コードの一覧であり、文字形状データ12bは、文字形
状を示す輪郭データと文字送り幅を示すメトリクスデー
タとから構成される。
【0023】また旧輪郭データ12cとは、編集実施前
の輪郭データを示し、新輪郭データ12gとは、フォン
ト編集実施後の輪郭データである。
【0024】また、輪郭グループリスト12d、交点グ
ループリスト12e及び輪郭片グループリスト12f
は、それぞれ編集処理部15において作成される中間デ
ータである。
【0025】ディスプレイ制御部13は、ディスプレイ
14の表示制御を行う制御部であり、入力装置10から
入力されるカーソル情報に基づいて該カーソルをディス
プレイ11上で移動させる。
【0026】ディスプレイ14は、各種ウインドウの表
示等を行う表示デバイスである。
【0027】編集処理部15は、ウインドウを用いてベ
クトルフォントの編集処理を行う処理部であり、読み出
し部15a、輪郭グループリスト作成部15b、交点算
出部15c、輪郭片作成部15d及び閉曲線合成部15
eを内在する。
【0028】読み出し部15aは、メモリ12に保持す
る旧輪郭データ12cを読み出し、輪郭グループリスト
作成部15bに出力する処理部である。
【0029】輪郭グループリスト作成部15bは、読み
出し部15aが読み出した旧輪郭データ12cに基づい
て、閉曲線の情報を示す輪郭グループデータを閉曲線ご
とに作成するとともに、各輪郭グループデータをソーテ
ィングしてリスト化し、メモリ12に記憶するとともに
交点算出部15cに出力する処理部である。
【0030】交点算出部15cは、所定の算定式に基づ
いて、文字形状を構成する閉曲線相互が交わる交点デー
タを算定し、重複する交点データを排除してリスト化し
た交点グループリストを、メモリ12に記憶するととも
に、輪郭片作成部15dに出力する処理部である。
【0031】輪郭片作成部15dは、交点グループリス
トに基づいて、輪郭データを交点で分割した輪郭片デー
タを閉曲線ごとにまとめた輪郭片グループデータを作成
し、これをリスト化した輪郭片グループリストを作成
し、メモリ12に記憶するとともに、閉曲線合成部15
eに出力する処理部である。
【0032】閉曲線合成部15eは、所定のルールに基
づいて、輪郭片グループリストに含まれる輪郭片を連結
して閉曲線を合成する処理部である。
【0033】次に、上記編集処理部15がベクトルフォ
ントの編集処理を行う際に起動する文字編集ウインドウ
の構成と、ベクトルフォントの具体例について説明す
る。
【0034】図2は、編集処理部15が起動する文字編
集ウインドウの一例を示す図である。
【0035】図2に示すように、この文字編集ウインド
ウは、ベクトルフォントの読み出し時に使用する読み出
しメニュー2a、書き込み時に使用する書き込みメニュ
ー2b、文字形状の編集を行う際に使用する形状編集メ
ニュー2c、アンダーライン位置及び送り幅のようにメ
トリクス自体を編集する際に使用するメトリクス編集メ
ニュー2d、倍率変更等の文字形状の表示を変更する際
に使用する形状表示変更メニュー2e、横書きで表示す
る場合のようにメトリクス自体の表示変更を行う際に使
用するメトリクス表示変更メニュー2f、編集時に参照
する文字形状を背景に表示する際に使用する背景表示メ
ニュー2gを有するとともに、その下部にベクトルフォ
ント中の文字形状を表示する文字形状表示領域2hを有
する。
【0036】本実施例では、この文字編集ウインドウの
読み出しメニュー2bを選択して所望のベクトルフォン
ト中の文字形状を文字形状表示領域2hに読み出した
後、形状編集メニュー2cを選択しサブメニューとして
表示される閉曲線編集メニュー(図示省略)を指示する
ことにより、ベクトルフォント中の文字形状の閉曲線編
集処理が実施されるよう構成している。
【0037】この閉曲線編集処理とは、ベクトルフォン
ト中の文字形状を構成する複数の閉曲線が互いに交わる
場合に塗り潰し時に生じる白抜きを排除するために、閉
曲線の交わりが解消された新たな閉曲線でベクトルフォ
ント中の文字形状を作成する処理である。
【0038】例えば、図3(a)に示すような3つの閉
曲線G1、G2及びG3から構成される文字形状「中」
は、3a及び3b部分に閉曲線相互の交わりがあるた
め、閉曲線に囲まれた領域を塗りつぶす場合に白抜きが
生じてしまう。
【0039】このため、本実施例では、図3(b)に示
すように交点を考慮した上で各閉曲線を構成するセグメ
ントを輪郭片に分割し、該輪郭片を所定のルールに基づ
いて結合することにより、図3(c)に示すように互い
に交わらない新たな閉曲線G4、G5及びG6で文字形
状「中」を形成している。
【0040】このように、ベクトルフォント中の文字形
状を構成する閉曲線が互いに交わらないように閉曲線を
再構成することにより、塗り潰し時の白抜けを排除する
ことができる。
【0041】また、この閉曲線は、「輪郭の開始」と、
「直線」又は「ベジェ曲線」のような線分属性と、それ
ぞれの座標値とから構成されるベクトル化されたセグメ
ントをまとめた「輪郭データ」として表すことができ
る。
【0042】図4は、輪郭データの一例を示す図であ
り、図4(a)に示すように、開始点(x0,y0)〜
(x3,y3)の第1セグメントがベジェ関数で表わさ
れ、(x3,y3)〜(x4,y4)の第2セグメント
が直線で表わされ、同様に各セグメントがベジェ関数又
は直線で表わされる閉曲線が存在する場合には、この閉
曲線は、図4(b)に示すように、「輪郭の開始」、
「x0,y0」、「ベジェ」、「x1,y1,x2,y
2,x3,y3」、「直線」、「x4,y4」等のデー
タ構造を有する輪郭データとして表される。
【0043】したがって、編集処理部15では、上記構
造を有する輪郭データに基づいて、上記閉曲線編集処理
を行うことになる。
【0044】次に、上記輪郭データに基づいて編集処理
部15が行う閉曲線編集処理手順について説明する。
【0045】図5は、編集処理部15が行う閉曲線編集
処理手順を示すフローチャートである。
【0046】図5に示すように、まず、輪郭グループリ
スト作成部15bは、メモリ12に記憶した旧輪郭デー
タ12cに基づいて輪郭グループデータを作成する(S
501)。この輪郭グループデータとは、閉曲線の形状
等に関する情報であり、具体的には、図6(b)に示す
ように、「輪郭の最初」の輪郭データ内での順番を示す
「startIx」と、輪郭線の最後のセグメントの輪
郭データ内での順番を示す「stopIx」と、輪郭線
におけるX座標の最小値を示すminxと、minxの
座標を有するセグメントの輪郭データ内での順番を示す
minIxとから構成される。
【0047】ここで、輪郭データ内での順番としては、
「0」から「セグメント総数−1」の各値が割り当てら
れる。
【0048】そして、輪郭グループデータ作成部15b
では、この輪郭グループデータを各輪郭線について作成
した後、図6(a)に示すように、各輪郭グループデー
タをリスト化して輪郭グループリストを作成するととも
に、この輪郭グループリストを、minxの値に基づい
てソートし(S502)、交点算出部15cに出力す
る。
【0049】次に、交点算出部15cが後述するルール
に従って交点を算定し(S503)、交点が存在する場
合と判断した場合には(S504)、該交点を輪郭片作
成部15dに出力する。
【0050】そして、輪郭片作成部15dは、該交点に
基づいて輪郭線の分割及び輪郭片の作成を行ない(S5
05)、該輪郭片を閉曲線合成部15eに出力する。
【0051】次に、閉曲線合成部15eは、輪郭片が使
用済みであるか否かを確認し(S506)、未使用のも
のであれば閉曲線の開始点を算出する(S507)とと
もに、輪郭片を選択し連結する(S508、S509)
処理を行う。
【0052】そして、上記S506〜S509の処理を
繰り返し、輪郭片がなくなった時点で処理を終了し、メ
モリ12内に新輪郭データとして格納する。
【0053】上記一連の処理を行うことにより、ベクト
ルフォント中の文字形状を構成する閉曲線が互いに交わ
る場合に、閉曲線を再構成することにより白抜けを排除
することが可能となる。
【0054】次に、輪郭グループリスト作成部15bが
行うS501に示す輪郭グループデータの作成処理及び
S502に示す輪郭グループリストのソート処理につい
て、具体例を用いてさらに詳細に説明する。
【0055】図7は、文字形状「中」の輪郭線を構成す
る各閉曲線のセグメント、及びその輪郭グループリスト
を示す図である。
【0056】図7(a)に示すように、この図では「輪
郭の開始」は四角点で示し、セグメントの間に位置する
点には、ベクトル進行方向に沿って「輪郭データの順
番」を付与している。
【0057】したがって、輪郭グループリスト作成部1
5bは、かかる情報に基づいて、S501に示したよう
に輪郭グループデータを作成する。
【0058】すなわち、この輪郭グループリスト作成部
15bは、「輪郭の最初」の輪郭データ内での順番を示
すstartIxとして’0’を、輪郭線の最後のセグ
メントの輪郭データ内での順番を示すstopIxとし
て’4’を、輪郭線におけるX座標の最小値を示すmi
nxとしてx2を、x2の座標を有するセグメントの輪
郭データ内での順番を示すminIxとして’2’をそ
れぞれ設定し、閉曲線G1の輪郭グループデータを作成
する。
【0059】同様に、閉曲線G2及びG3の輪郭グルー
プデータについても構成し、これらの輪郭グループデー
タをリスト化することにより、輪郭グループリストを図
7(b)に示すように構成する。
【0060】また、この輪郭グループリスト作成部15
bは、この輪郭グループリスト内をminxでソートす
る(S502)ため、ソート後の輪郭グループリスト
は、図7(c)に示すようになる。
【0061】次に、交点算出部15cが行うS503に
示す交点算出処理について、上記具体例を用いてさらに
詳細に説明する。
【0062】本実施例では、図4(b)に示す輪郭デー
タのうち「輪郭の開始」以外のセグメントを「自セグメ
ント」としておき、「自セグメント」以外のセグメント
であって自セグメントと交差するセグメントを先頭から
順次検索し、交差するセグメントが存在する場合には、
該セグメントを「交差するセグメント」と認識する。
【0063】また、このセグメントが相互に交差する交
差点の情報を交点データと呼ぶ。
【0064】図8は、交点データのデータ形式を示す図
である。
【0065】図8に示すように、交点データ8aは、自
セグメントの輪郭データ内での順番を示す「formerIx」
と、交差するセグメントの輪郭データ内での順番を示す
「latterIx」と、交差点でのX座標を示す「x」と、交
差点でのY座標を示す「y」と、自セグメントの向きが
交差する閉曲線の内側方向か否かを示す2値データ「fo
rmerBecomIn」と、自セグメントのどこに交差点が位置
するかを0から1の間の数値で示す「formerT」と、交
差するセグメントのどこに交差点が位置するかを0から
1の間の数値で示す「latterT」と、輪郭を連結する際
に使用する「isDone」と、s502でソートした輪郭グ
ループリスト内において交差するセグメントが含まれる
閉曲線の順番を示す「latterContour」とから構成され
る。
【0066】なお、上記「formerBecomIn」は、自セグ
メントの向きが交差する閉曲線の内側方向である場合に
は”true”となり、外側方向である場合には”false”
とし、交差する閉曲線の内側に入るか否かは、下記の如
く判断する。
【0067】すなわち、自セグメントがX軸となす角を
「formerRad」、交差するセグメントがX軸となす角を
「latterRad」とし、該角度を−π〜πで表現すると、 formerRad >= 0 でかつ (formerRad−π) < latterRad < formerRad である場合、又は formerRad < 0 でかつ −π < latterRad < formerRad 又は (formerRad+π) < latterRad <= π である場合は、交差する閉曲線の内側に入るものと判断
し、上記以外の場合には、交差する閉曲線の外側に出る
ものと判断する。
【0068】また、「formerT」については、例えば自
セグメントの属性が直線であり、始点の座標が(x1,
y1)、終点の座標が(x2、y2)、交差点の座標が
(x3,y3)である場合には、 formerT = (abs(X3-X1)+abs(Y3-Y1))/(abs(X2-X
1)+abs(Y2-Y1)) 又は formerT = root((X3-X1)^2+(Y3-Y1)^2)/root((X
2-X1)^2+(Y2-Y1)^2) により求めることができる。なお、absは絶対値を示
し、rootは平方根を示し、^2は2乗を示すものと
する。
【0069】同様に、自セグメントの属性がベジェ関数
である場合には、直線近似を行うことにより、上記算定
式と同様に求めることができる。
【0070】「latterT」についても、上記formerTと同
様にして算定することができる。
【0071】また、図示したように、この交点データ8
aは、交点グループデータ8bとして閉曲線毎にまとめ
られるとともに、この交点グループデータ8bをさらに
まとめると1文字分の交点グループリスト8cとなる。
【0072】ただし、上記交点データを単にまとめて交
点グループデータを作成したのでは、交点データの重複
が生じ、輪郭片データ選択時の選択誤りの要因となるた
め、かかる交点データの重複を排除する必要がある。
【0073】そこで、次にこの交点データの重複排除手
順について説明する。
【0074】図9は、交点算出部15cが、交点データ
算出後に行う交点グループデータの作成手順を示すフロ
ーチャートである。
【0075】図9に示すように、交点算出部15cは、
各交点について交点データを作成した後、この交点デー
タをformerIxの昇順にソートし(S901)、formerIx
が等しい交点データが存在するか否かを確認する(S9
02)。そして、formarIxが等しい交点データが存在す
る場合には、さらにformarIxが等しい交点データをform
erTの昇順にソートし(S903)、下記に示す交点デ
ータの重複排除処理を行う(S904)。
【0076】図10は、交点算出部15cが行う交点デ
ータの重複排除処理(S906)手順を示すフローチャ
ートである。
【0077】図10に示すように、まず変数iに0を代
入し(S1001)、変数iがひとつの閉曲線における
交点データ数を示すcnum未満であるか否かを確認し
(S1002)、cnum未満である限り、下記に示す
S1004〜S1009の処理をiの値をインクリメン
トしつつ(S1003)繰り返す。
【0078】すなわち、まず自セグメント側に重複する
交点データが存在する可能性があるか否かを確認する
(S1004)。
【0079】具体的には、 交点データ[i]のformerIx = 交点データ[i+
1]のformerIx が成立するか否かで判断するか、若しくは、 交点データ[i]のformerIx = 交点データ[i+
1]のformerIx − 1 で、かつ 交点データ[i]のformerT = 1 交点データ[i+1]のformerT = 0 が成立するか否かで判断する。
【0080】そして、重複する可能性がないと判断した
場合には、iの値をインクリメントしてS1002に移
行し、重複する可能性があると判断した場合には、交差
するセグメントの始点/終点で交差するか否かを判断す
る(S1005)。
【0081】具体的には、交点データ[i]のlatterIx
と交点データ[i+1]のlatterIxとが連続であり、か
つ、輪郭の向きの出発側の交点データのlatterTが1
で、進行方向の交点データのlatterTが0である場合
に、交差するセグメントの始点/終点で交差すると判断
する。
【0082】そして、交差するセグメントの始点/終点
で交差すると判断した場合には、自セグメントが交差し
ているのではなく単に接しているだけか否かを判断する
(S1006)。具体的には、交点データ[i]のform
erBecomInと交点データ[i+1]のformerBecomInとが
等しいか否かを確認し、両者が等しくなければ接してい
ると判断し、両者が等しければ交差していると判断す
る。
【0083】そして、自セグメントが接していると判断
した場合には、交点データ[i]及び交点データ[i+
1]を削除(S1007)した後S1003に移行し、
自セグメントが交差していると判断した場合には、交点
データ[i]を削除(S1008)した後S1003に
移行する。
【0084】また、S1005において、始点/終点で
交差しないと判断した場合には、交点データ[i]と交
点データ[i+1]との間で、latterIx、formerBecomI
n及び交点座標が一致するか否かを確認する(S100
9)。
【0085】そして、両者が一致しない場合には、その
ままS1003に移行し、両者がそれぞれ一致する場合
には、交点データ[i]を削除した後(S1008)S
1003に移行する。
【0086】次に、自セグメントの傾きの絶対値と交差
するセグメントの傾きの絶対値とが等しい場合の処理に
ついて説明する。
【0087】図11は、自セグメントの傾きの絶対値と
交差するセグメントの傾きの絶対値とが等しい場合を示
す図である。なお、図中に示すSEG1及びSEG2はそれぞ
れ輪郭を示し、SEG1に示す輪郭は、SEG2よりも輪郭デ
ータ中での番号が若いものとする。
【0088】図11(a)及び(b)に示すように、傾
きの絶対値が同じ範囲となる最初の交点STにおけるform
erBecomInと、最後の交点SPにおけるformerBecomInとが
異なる場合には、図11(f)及び(g)に示すよう
に、交点データ[ST+1]から交点データ[SP−1]ま
でを削除する。
【0089】また、図11(c)及び(d)に示すよう
に、傾きの絶対値が同じ範囲となる最初の交点STにおけ
るformerBecomInと、最後の交点SPにおけるformerBecom
Inとが共通し、かつ、傾きが異なるがその絶対値が共通
する場合において、自セグメントの方が交差するセグメ
ントよりも輪郭データ中の順序が若ければ、交点データ
[ST+1]から交点データ[SP]までを削除し、交差す
るセグメントの方が自セグメントよりも輪郭データ中の
順序が若ければ、交点データ[ST]から交点データ[SP
−1]までを削除する(図11(h)及び(j))。
【0090】さらに、図11(e)に示すように、傾き
の絶対値が同じ範囲となる最初の交点STにおけるformer
BecomInと、最後の交点SPにおけるformerBecomInとが共
通し、かつ、傾き自体も共通する場合には、交点データ
[ST]から交点データ[SP−1]までを削除する(図1
1(k))。
【0091】なお、傾きの絶対値が同じ範囲に、「輪郭
の開始」が含まれる場合についても同様の処理を行うこ
とができる。
【0092】このように、交点算出部15cが、上記一
連の処理を行うことにより、重複のない交点データから
構成される交点グループリスト8cを構成することがで
きる。
【0093】次に、輪郭片作成部15dが、S505で
行う輪郭片データの作成処理について、さらに詳細に説
明する。
【0094】図12は、文字形状「中」の輪郭線G2に
対応する輪郭片データの一例を示す図である。
【0095】まず、図12(a)に示す文字形状「中」
の輪郭線G2の輪郭データは、既に説明したように図1
2(b)の如く構成される。
【0096】そして、輪郭片データとは、輪郭を各交点
で分割したセグメントの集合であり、輪郭データと同様
のデータ形式で構成するため、各交差点は、セグメント
の終端であり、かつ新たなセグメントの「輪郭の開始」
となる。
【0097】ここで、輪郭線G2は、座標(x3,y
4)、(x2,y4)、(x2,y1)及び(x3,y
1)で輪郭線G1と交差することから、輪郭線G2の輪
郭片データ12bを作成するためには、上記座標で各セ
グメントを分割する必要があることが分かる。
【0098】そこで、輪郭データ12aの構成と同様の
手順で輪郭片データを構成すると、図12(c)に示す
ものとなる。
【0099】この例では、各セグメントが直線で表され
る場合の輪郭片データについて示しているが、セグメン
トがベジェ関数で表される場合には、上記「formerT」
を用いて分割を行うことにより制御点を求めることとな
る。
【0100】具体的には、1個のセグメント内で一度交
差している場合には、その交点の交点データ[i]のfo
rmerTを用いてベジェ曲線を2分割し、1個のセグメン
ト内で2度以上交差している場合には、交点データのfo
rmerTの昇順にパラメータ変換を行いつつ2分割を続け
ることとなる。
【0101】上記処理を行うことにより、輪郭片作成部
15dは、交点グループリストに基づいて輪郭片データ
を作成することができる。
【0102】次に、閉曲線合成部15eが、輪郭グルー
プリスト、交点グループリスト及び輪郭片グループリス
トに基づいて、逐次輪郭片データを選択し、これを結合
して新たな閉曲線を構成するS508〜S509に示す
処理について、図7(a)に示す文字形状を例にとり具
体的に説明する。
【0103】まず、閉曲線合成部15eは、輪郭グルー
プリスト内の最初のminIxの前後に存在するformer
Ixを持つ交点データの連なりをサーチする。上記例で
は、最初のminxが’x2’であるので、(x2,y
4)及び(x2,y1)の2交点がサーチされる。
【0104】ここで、交点のformerBecomInがfalseで、
かつ、次の交点のformerBecomInがtrueであるものが存
在する場合には、順番の若い交点を優先して閉曲線の始
点とする。なお、かかる条件を満たす交点が存在しない
場合には、該条件を満たす交点を順次サーチする。
【0105】具体的には、(x2,y4)の交点を始点
とし、(x0,y4)を含む輪郭片が選択されることと
なる。また、閉曲線G2の交点(x2,y4)のisDone
をtrueとし、この交点に対応する閉曲線G1の交点(x
2,y4)のisDoneについてもtrueとする。
【0106】以下同様にして、(x0,y1)を含む輪
郭片及び(x2,y1)を含む輪郭片等が順次選択さ
れ、連結される。
【0107】なお、上記「対応する交点」を求める際に
は、基準となる交点データ[i]と、対応する交点候補
の交点データ[j]との間に、 (1) 交点データ[i]のformerIx及び交点データ
[j]のlatterIxが等しい (2) 交点データ[i]のlatterIx及び交点データ
[j]のformerIxが等しい (3) 交点データ[i]及び交点データ[j]のX,Y
座標が同一 (4) 交点データ[i]及び交点データ[j]のformerB
ecomInが異なる (5) 交点データ[j]のisDoneがfalse という5つの条件が同時に成立するか否かに基づいて判
断する。
【0108】なお、条件(1)に代えて、交点データ
[i]のformerIxが、交点データ[j]のlatterIx+1
に等しく、かつ、交点データ[i]のformerTが0で、
交点データ[j]のlatterTが1である場合、又は、交
点データ[i]のformerIxが、交点データ[j]のlatt
erIx−1に等しく、かつ、交点データ[i]のformerT
が1で、交点データ[j]のlatterTが0である場合を
条件とすることもできる。
【0109】また、条件(2)に代えて、交点データ
[i]のlatterIxが、交点データ[j]のformerIx+1
に等しく、かつ、交点データ[i]のlatterTが0で、
交点データ[j]のformerTが1である場合、又は、交
点データ[i]のlatterIxが、交点データ[j]のform
erIx−1に等しく、かつ、交点データ[i]のlatterT
が1で、交点データ[j]のformerTが0である場合を
条件とすることもできる。
【0110】また、閉曲線G2の交点(x2,y1)を
選択及び連結したならば、交点(x3,y1)を含む輪
郭片ではなく、交点(x2,y1)を含む輪郭片が選択
され、連結される。
【0111】このため、かかる輪郭片の選択及び連結を
交点(x2,y4)のisDoneがtrueであることを確認す
るまで順次繰り返すことにより、文字形状「中」の外輪
郭に対応する新たな閉曲線を構成できることになる。
【0112】また、上記一連の処理により、閉曲線G2
のセグメントを自セグメントとする交点データのisDone
がいずれもtrueとなるため、次に閉曲線G3を自セグメ
ントとする交点データについて調べる。
【0113】この場合には、閉曲線G2の場合と同様に
して、まず交点(x2,y2)を始点とし、(x1,y
2)を含む輪郭片、(x1,y3)を含む輪郭片、(x
2,y3)を含む輪郭片が順次選択及び連結され、交点
(x2,y2)のisDoneがtrueであることを確認した時
点で新たな閉曲線を構成し、処理を終了する。
【0114】また、閉曲線G3を自セグメントとするis
Doneがfalseである交点データに対して同様の処理を行
うことにより、座標(x3,y3)、(x4,y3)、
(x4,y2)、(x3,y2)を通る新たな閉曲線に
ついても構成することができる。
【0115】なお、上記処理を行った時点で、全ての交
点データのisDoneがtrueとなるため、閉曲線G1を自セ
グメントとする処理については行う必要がなく、閉曲線
の合成が完了したものと認識する。
【0116】このように、閉曲線合成部15eが、上記
一連の処理を行うことにより、図3(c)に示すように
閉曲線が相互に交差しない新たな閉曲線を構成すること
が可能となる。
【0117】次に、閉曲線合成部15eが行う上記輪郭
片の選択処理について、さらに詳細に説明する。
【0118】図13は、閉曲線が上記に示す例よりもさ
らに複雑に交差している場合を示す図である。なお、既
に選択され確定した輪郭片については太線により、交差
する輪郭片については細線でそれぞれ示し、isDoneがtr
ueとなる交点データは白抜きで示している。
【0119】図13(a)に示す場合には、確定した輪
郭片SEGa1及びSEGa2の交点A1において、自セグメ
ントの向きが交差するセグメントの内側に入る方向であ
るので交点データ[A1]のformerBecomInはtrueであ
り、また同様に、交点データ[A2]及び交点データ
[A3]のformerBecomInについてもtrueである。
【0120】このため、図13(d)に示すように、SE
Gd1を次セグメントとして選択した後、交点データ
[A2]及び交点データ[A3]のisDoneをそれぞれtr
ueに設定し、以後の閉曲線の合成に使用されないように
する。
【0121】次に、図13(b)に示す場合には、交点
データ[B3]におけるformerBecomInはfalseであり、
また同様に交点データ[B1]及び交点データ[B2]
におけるformerBecomInについてもfalseである。
【0122】このため、図13(e)に示すように、SE
Ge1を次セグメントとして選択した後、交点データ
[B1]及び交点データ[B2]のisDoneをそれぞれtr
ueに設定し、以後の閉曲線の合成に使用されないように
する。
【0123】次に、図13(c)に示す場合には、交点
データ[C1]における輪郭片候補として3つのものが
存在し、交点データ[C1]のformerBecomInはtrueで
ある。
【0124】また、候補となるセグメントについても相
互に交差しているので、それぞれのセグメントを自セグ
メントとした場合の交点データ[C1]を調べ、どの候
補に対しても自セグメントのformerBecomInがfalseとな
る輪郭片を選択することにより、図13(f)に示すSE
Gf1が次セグメントとして選択される。
【0125】このようにして、閉曲線が複雑に交差して
いる場合でも、互いに交差しない新たな閉曲線を構成す
ることができる。
【0126】上述してきたように、本実施例では、輪郭
グループリスト15bが輪郭データに基づいて輪郭グル
ープリストを作成し、交点算出部15cが該輪郭グルー
プリストに基づいて交点グループリストを算出し、輪郭
片作成部15dが該交点グループリストに基づいて輪郭
片データを作成し、閉曲線合成部15eが該輪郭片デー
タの所定のものを選択及び合成するよう構成したので、
交点のない新たな閉曲線で文字形状の輪郭を構成し、白
抜けをなくすことができる。
【0127】なお、本実施例では、閉曲線を構成するセ
グメントのベクトル方向に基づいて処理を行うこととし
たが、本発明はこれに限定されるものではなく、閉曲線
が他の閉曲線に囲まれるか否かの判断に基づいてセグメ
ントのベクトル方向を補正した後、処理を行うこともで
きる。
【0128】また、開始点の指定を行うことにより、閉
曲線のみならず開曲線についても処理を行うことができ
る。
【0129】
【発明の効果】以上詳細に説明したように、第1の発明
によれば、複数の閉曲線の交点に関する所定の情報を閉
曲線ごとに算出し、該算出結果に基づいて前記閉曲線を
分割して複数の輪郭片を作成し、該輪郭片を所定の規則
に基づいて連結して新たな閉曲線を生成するよう構成し
たので、互いに交差する複数の閉曲線を含む文字形状デ
ータから、出力した際に白抜けの生じない文字形状デー
タを容易に得ることが可能となる。
【0130】また、第2の発明によれば、交点情報算出
手段が、読み出し手段により読み出された閉曲線の交点
に関する所定の情報を閉曲線ごとに算出し、輪郭片作成
手段が該算出結果に基づいて閉曲線を分割して複数の輪
郭片を作成し、閉曲線生成手段が該輪郭片を所定の規則
に基づいて連結して新たな閉曲線を生成するよう構成し
たので、互いに交差する複数の閉曲線を含む文字形状デ
ータから、出力した際に白抜けの生じない文字形状デー
タを容易に得ることが可能となる。
【図面の簡単な説明】
【図1】本発明に係るフォント編集装置の構成を示すブ
ロック図。
【図2】図1に示す編集処理部が起動する文字編集ウイ
ンドウの一例を示す図。
【図3】本実施例で用いる文字形状の閉曲線及びセグメ
ントの一例を示す図。
【図4】本実施例で用いる輪郭データの一例を示す図。
【図5】図1に示す編集処理部が行うフォント編集処理
手順を示すフローチャート。
【図6】図1に示す輪郭グループデータ作成部が作成す
る輪郭グループデータ及び輪郭グループリストのデータ
構造を示す図。
【図7】文字形状「中」の輪郭線を構成する各閉曲線の
セグメント及びその輪郭グループリストを示す図。
【図8】図1に示す交点算出部が算出する交点データ、
交点グループデータ及び交点グループリストのデータ構
造を示す図。
【図9】図1に示す交点算出部が交点データ算出後に行
う交点グループデータの作成手順を示すフローチャー
ト。
【図10】図9に示す交点データの重複排除処理手順を
示すフローチャート。
【図11】自セグメントの傾きの絶対値と交差するセグ
メントの傾きの絶対値とが等しい場合を示す図。
【図12】文字形状「中」の輪郭線に対応する輪郭片デ
ータの一例を示す図。
【図13】閉曲線が複雑に交差している場合に、本実施
例を適用した結果を示す図。
【符号の説明】
10 入力部、 11 ハードディスク、11a,11
b フォントファイル、 12 メモリ、12a 文字
形状テーブル、 12b 文字形状データ、12c 旧
輪郭データ、 12d 輪郭グループリスト、12e
交点グループリスト、 12f 輪郭片グループリス
ト、12g 新輪郭データ、 13 ディスプレイ制御
部、14 ディスプレイ、 15 編集処理部、 15
a 読み出し部、15b 輪郭グループリスト作成部、
15c 交点算出部、15d 輪郭片作成部、 15
e 閉曲線合成部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 閉曲線で囲まれた領域を塗りつぶすこと
    により字形を形成するための複数の閉曲線の情報を含む
    字形情報から、互いに交わる閉曲線を特定する第1の過
    程と、 前記第1の過程で特定された互いに交わる閉曲線の交点
    を特定する第2の過程と、 前記第1の過程で特定された閉曲線を前記交点で分割し
    た輪郭片を求める第3の過程と、 互いに交わることのない閉曲線を構成するための輪郭片
    を前記輪郭片から特定する第4の過程と、 前記第4の過程で特定された輪郭片から互いに交わるこ
    とのない複数の閉曲線の情報を作成する第5の過程とを
    具備したことを特徴とする字形情報処理方法。
  2. 【請求項2】 閉曲線で囲まれた領域を塗りつぶすこと
    により字形を形成するための複数の閉曲線の情報を含む
    字形情報を記憶する記憶手段と、 前記記憶手段に記憶された字形情報に基づいて、該字形
    を形成する互いに交わる閉曲線を特定する閉曲線特定手
    段と、 前記閉曲線特定手段により特定された互いに交わる閉曲
    線の交点を特定する交点特定手段と、 前記閉曲線特定手段により特定された閉曲線を、前記交
    点により分割した輪郭片を作成する輪郭片作成手段と、 互いに交わることのない閉曲線を構成するための輪郭片
    を前記輪郭片から特定し、該輪郭片に基づいて複数の閉
    曲線の情報を作成する閉曲線生成手段とを具備したこと
    を特徴とする字形情報処理装置。
JP6049031A 1994-03-18 1994-03-18 字形情報処理方法及び装置 Pending JPH07262390A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6049031A JPH07262390A (ja) 1994-03-18 1994-03-18 字形情報処理方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6049031A JPH07262390A (ja) 1994-03-18 1994-03-18 字形情報処理方法及び装置

Publications (1)

Publication Number Publication Date
JPH07262390A true JPH07262390A (ja) 1995-10-13

Family

ID=12819728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6049031A Pending JPH07262390A (ja) 1994-03-18 1994-03-18 字形情報処理方法及び装置

Country Status (1)

Country Link
JP (1) JPH07262390A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002077965A1 (fr) * 2001-03-23 2002-10-03 Rise Kabushiki Kaisha Procede de traitement de caracteres base sur des informations de police contour, et produit de programme logiciel informatique permettant au systeme informatique de mettre en oeuvre ce procede
JP2012503809A (ja) * 2008-09-28 2012-02-09 北大方正集▲団▼有限公司 複雑なパスの簡素化方法及び装置
WO2014050845A1 (ja) * 2012-09-27 2014-04-03 三菱電機株式会社 グラフィックス描画装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002077965A1 (fr) * 2001-03-23 2002-10-03 Rise Kabushiki Kaisha Procede de traitement de caracteres base sur des informations de police contour, et produit de programme logiciel informatique permettant au systeme informatique de mettre en oeuvre ce procede
JP2012503809A (ja) * 2008-09-28 2012-02-09 北大方正集▲団▼有限公司 複雑なパスの簡素化方法及び装置
WO2014050845A1 (ja) * 2012-09-27 2014-04-03 三菱電機株式会社 グラフィックス描画装置
CN104685543A (zh) * 2012-09-27 2015-06-03 三菱电机株式会社 图形描绘装置
JP5823052B2 (ja) * 2012-09-27 2015-11-25 三菱電機株式会社 グラフィックス描画装置

Similar Documents

Publication Publication Date Title
US4897638A (en) Method for generating character patterns with controlled size and thickness
US5852447A (en) Character and figure transforming system
JPH07160827A (ja) 手書きストローク編集装置及び方法
KR970008546B1 (ko) 문자 또는 도형의 처리방법
JP2904673B2 (ja) 画像作成装置
JPH07262390A (ja) 字形情報処理方法及び装置
US6144765A (en) Figure processing method
US5596689A (en) Figure processing with magnification of designated portion of display
JP3305395B2 (ja) 図形分割装置
JP3490703B2 (ja) アウトラインフォント情報に基づく文字処理方法及びその方法をコンピュータシステムに実行させるためのコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体
JP2806679B2 (ja) 文字発生装置
JP3344538B2 (ja) 文字生成装置
JPH0620021A (ja) 図形処理方法および装置
JP2572441B2 (ja) 帳票固有図形作成装置
JP3334989B2 (ja) 図形作成装置及び方法
JP2856604B2 (ja) 文字処理装置
JP3265762B2 (ja) 画像処理装置
JP3035126B2 (ja) 情報処理装置
JPH04248677A (ja) 建築図等における壁または梁の作図方法およびその装置
JPH06332990A (ja) フィレット面の作成指示方法
JPH0695642A (ja) 文字・記号パターンの生成装置
JPH1039736A (ja) 動的文字生成方法及び動的文字表示方法
JPH07205481A (ja) アウトラインフォントデータ発生装置
JPH10143676A (ja) 画像処理装置、画像処理方法、および記録媒体
JPH04146485A (ja) 字体作成装置および情報処理システム