JPH0922459A - 図形処理方法及び装置 - Google Patents
図形処理方法及び装置Info
- Publication number
- JPH0922459A JPH0922459A JP7171104A JP17110495A JPH0922459A JP H0922459 A JPH0922459 A JP H0922459A JP 7171104 A JP7171104 A JP 7171104A JP 17110495 A JP17110495 A JP 17110495A JP H0922459 A JPH0922459 A JP H0922459A
- Authority
- JP
- Japan
- Prior art keywords
- point
- points
- deletion
- contour line
- graphic processing
- 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.)
- Withdrawn
Links
Landscapes
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【課題】 輪郭線上の重なり合う2点をオペレータが指
示し、それらの点のいずれかを削除するなどの処理を全
て手作業で行わねばならず、多くの人手と時間を要して
いた。また、隣接する2点同士が重なり合ったままにし
ておくと、無駄な輪郭線上の点データをメモリ等に保持
することになるばかりか、その輪郭線データに基づいて
輪郭線を発生する場合などには、その輪郭線の発生処理
に支障を来す虞がある。 【解決手段】 輪郭線を表わす輪郭データを入力して修
正する図形処理方法及び装置であって、輪郭線上の隣接
する2点を特定し(S201)、そのする特定した隣接
2点同士が重なり合っているか否かを判定する(S20
2)。これら2点が重なり合っていると判定されると、
その隣接2点の属性に従って、隣接2点のいずれかの点
を削除点として自動的に特定し(S203)、その特定
された削除点を削除する(S204)ように動作する。
示し、それらの点のいずれかを削除するなどの処理を全
て手作業で行わねばならず、多くの人手と時間を要して
いた。また、隣接する2点同士が重なり合ったままにし
ておくと、無駄な輪郭線上の点データをメモリ等に保持
することになるばかりか、その輪郭線データに基づいて
輪郭線を発生する場合などには、その輪郭線の発生処理
に支障を来す虞がある。 【解決手段】 輪郭線を表わす輪郭データを入力して修
正する図形処理方法及び装置であって、輪郭線上の隣接
する2点を特定し(S201)、そのする特定した隣接
2点同士が重なり合っているか否かを判定する(S20
2)。これら2点が重なり合っていると判定されると、
その隣接2点の属性に従って、隣接2点のいずれかの点
を削除点として自動的に特定し(S203)、その特定
された削除点を削除する(S204)ように動作する。
Description
【0001】
【発明の属する技術分野】本発明は、アウトラインフォ
ント等を構成する輪郭線上の重なり合う隣接点を処理す
る図形処理方法及び装置に関するものである。
ント等を構成する輪郭線上の重なり合う隣接点を処理す
る図形処理方法及び装置に関するものである。
【0002】
【従来の技術】輪郭線を構成する端点及び曲線の制御点
の座標が整数で表現されるアウトラインフォントにおい
て、そのアウトラインフォントを縮小変換して新たな輪
郭線データからなるアウトラインフォント作成する場
合、その輪郭線を構成する端点及び制御点の座標は、変
換後の量子化誤差で、近接する点が同じ座標値になって
重あり合ってしまうことがある。特に輪郭線上の隣接す
る2点同士が重なり合った点については、その輪郭線或
はそのデータを図形編集装置に表示部に表示し、重なり
合っている点を、例えばマウスカーソル等で指示し、そ
れら重なり合った2点のいずれかを削除する等して、互
いに重なり合う輪郭線上の点が発生しないようにしてい
た。
の座標が整数で表現されるアウトラインフォントにおい
て、そのアウトラインフォントを縮小変換して新たな輪
郭線データからなるアウトラインフォント作成する場
合、その輪郭線を構成する端点及び制御点の座標は、変
換後の量子化誤差で、近接する点が同じ座標値になって
重あり合ってしまうことがある。特に輪郭線上の隣接す
る2点同士が重なり合った点については、その輪郭線或
はそのデータを図形編集装置に表示部に表示し、重なり
合っている点を、例えばマウスカーソル等で指示し、そ
れら重なり合った2点のいずれかを削除する等して、互
いに重なり合う輪郭線上の点が発生しないようにしてい
た。
【0003】
【発明が解決しようとする課題】このように上述した従
来の方法によれば、輪郭線上の重なり合う2点をオペレ
ータが指示し、それらの点のいずれかを削除するなどの
処理を全て手作業で行わねばならず、多くの人手と時間
を要していた。また、隣接する2点同士が重なり合った
ままにしておくと、無駄な輪郭線上の点データをメモリ
等に保持することになるばかりか、その輪郭線データに
基づいて輪郭線を発生する場合などには、その輪郭線の
発生処理に支障を来す虞があるという問題があった。
来の方法によれば、輪郭線上の重なり合う2点をオペレ
ータが指示し、それらの点のいずれかを削除するなどの
処理を全て手作業で行わねばならず、多くの人手と時間
を要していた。また、隣接する2点同士が重なり合った
ままにしておくと、無駄な輪郭線上の点データをメモリ
等に保持することになるばかりか、その輪郭線データに
基づいて輪郭線を発生する場合などには、その輪郭線の
発生処理に支障を来す虞があるという問題があった。
【0004】本発明は上記従来例に鑑みてなされたもの
で、輪郭線データにおいて重なり合う隣接2点を判断
し、それら重なり合った隣接2点のいずれか一方の点を
自動的に削除する図形処理方法及び装置を提供すること
を目的とする。
で、輪郭線データにおいて重なり合う隣接2点を判断
し、それら重なり合った隣接2点のいずれか一方の点を
自動的に削除する図形処理方法及び装置を提供すること
を目的とする。
【0005】また本発明の目的は、一致する輪郭点デー
タを削除することにより、輪郭線データを記憶するため
のメモリ容量の無駄を無くし、後続の輪郭線データの展
開処理を容易にした図形処理方法及びその装置を提供す
ることを目的とする。
タを削除することにより、輪郭線データを記憶するため
のメモリ容量の無駄を無くし、後続の輪郭線データの展
開処理を容易にした図形処理方法及びその装置を提供す
ることを目的とする。
【0006】また本発明の目的は、オペレータによる操
作の手間を省いて、輪郭線データの展開処理を容易にで
きる図形処理方法及びその装置を提供することを目的と
する。
作の手間を省いて、輪郭線データの展開処理を容易にで
きる図形処理方法及びその装置を提供することを目的と
する。
【0007】
【課題を解決するための手段】上記目的を達成するため
に本発明の図形処理装置は以下のような構成を備える。
即ち、輪郭線を表わす輪郭データを入力して修正する図
形処理装置であって、輪郭線上の隣接2点を特定する特
定手段と、前記隣接2点同士が重なり合っているか否か
を判定する判定手段と、前記重なり合っている隣接2点
のいずれかの点を削除点として特定する削除点の特定手
段と、前記特定された削除点を削除する削除手段とを有
する。
に本発明の図形処理装置は以下のような構成を備える。
即ち、輪郭線を表わす輪郭データを入力して修正する図
形処理装置であって、輪郭線上の隣接2点を特定する特
定手段と、前記隣接2点同士が重なり合っているか否か
を判定する判定手段と、前記重なり合っている隣接2点
のいずれかの点を削除点として特定する削除点の特定手
段と、前記特定された削除点を削除する削除手段とを有
する。
【0008】上記目的を達成するために本発明の図形処
理方法は以下のような工程を備える。即ち、輪郭線を表
わす輪郭データを入力して修正する図形処理方法であっ
て、輪郭線上の隣接2点を特定する工程と、前記隣接2
点同士が重なり合っているか否かを判定する工程と、前
記重なり合っている隣接2点のいずれかの点を削除点と
して特定する削除点の特定工程と、前記特定された削除
点を削除する工程とを有する。
理方法は以下のような工程を備える。即ち、輪郭線を表
わす輪郭データを入力して修正する図形処理方法であっ
て、輪郭線上の隣接2点を特定する工程と、前記隣接2
点同士が重なり合っているか否かを判定する工程と、前
記重なり合っている隣接2点のいずれかの点を削除点と
して特定する削除点の特定工程と、前記特定された削除
点を削除する工程とを有する。
【0009】
【実施の形態】以下、添付図面を参照して本発明の好適
な実施の形態を詳細に説明する。
な実施の形態を詳細に説明する。
【0010】[第1実施例]図1は、本発明の第1の実
施の形態に係る図形処理装置の構成を示すブロック図で
ある。
施の形態に係る図形処理装置の構成を示すブロック図で
ある。
【0011】図中、1は実施の形態の図形処理装置全体
を示し、制御部2、表示部3、ビデオメモリ(VRA
M)4、キーボード(KB)5、及びマウスなどのポイ
ンティングデバイス(PD)6を主要構成要素としてい
る。尚、これらの各構成要素は、システムバス7を介し
て互いに接続されている。
を示し、制御部2、表示部3、ビデオメモリ(VRA
M)4、キーボード(KB)5、及びマウスなどのポイ
ンティングデバイス(PD)6を主要構成要素としてい
る。尚、これらの各構成要素は、システムバス7を介し
て互いに接続されている。
【0012】制御部2は、本実施の形態の図形処理装置
1全体を制御するもので、マイクロプロセッサ等のCP
U(中央演算装置)8、RAM(読み書き可能メモリ)
等により構成されるプログラムメモリ9、I/Oインタ
ーフェース部10及びハードディスク装置11等を備え
ている。CPU8は、後述するフローチャートで表され
る、プログラムメモリ9に記憶されたプログラムに従っ
て本装置1全体を制御している。プログラムメモリ9は
前記プログラムを格納するとともに、CPU8による制
御処理の実行時、輪郭線データや各種データを記憶する
ためのワークエリアとしても使用され、各種データの一
時補間領域を備えている。I/Oインターフェース部1
0は、この実施の形態では、ハードディスク装置11と
のインターフェース制御を行っている。ハードディスク
装置11は、ディスク上の磁気記録媒体にデータを記録
して読み書きする外部記憶装置で、編集された図形デー
タや文書データ、更にはプログラム・メモリ9にダウン
ロードされて実行される各種アプリケーション・プログ
ラムやフォントデータなども記憶している。
1全体を制御するもので、マイクロプロセッサ等のCP
U(中央演算装置)8、RAM(読み書き可能メモリ)
等により構成されるプログラムメモリ9、I/Oインタ
ーフェース部10及びハードディスク装置11等を備え
ている。CPU8は、後述するフローチャートで表され
る、プログラムメモリ9に記憶されたプログラムに従っ
て本装置1全体を制御している。プログラムメモリ9は
前記プログラムを格納するとともに、CPU8による制
御処理の実行時、輪郭線データや各種データを記憶する
ためのワークエリアとしても使用され、各種データの一
時補間領域を備えている。I/Oインターフェース部1
0は、この実施の形態では、ハードディスク装置11と
のインターフェース制御を行っている。ハードディスク
装置11は、ディスク上の磁気記録媒体にデータを記録
して読み書きする外部記憶装置で、編集された図形デー
タや文書データ、更にはプログラム・メモリ9にダウン
ロードされて実行される各種アプリケーション・プログ
ラムやフォントデータなども記憶している。
【0013】表示部3は、処理された各種図形やオペレ
ータへのメッセージ等を画面に表示するもので、CRT
(陰極線管)或は液晶等で構成されている。ビデオメモ
リ4は、表示部3の画面に表示されるイメージデータが
記憶されている。キーボード5及びポインティングデバ
イス6は、いずれもオペレータにより操作され、各種の
データや指示コマンドを入力するものである。
ータへのメッセージ等を画面に表示するもので、CRT
(陰極線管)或は液晶等で構成されている。ビデオメモ
リ4は、表示部3の画面に表示されるイメージデータが
記憶されている。キーボード5及びポインティングデバ
イス6は、いずれもオペレータにより操作され、各種の
データや指示コマンドを入力するものである。
【0014】次に、図2のフローチャートを参照して、
本実施の形態の図形処理装置1における図形処理を説明
する。尚、この処理は、ハードディスク装置11に記憶
されている輪郭線データのデータ構成が後述する図3に
示すデータ構造とし、プログラムメモリ9にダウンロー
ドされて格納されている状態で開始される。
本実施の形態の図形処理装置1における図形処理を説明
する。尚、この処理は、ハードディスク装置11に記憶
されている輪郭線データのデータ構成が後述する図3に
示すデータ構造とし、プログラムメモリ9にダウンロー
ドされて格納されている状態で開始される。
【0015】本実施の形態は、アウトラインフォントを
構成する輪郭線上の隣接2点を調べ、これら隣接2点が
重なり合っている時、これら重なり合った隣接2点が端
点同士、或は曲線の制御点同士であるかを判断し、そう
であればこれら重なり合った隣接2点の第1番目の点を
削除点として特定して、その削除点を削除する。また、
これら重なり合った隣接2点の一方が端点で、他方が曲
線の制御点であれば、その制御点を削除点として特定し
て、その削除点を削除する。
構成する輪郭線上の隣接2点を調べ、これら隣接2点が
重なり合っている時、これら重なり合った隣接2点が端
点同士、或は曲線の制御点同士であるかを判断し、そう
であればこれら重なり合った隣接2点の第1番目の点を
削除点として特定して、その削除点を削除する。また、
これら重なり合った隣接2点の一方が端点で、他方が曲
線の制御点であれば、その制御点を削除点として特定し
て、その削除点を削除する。
【0016】まず図2のステップS201で、輪郭線デ
ータ上の隣接2点を特定する。ここで隣接2点を特定で
きなければステップS204へ進み、ステップS203
で特定された削除点があればそれを削除して処理を終了
する。次にステップS202に進み、ステップS202
で特定した隣接2点の座標値を調べて重なっているか否
かを判別する。これら隣接2点が重なり合っていなけれ
ばステップS201に戻り、次の隣接2点を特定する。
ータ上の隣接2点を特定する。ここで隣接2点を特定で
きなければステップS204へ進み、ステップS203
で特定された削除点があればそれを削除して処理を終了
する。次にステップS202に進み、ステップS202
で特定した隣接2点の座標値を調べて重なっているか否
かを判別する。これら隣接2点が重なり合っていなけれ
ばステップS201に戻り、次の隣接2点を特定する。
【0017】一方、ステップS202において、ステッ
プS201で特定された隣接2点が重なり合っていあれ
ばステップS203に進み、これら重なり合っている隣
接2点のいずれかを削除点として特定する。そしてステ
ップS201に進み、次の隣接2点を特定する。
プS201で特定された隣接2点が重なり合っていあれ
ばステップS203に進み、これら重なり合っている隣
接2点のいずれかを削除点として特定する。そしてステ
ップS201に進み、次の隣接2点を特定する。
【0018】次に、本実施の形態の輪郭線データについ
て図3及び図4を参照して説明する。
て図3及び図4を参照して説明する。
【0019】図3は、本実施の形態のアウトラインフォ
ントの1文字の輪郭線データテーブルの一例を示す図で
ある。
ントの1文字の輪郭線データテーブルの一例を示す図で
ある。
【0020】図中、Lは各輪郭線の開始点番号を格納し
た輪郭線開始点番号テーブル、Pは各輪郭線の点座標と
点属性とを、輪郭線の回り向き順に格納した輪郭線点テ
ーブルを示している。輪郭線点テーブルPにおいて、全
輪郭線を構成する点の数をnとし各点のX座標を
「x」、Y座標を「y」、点属性を「a」とする。点属
性aにおいて、“0”は直線や曲線の両端点を表す端点
を示し、“1”は曲線の制御点を表す制御点を示してい
る。更に、点番号jは0から始まるものとし、jはその
各点の点番号を表すインデックスである。各点の座標値
(x,y)は、その点番号を示すインデックスj(0〜
n)を用いてP[j].x、P[j].yで表され、各点
の属性はP[j].aで表されるものとする。また、j
=nの時のP[n]は、輪郭線点テーブルPの最後とし
て特別に扱い、その座標値(x,y)及び点属性「a」
は“0”である。
た輪郭線開始点番号テーブル、Pは各輪郭線の点座標と
点属性とを、輪郭線の回り向き順に格納した輪郭線点テ
ーブルを示している。輪郭線点テーブルPにおいて、全
輪郭線を構成する点の数をnとし各点のX座標を
「x」、Y座標を「y」、点属性を「a」とする。点属
性aにおいて、“0”は直線や曲線の両端点を表す端点
を示し、“1”は曲線の制御点を表す制御点を示してい
る。更に、点番号jは0から始まるものとし、jはその
各点の点番号を表すインデックスである。各点の座標値
(x,y)は、その点番号を示すインデックスj(0〜
n)を用いてP[j].x、P[j].yで表され、各点
の属性はP[j].aで表されるものとする。また、j
=nの時のP[n]は、輪郭線点テーブルPの最後とし
て特別に扱い、その座標値(x,y)及び点属性「a」
は“0”である。
【0021】また、輪郭線開始点番号テーブルLにおい
て、「l」は輪郭線の総数を示している。また輪郭線番
号「i」は0から始まるものとし、その各輪郭線番号を
表わすインデックスである。輪郭線開始番号テーブルL
は、このインデックスi(0〜l)を用いてL[i]で
表され、L[0]は、第0番目の輪郭線の開始点番号と
して、輪郭線テーブルPの点番号j=0を格納してい
る。またi=lの時L[l]は、輪郭線開始テーブルL
の最後として特別に扱い、輪郭線点テーブルPのnの値
を格納している。この例においては、輪郭線の総数lは
“3”、制御点の総数nは“99”であり、L[1]は
第1番目の輪郭線の開始点番号として、輪郭線点テーブ
ルPの点番号j=70を格納している。また第0番目の
輪郭線は、L[0]に格納されている開始点番号0か
ら、L[1]に格納されている開始点番号70の1つ前
の69番の点番号で表される点で構成され、同第0番目
の輪郭線上の点の数は、(L[1]−L[0]=70)
で計算される値“70”となる。
て、「l」は輪郭線の総数を示している。また輪郭線番
号「i」は0から始まるものとし、その各輪郭線番号を
表わすインデックスである。輪郭線開始番号テーブルL
は、このインデックスi(0〜l)を用いてL[i]で
表され、L[0]は、第0番目の輪郭線の開始点番号と
して、輪郭線テーブルPの点番号j=0を格納してい
る。またi=lの時L[l]は、輪郭線開始テーブルL
の最後として特別に扱い、輪郭線点テーブルPのnの値
を格納している。この例においては、輪郭線の総数lは
“3”、制御点の総数nは“99”であり、L[1]は
第1番目の輪郭線の開始点番号として、輪郭線点テーブ
ルPの点番号j=70を格納している。また第0番目の
輪郭線は、L[0]に格納されている開始点番号0か
ら、L[1]に格納されている開始点番号70の1つ前
の69番の点番号で表される点で構成され、同第0番目
の輪郭線上の点の数は、(L[1]−L[0]=70)
で計算される値“70”となる。
【0022】更に図中、Dは削除点テーブルを示し、輪
郭線点テーブルPのインデックスjに対応して各点の削
除フラグを格納している。この削除フラグは、輪郭線点
テーブルPを表わすインデックスjを用いてD[j]で
表され、“0”は削除指定なし、“1”は削除指定有り
を示している。尚、削除フラグの初期値は、全てのjに
対して“0”が設定される。
郭線点テーブルPのインデックスjに対応して各点の削
除フラグを格納している。この削除フラグは、輪郭線点
テーブルPを表わすインデックスjを用いてD[j]で
表され、“0”は削除指定なし、“1”は削除指定有り
を示している。尚、削除フラグの初期値は、全てのjに
対して“0”が設定される。
【0023】図4は、図3で示された輪郭線データに従
って輪郭線と、それを構成する点を示した図である。
って輪郭線と、それを構成する点を示した図である。
【0024】図4において、「□」は直線及び曲線の端
点を示し、「○」は曲線の制御点を示している。また、
この輪郭線上に示された番号は、図3の輪郭線点テーブ
ルのインデックスjの点の点番号に対応している。この
実施の形態では図3と図4において、隣接する2点、点
番号j=20と点番号j=21の点が隣接2点であり、
曲線の制御点同士で重なり合っている。また点番号j=
26と点番号j=27の点が隣接2点であり、端点と曲
線の制御点として重なり合っている。更に、点番号j=
30と点番号j=31の点が隣接2点であり、において
端点同士で重なっている。
点を示し、「○」は曲線の制御点を示している。また、
この輪郭線上に示された番号は、図3の輪郭線点テーブ
ルのインデックスjの点の点番号に対応している。この
実施の形態では図3と図4において、隣接する2点、点
番号j=20と点番号j=21の点が隣接2点であり、
曲線の制御点同士で重なり合っている。また点番号j=
26と点番号j=27の点が隣接2点であり、端点と曲
線の制御点として重なり合っている。更に、点番号j=
30と点番号j=31の点が隣接2点であり、において
端点同士で重なっている。
【0025】図5は、図2のフローチャートをより詳細
に示したフローチャートで、ステップS501〜S51
0は図2のステップS201に対応し、図2のフローチ
ャートと対応する処理ステップ番号は同じ番号で示して
いる。尚、この処理を実行するプログラムはプログラム
メモリ(RAM)9に記憶されている。また、ここで
「cp」は隣接2点の第1番目の点を示し、「np」は
隣接2点の第2番目の点を示している。また、「i」は
輪郭線開始テーブルLのインデックスを示し、「j」は
輪郭線点テーブルPのインデックスを示している。更
に、「sl」は現在参照している輪郭線の開始点番号を
示し、「el」はその輪郭線の終了点番号を示してい
る。
に示したフローチャートで、ステップS501〜S51
0は図2のステップS201に対応し、図2のフローチ
ャートと対応する処理ステップ番号は同じ番号で示して
いる。尚、この処理を実行するプログラムはプログラム
メモリ(RAM)9に記憶されている。また、ここで
「cp」は隣接2点の第1番目の点を示し、「np」は
隣接2点の第2番目の点を示している。また、「i」は
輪郭線開始テーブルLのインデックスを示し、「j」は
輪郭線点テーブルPのインデックスを示している。更
に、「sl」は現在参照している輪郭線の開始点番号を
示し、「el」はその輪郭線の終了点番号を示してい
る。
【0026】まずステップS501において、輪郭線番
号を示すインデックスiを“0”にする。次にステップ
S502に進み、iが輪郭線の総lであるか否か、即
ち、全ての輪郭線に対する処理が終了したかを判断す
る。ここでiが輪郭線の総数lに等しくなると隣接2点
の特定を終了する。
号を示すインデックスiを“0”にする。次にステップ
S502に進み、iが輪郭線の総lであるか否か、即
ち、全ての輪郭線に対する処理が終了したかを判断す
る。ここでiが輪郭線の総数lに等しくなると隣接2点
の特定を終了する。
【0027】ステップS503では、輪郭線の開始点番
号slをL[i]とし、輪郭線の終了点番号elをL
[i+1]−1とする。即ち、最初は、slは(L
[0]=)0にセットされ、elは(L[1]−1=7
0−1=)69となる。
号slをL[i]とし、輪郭線の終了点番号elをL
[i+1]−1とする。即ち、最初は、slは(L
[0]=)0にセットされ、elは(L[1]−1=7
0−1=)69となる。
【0028】次にステップS504に進み、点番号を示
すインデックスjを、ステップS503でセットされた
slとする。次にステップS505に進み、j>elで
あるか否か、即ち、現在参照している輪郭線に対する処
理が終了したか否かを判断する。j>elであれば(そ
の輪郭線に対する処理が終了すると)ステップS507
に進み、次の輪郭線を参照すべくiを+1してステップ
S502に戻る。
すインデックスjを、ステップS503でセットされた
slとする。次にステップS505に進み、j>elで
あるか否か、即ち、現在参照している輪郭線に対する処
理が終了したか否かを判断する。j>elであれば(そ
の輪郭線に対する処理が終了すると)ステップS507
に進み、次の輪郭線を参照すべくiを+1してステップ
S502に戻る。
【0029】一方、ステップS505でj>elでなけ
ればステップS506へ進み、隣接2点の第1番目の点
「cp」をjとして特定する。次にステップS508に
進み、その第1番目の「cp」が、その輪郭線の最終の
点「el」に一致するか否かを判断する。一致する時、
即ちcp=elであればステップS509に進み、隣接
2点の第2番目の点「np」を、その現在参照している
輪郭線の開始点「sl」として設定する。一方、ステッ
プS508で、一致しないとき、即ち、cp≠elのと
きはステップS510に進み、第2番目の点「np」を
第1番目の点の次の点(cp+1)として特定する。
ればステップS506へ進み、隣接2点の第1番目の点
「cp」をjとして特定する。次にステップS508に
進み、その第1番目の「cp」が、その輪郭線の最終の
点「el」に一致するか否かを判断する。一致する時、
即ちcp=elであればステップS509に進み、隣接
2点の第2番目の点「np」を、その現在参照している
輪郭線の開始点「sl」として設定する。一方、ステッ
プS508で、一致しないとき、即ち、cp≠elのと
きはステップS510に進み、第2番目の点「np」を
第1番目の点の次の点(cp+1)として特定する。
【0030】そしてステップS202に進み、これら特
定された隣接2点が互いに重なり合っているか否かを判
断し、重なり合っているときはステップS203に進
み、その重なり合っている隣接2点の削除点を特定す
る。そしてステップS511に進み、次の点を参照すべ
くインデックスjを+1してステップS505に戻る。
定された隣接2点が互いに重なり合っているか否かを判
断し、重なり合っているときはステップS203に進
み、その重なり合っている隣接2点の削除点を特定す
る。そしてステップS511に進み、次の点を参照すべ
くインデックスjを+1してステップS505に戻る。
【0031】図6は、ステップS203における削除点
を特定する処理を示すフローチャートである。尚、この
フローチャートにおいて、cp,npのそれぞれは、ス
テップS201で特定された隣接2点の第1番目の点と
第2番目の点の点番号を示している。
を特定する処理を示すフローチャートである。尚、この
フローチャートにおいて、cp,npのそれぞれは、ス
テップS201で特定された隣接2点の第1番目の点と
第2番目の点の点番号を示している。
【0032】まずステップS601で、隣接2点cpと
npの点属性(P[cp].a)と(P[np].a)が
等しいか否かを判断する。ここで2つの点の属性が等し
いということは、隣接2点の点属性が端点同士、或は曲
線の制御点同士であることを示している。そして、これ
ら2つの点の属性が等しければ(P[cp].a=P
[np].aの時)ステップS602へ進み、削除点を
第1番目の点「cp」に特定し、その削除点テーブルD
[cp]の値を“1”として削除フラグを設定する。
npの点属性(P[cp].a)と(P[np].a)が
等しいか否かを判断する。ここで2つの点の属性が等し
いということは、隣接2点の点属性が端点同士、或は曲
線の制御点同士であることを示している。そして、これ
ら2つの点の属性が等しければ(P[cp].a=P
[np].aの時)ステップS602へ進み、削除点を
第1番目の点「cp」に特定し、その削除点テーブルD
[cp]の値を“1”として削除フラグを設定する。
【0033】一方、ステップS601で、隣接2点の属
性が等しくないときはステップS603へ進み、第1番
目の点「cp」の点属性が端点であるか否か、即ち、P
[cp].a=0であるか否かを判断する。そして端点
でないとき(P[cp].a=0でなければ)はステッ
プS604に進み、削除点を第1番目の点cpとして特
定し、その削除点テーブルD[cp]=1として削除フ
ラグを設定する。一方、ステップS603で、その点属
性が端点(P[cp].a=0)ならばステップS60
5に進み、削除点を第2番目の点「np」として特定
し、削除点テーブルD[np]=1として削除フラグを
設定する。
性が等しくないときはステップS603へ進み、第1番
目の点「cp」の点属性が端点であるか否か、即ち、P
[cp].a=0であるか否かを判断する。そして端点
でないとき(P[cp].a=0でなければ)はステッ
プS604に進み、削除点を第1番目の点cpとして特
定し、その削除点テーブルD[cp]=1として削除フ
ラグを設定する。一方、ステップS603で、その点属
性が端点(P[cp].a=0)ならばステップS60
5に進み、削除点を第2番目の点「np」として特定
し、削除点テーブルD[np]=1として削除フラグを
設定する。
【0034】以上の処理を図3及び図4を参照して、よ
り具体的に説明する。
り具体的に説明する。
【0035】図4において、隣接2点が重なり合ってい
る点番号20と点番号21の場合、第1番目の点番号
「cp」は“20”、第2番目の点番号「np」は“2
1”となる。図3のテーブルより、点番号20の点属性
P[20].aが“1”であるため、その属性は制御点
であり、点番号21の点属性P[21].aが“1”で
あるため、その点属性は制御点である。従って、この場
合は図6のフローチャートにおいて、ステップS601
よりステップS602に進み、削除点が第1番目の点
「cp」である点番号20として特定される。
る点番号20と点番号21の場合、第1番目の点番号
「cp」は“20”、第2番目の点番号「np」は“2
1”となる。図3のテーブルより、点番号20の点属性
P[20].aが“1”であるため、その属性は制御点
であり、点番号21の点属性P[21].aが“1”で
あるため、その点属性は制御点である。従って、この場
合は図6のフローチャートにおいて、ステップS601
よりステップS602に進み、削除点が第1番目の点
「cp」である点番号20として特定される。
【0036】また、図4において、隣接2点が重なり合
っている点番号26と点番号27の場合、第1番目の点
番号「cp」は“26”に、第2番目の点番号「np」
は“27”となる。同様に、図3より点番号26の点属
性P[26].aが“0”であるため、その点属性は端
点であり、点番号27の点属性P[27].aが“1”
であるため、その点属性は制御点であることがわかる。
これより図6において、ステップS601よりステップ
S603に進み、(P[26].a)は端点の属性を示
しているからステップS605に進み、削除点を第2番
目の点番号「np」である点“27”として特定され
る。
っている点番号26と点番号27の場合、第1番目の点
番号「cp」は“26”に、第2番目の点番号「np」
は“27”となる。同様に、図3より点番号26の点属
性P[26].aが“0”であるため、その点属性は端
点であり、点番号27の点属性P[27].aが“1”
であるため、その点属性は制御点であることがわかる。
これより図6において、ステップS601よりステップ
S603に進み、(P[26].a)は端点の属性を示
しているからステップS605に進み、削除点を第2番
目の点番号「np」である点“27”として特定され
る。
【0037】更に、図4において、隣接2点が重なり合
っている点番号30と点番号31の場合、第1番目の点
番号「cp」は“30”であり、第2番目の点番号「n
p」は“31”である。同様に、図3より点番号30の
点属性(P[30].a)が“0”であるから、その属
性は端点であり、点番号31の点属性(P[31].
a)が“0”であるから、その点属性は端点となる。こ
の場合は前述の点番号20,21の場合と同様に、図6
のステップS601よりステップS602に進み、削除
点を第1番目の点番号「cp」である点“30”として
特定される。
っている点番号30と点番号31の場合、第1番目の点
番号「cp」は“30”であり、第2番目の点番号「n
p」は“31”である。同様に、図3より点番号30の
点属性(P[30].a)が“0”であるから、その属
性は端点であり、点番号31の点属性(P[31].
a)が“0”であるから、その点属性は端点となる。こ
の場合は前述の点番号20,21の場合と同様に、図6
のステップS601よりステップS602に進み、削除
点を第1番目の点番号「cp」である点“30”として
特定される。
【0038】次に、図2のステップS204において実
行される削除点を削除する方法について説明する。図7
は、削除点を削除する手順を示すフローチャートであ
る。ここでは、「i」は輪郭線開始テーブルLのインデ
ックス、「j」は輪郭線点テーブルPのインデックスを
示し、「sl」は現在参照している輪郭線の開始点番
号、「el」は、現在参照している輪郭線の終了点番号
を示している。また、「dl」は削除処理に必要な輪郭
線の総数をカウントするためのカウンタで、削除処理が
終了した時点で輪郭線の総数[l]に等しくなる。同様
に、「dn」は削除処理に必要な点の総数をカウントす
るためのカウンタで、削除処理が終了した時点で全輪郭
線を構成する点の数[n]となる。更に、「dsl」
は、削除処理において、順次各輪郭線の開始点番号を格
納するためのエリアを示している。
行される削除点を削除する方法について説明する。図7
は、削除点を削除する手順を示すフローチャートであ
る。ここでは、「i」は輪郭線開始テーブルLのインデ
ックス、「j」は輪郭線点テーブルPのインデックスを
示し、「sl」は現在参照している輪郭線の開始点番
号、「el」は、現在参照している輪郭線の終了点番号
を示している。また、「dl」は削除処理に必要な輪郭
線の総数をカウントするためのカウンタで、削除処理が
終了した時点で輪郭線の総数[l]に等しくなる。同様
に、「dn」は削除処理に必要な点の総数をカウントす
るためのカウンタで、削除処理が終了した時点で全輪郭
線を構成する点の数[n]となる。更に、「dsl」
は、削除処理において、順次各輪郭線の開始点番号を格
納するためのエリアを示している。
【0039】まずステップS701において、輪郭線番
号を参照するインデックスiを“0”に初期化する。次
にステップS702に進み、これからカウントする輪郭
線の総数dl及び点の総数dnを“0”に初期化し、更
に輪郭線開始点番号dslを“0”に初期化する。次に
ステップS703に進み、iが輪郭線の総数l(この例
では3)であるか否か、即ち、全ての輪郭線に対する処
理が終了したか否かを判断する。ここでiが輪郭線の総
数lと等しい時はステップS712に進み、それまでの
削除処理により輪郭線の総数がdlに、点の総数がdn
となるため、改めてl=dl、n=dnとし、輪郭線点
テーブルPの最後P[dn]に“0”をセットし、輪郭
線開始テーブルLの最後L[dl]にdnの値をセット
して、この削除処理を終了する。
号を参照するインデックスiを“0”に初期化する。次
にステップS702に進み、これからカウントする輪郭
線の総数dl及び点の総数dnを“0”に初期化し、更
に輪郭線開始点番号dslを“0”に初期化する。次に
ステップS703に進み、iが輪郭線の総数l(この例
では3)であるか否か、即ち、全ての輪郭線に対する処
理が終了したか否かを判断する。ここでiが輪郭線の総
数lと等しい時はステップS712に進み、それまでの
削除処理により輪郭線の総数がdlに、点の総数がdn
となるため、改めてl=dl、n=dnとし、輪郭線点
テーブルPの最後P[dn]に“0”をセットし、輪郭
線開始テーブルLの最後L[dl]にdnの値をセット
して、この削除処理を終了する。
【0040】ステップS703において、iが輪郭線の
総数lと等しくなければステップS704に進み、輪郭
線の開始点番号slをL[i]とし、輪郭線の終了点番
号elを(L[i+1]−1)と設定する。これによ
り、最初は輪郭線の開始点番号slは“0”に、輪郭線
の終了点番号elは(L[1]−1=)69にセットさ
れる。次にステップS705に進み、点番号を参照する
インデックスjを、ステップS704で特定されたsl
とする。
総数lと等しくなければステップS704に進み、輪郭
線の開始点番号slをL[i]とし、輪郭線の終了点番
号elを(L[i+1]−1)と設定する。これによ
り、最初は輪郭線の開始点番号slは“0”に、輪郭線
の終了点番号elは(L[1]−1=)69にセットさ
れる。次にステップS705に進み、点番号を参照する
インデックスjを、ステップS704で特定されたsl
とする。
【0041】次にステップS706に進み、j>elで
あるか否か、即ち、その輪郭線に対する処理が終了した
か否かを判断する。j>elであればステップS707
に進み、1つの輪郭線に対する隣接2点の一方の点の削
除処理が終了したものとして、輪郭線開始テーブルL
[dl]に輪郭線開始点を格納したdslの値をセット
し、輪郭線総数のカウンタdlを1つカウントアップし
てdl=dl+1とする。また、輪郭開始点dslを現
在の点の数dnとする。そして次にステップS708に
進み、次の輪郭線を参照すべくインデックスiを+1し
てステップS703に戻る。
あるか否か、即ち、その輪郭線に対する処理が終了した
か否かを判断する。j>elであればステップS707
に進み、1つの輪郭線に対する隣接2点の一方の点の削
除処理が終了したものとして、輪郭線開始テーブルL
[dl]に輪郭線開始点を格納したdslの値をセット
し、輪郭線総数のカウンタdlを1つカウントアップし
てdl=dl+1とする。また、輪郭開始点dslを現
在の点の数dnとする。そして次にステップS708に
進み、次の輪郭線を参照すべくインデックスiを+1し
てステップS703に戻る。
【0042】一方、ステップS706でj>elでなけ
ればステップS709へ進み、現在参照している点に削
除フラグが立っているか否か、即ち、D[j]=1であ
るか否かを判断する。削除が指定されていなければ(D
[j]≠1)ステップS710に進み、現在の点を次に
進めて削除処理実行済みの点としてエントリーすべくP
[dn]=P[j]とし、点の数のカウンタdnを+1
してステップS711へ進む。一方、ステップS709
でD[j]=1(削除指定)であればステップS710
を飛ばしてステップS711へ進む。ステップS711
では、次の点を参照すべくjを+1してステップS70
6へ戻る。
ればステップS709へ進み、現在参照している点に削
除フラグが立っているか否か、即ち、D[j]=1であ
るか否かを判断する。削除が指定されていなければ(D
[j]≠1)ステップS710に進み、現在の点を次に
進めて削除処理実行済みの点としてエントリーすべくP
[dn]=P[j]とし、点の数のカウンタdnを+1
してステップS711へ進む。一方、ステップS709
でD[j]=1(削除指定)であればステップS710
を飛ばしてステップS711へ進む。ステップS711
では、次の点を参照すべくjを+1してステップS70
6へ戻る。
【0043】このようにして、削除フラグが“1”であ
る、即ち、削除が指定されている輪郭線上の点の場合に
ステップS710がスキップされるので、その点だけが
輪郭線点テーブルPに登録されることがなく、他の削除
フラグがセットされていない輪郭線点データだけが輪郭
線点テーブルPにセットされることになる。
る、即ち、削除が指定されている輪郭線上の点の場合に
ステップS710がスキップされるので、その点だけが
輪郭線点テーブルPに登録されることがなく、他の削除
フラグがセットされていない輪郭線点データだけが輪郭
線点テーブルPにセットされることになる。
【0044】[第2実施の形態]次に、本発明の第2実
施の形態を図8に基づき説明する。
施の形態を図8に基づき説明する。
【0045】この第2実施の形態に係る図形処理装置の
基本構成及びその処理動作は、前述した第1実施の形態
における図1及び図2と同様である。
基本構成及びその処理動作は、前述した第1実施の形態
における図1及び図2と同様である。
【0046】この第2実施の形態では、アウトラインフ
ォントを構成する輪郭線上の隣接2点を調べ、その隣接
2点が重なり合っていた時は、その隣接2点が端点同
士、或は曲線の制御点同士かを調べ、そうであれば、そ
の重なり合った隣接2点の第2番目の点を削除点として
特定して、その削除点を削除する。また、その重なり合
った隣接2点の一方が端点で、他方が曲線の制御点であ
れば、その制御点を削除点として特定して、その削除点
を削除する。
ォントを構成する輪郭線上の隣接2点を調べ、その隣接
2点が重なり合っていた時は、その隣接2点が端点同
士、或は曲線の制御点同士かを調べ、そうであれば、そ
の重なり合った隣接2点の第2番目の点を削除点として
特定して、その削除点を削除する。また、その重なり合
った隣接2点の一方が端点で、他方が曲線の制御点であ
れば、その制御点を削除点として特定して、その削除点
を削除する。
【0047】この第2実施の形態が前述した第1実施の
形態と異なる点は、図6のステップS602における削
除点の特定方法が異なるだけで、その他の処理は同じで
ある。従ってここでは、このステップS602に相当す
る削除点の特定処理を図8のフローチャートを参照して
説明する。
形態と異なる点は、図6のステップS602における削
除点の特定方法が異なるだけで、その他の処理は同じで
ある。従ってここでは、このステップS602に相当す
る削除点の特定処理を図8のフローチャートを参照して
説明する。
【0048】図8は、本発明の第2実施の形態における
削除点を特定する制御手順を示すフローチャートであ
り、この処理を実行するための制御プログラムは、制御
部2のプログラムメモリ9に記憶されている。また、こ
の削除処理は、ハードディスク装置11に記憶されてい
る輪郭線データが、例えば図3に示すデータ構造でプロ
グラムメモリ9に格納されている状態で開始される。
削除点を特定する制御手順を示すフローチャートであ
り、この処理を実行するための制御プログラムは、制御
部2のプログラムメモリ9に記憶されている。また、こ
の削除処理は、ハードディスク装置11に記憶されてい
る輪郭線データが、例えば図3に示すデータ構造でプロ
グラムメモリ9に格納されている状態で開始される。
【0049】図8において、前述と同様に、cp,np
のそれぞれは、ステップS201において特定された隣
接2点の第1番目の点と第2番目の点の点番号を示す。
のそれぞれは、ステップS201において特定された隣
接2点の第1番目の点と第2番目の点の点番号を示す。
【0050】まずステップS801で、隣接2点cpと
nPの点属性(P[cp].a)と(P[np].a)が
等しいか否かを判断する。ここでこれら2点の点属性が
等しいということは、隣接2点の点属性が端点同士、或
は曲線の制御点同士であることを意味している。そして
これら2点の点属性が等しい(P[cp].a=P[n
p].a)時はステップS802に進み、削除点を第2
番目の点「np」に特定し、それに対応する削除テーブ
ルD[np]の削除フラグを“1”にセットする。
nPの点属性(P[cp].a)と(P[np].a)が
等しいか否かを判断する。ここでこれら2点の点属性が
等しいということは、隣接2点の点属性が端点同士、或
は曲線の制御点同士であることを意味している。そして
これら2点の点属性が等しい(P[cp].a=P[n
p].a)時はステップS802に進み、削除点を第2
番目の点「np」に特定し、それに対応する削除テーブ
ルD[np]の削除フラグを“1”にセットする。
【0051】一方、ステップS801でP[cp].a
=P[np].aでなければステップS803に進み、
隣接2点の第1番目の点「cp」の点属性が端点である
か否か、即ち、P[cp].a=0であるか否かを判断
する。そして端点(P[cp].a=0)でなければス
テップS804に進み、削除点を第1番目の点「cp」
に特定し、削除点テーブルD[cp]=1とし、削除フ
ラグを設定する。また、ステップS803で端点(P
[cp].a=0)ならばステップS805に進み、削
除点を第2番目の点「np」に特定し、削除点テーブル
D[np]=1として削除フラグを設定する。
=P[np].aでなければステップS803に進み、
隣接2点の第1番目の点「cp」の点属性が端点である
か否か、即ち、P[cp].a=0であるか否かを判断
する。そして端点(P[cp].a=0)でなければス
テップS804に進み、削除点を第1番目の点「cp」
に特定し、削除点テーブルD[cp]=1とし、削除フ
ラグを設定する。また、ステップS803で端点(P
[cp].a=0)ならばステップS805に進み、削
除点を第2番目の点「np」に特定し、削除点テーブル
D[np]=1として削除フラグを設定する。
【0052】[第3実施の形態]次に、本発明の第3実
施の形態を図9に基づき説明する。尚、この第3実施の
形態に係る図形処理装置の基本構成及びその処理動作
は、前述した第1及び第2実施の形態にと同様であるた
め、それらの説明を省略する。
施の形態を図9に基づき説明する。尚、この第3実施の
形態に係る図形処理装置の基本構成及びその処理動作
は、前述した第1及び第2実施の形態にと同様であるた
め、それらの説明を省略する。
【0053】この第3実施の形態では、前述した第1実
施の形態及び第2実施の形態において、削除点を削除す
る処理において、特定された削除点を削除した結果、輪
郭データを構成する点が2点以下になったら輪郭線デー
タとして成り立たないものであるから、その輪郭線を削
除する。
施の形態及び第2実施の形態において、削除点を削除す
る処理において、特定された削除点を削除した結果、輪
郭データを構成する点が2点以下になったら輪郭線デー
タとして成り立たないものであるから、その輪郭線を削
除する。
【0054】この第3実施の形態が前述した第1実施の
形態及び第2実施の形態と異なる点は、図7のステップ
S706とステップS707の間に輪郭線削除処理ステ
ップを設けた点が異なっており、その他の処理は前述の
図7のフローチャートと同じである。従って、ここで
は、図9を参照して、その異なるステップを中心に説明
し、その他の処理の詳細な説明は省略する。
形態及び第2実施の形態と異なる点は、図7のステップ
S706とステップS707の間に輪郭線削除処理ステ
ップを設けた点が異なっており、その他の処理は前述の
図7のフローチャートと同じである。従って、ここで
は、図9を参照して、その異なるステップを中心に説明
し、その他の処理の詳細な説明は省略する。
【0055】図9は、本発明の第3実施の形態における
削除点を削除する処理手順を示すフローチャートであ
り、この処理を実行するための制御プログラムは、制御
部2のプログラムメモリ9に記憶されている。また、こ
の削除処理は、ハードディスク装置11に記憶されてい
る輪郭線データが、例えば図3のデータ構造でプログラ
ムメモリ9に格納されている状態で開始される。
削除点を削除する処理手順を示すフローチャートであ
り、この処理を実行するための制御プログラムは、制御
部2のプログラムメモリ9に記憶されている。また、こ
の削除処理は、ハードディスク装置11に記憶されてい
る輪郭線データが、例えば図3のデータ構造でプログラ
ムメモリ9に格納されている状態で開始される。
【0056】図9において、iは輪郭線開始テーブルL
のインデックス、「j」は輪郭線点テーブルPのインデ
ックスを示し、「sl」は現在参照している輪郭線の開
始点番号、「el」は現在参照している輪郭線の終了点
番号を示している。また「dl」は削除処理に必要な輪
郭線の総数(l)をカウントするためのカウンタで、削
除処理が終了した時点で輪郭線の総数となりうるもので
ある。同様に「dn」は、削除処理に必要な点の総数
(n)をカウントするためのカウンタで、削除処理が終
了した時点で、全輪郭線を構成する点の数となりうるも
のである。
のインデックス、「j」は輪郭線点テーブルPのインデ
ックスを示し、「sl」は現在参照している輪郭線の開
始点番号、「el」は現在参照している輪郭線の終了点
番号を示している。また「dl」は削除処理に必要な輪
郭線の総数(l)をカウントするためのカウンタで、削
除処理が終了した時点で輪郭線の総数となりうるもので
ある。同様に「dn」は、削除処理に必要な点の総数
(n)をカウントするためのカウンタで、削除処理が終
了した時点で、全輪郭線を構成する点の数となりうるも
のである。
【0057】まずステップS901において、輪郭線番
号を参照するインデックスiを“0”に初期化する。次
にステップS902に進み、これからカウントする輪郭
線の総数dl及び点の総数dnを“0”に初期化し、更
に輪郭線開始点番号dslを“0”に初期化する。次に
ステップS903に進み、iが輪郭線の総数l(この例
では3)であるか否か、即ち、全ての輪郭線に対する処
理が終了したか否かを判断する。ここでiが輪郭線の総
数lと等しい時はステップS913に進み、それまでの
削除処理により輪郭線の総数がdlに、点の総数がdn
となるため、改めてl=dl、n=dnとし、輪郭線点
テーブルPの最後P[dn]に“0”をセットし、輪郭
線開始テーブルLの最後L[dl]にdnの値をセット
して、この削除処理を終了する。
号を参照するインデックスiを“0”に初期化する。次
にステップS902に進み、これからカウントする輪郭
線の総数dl及び点の総数dnを“0”に初期化し、更
に輪郭線開始点番号dslを“0”に初期化する。次に
ステップS903に進み、iが輪郭線の総数l(この例
では3)であるか否か、即ち、全ての輪郭線に対する処
理が終了したか否かを判断する。ここでiが輪郭線の総
数lと等しい時はステップS913に進み、それまでの
削除処理により輪郭線の総数がdlに、点の総数がdn
となるため、改めてl=dl、n=dnとし、輪郭線点
テーブルPの最後P[dn]に“0”をセットし、輪郭
線開始テーブルLの最後L[dl]にdnの値をセット
して、この削除処理を終了する。
【0058】一方、ステップS903において、インデ
ックスiが輪郭線の総数lと等しくない時はステップS
904に進み、輪郭線の開始点番号slをL[i]と
し、輪郭線の終了点番号elを(L[i+1]−1)と
して特定する。ここでは最初はslはL[0]=0に、
elは(L[1]−1=)69もセットされる。次にス
テップS905に進み、点番号を参照するインデックス
jをステップS904で特定されたslの値に設定す
る。
ックスiが輪郭線の総数lと等しくない時はステップS
904に進み、輪郭線の開始点番号slをL[i]と
し、輪郭線の終了点番号elを(L[i+1]−1)と
して特定する。ここでは最初はslはL[0]=0に、
elは(L[1]−1=)69もセットされる。次にス
テップS905に進み、点番号を参照するインデックス
jをステップS904で特定されたslの値に設定す
る。
【0059】次にステップS906に進み、j>elで
あるか否か、即ち、現在参照中の輪郭線の全ての点を参
照し終えたかを判断する。そうであれば(j>el)ス
テップS907に進み、1つの輪郭線に対する削除処理
が終了したものとして、輪郭線を構成する点の数を調べ
るべく、現在までの点の数dnから開始点番号を格納し
たdslの値を引いた値が“3”より小さいか否か、即
ちdn−dsl<3であるか否かを判断する。dn−d
sl<3であれば、この輪郭線をエントリーせずにステ
ップS909へ進む。ここで“3”と比較するのは、
“3”より小さいときは、その点同士を結ぶ輪郭線が存
在しなくなるためである。
あるか否か、即ち、現在参照中の輪郭線の全ての点を参
照し終えたかを判断する。そうであれば(j>el)ス
テップS907に進み、1つの輪郭線に対する削除処理
が終了したものとして、輪郭線を構成する点の数を調べ
るべく、現在までの点の数dnから開始点番号を格納し
たdslの値を引いた値が“3”より小さいか否か、即
ちdn−dsl<3であるか否かを判断する。dn−d
sl<3であれば、この輪郭線をエントリーせずにステ
ップS909へ進む。ここで“3”と比較するのは、
“3”より小さいときは、その点同士を結ぶ輪郭線が存
在しなくなるためである。
【0060】一方、ステップS907において、dn−
dsl<3でなければステップS908に進み、輪郭線
開始テーブルL[dl]に輪郭線開始点を格納したds
lをセットし、輪郭線総数のカウンタdlを1つカウン
トアップし、dl=dl+1とする。また輪郭開始点d
slを現在の点の数dnにセットする。そして次にステ
ップS909へ進む。ステップS909では、次の輪郭
線を参照すべくiを+1してステップS903に戻る。
dsl<3でなければステップS908に進み、輪郭線
開始テーブルL[dl]に輪郭線開始点を格納したds
lをセットし、輪郭線総数のカウンタdlを1つカウン
トアップし、dl=dl+1とする。また輪郭開始点d
slを現在の点の数dnにセットする。そして次にステ
ップS909へ進む。ステップS909では、次の輪郭
線を参照すべくiを+1してステップS903に戻る。
【0061】一方、ステップS906でj>elでなけ
れば、即ち、現在参照している輪郭線の処理が終了して
いない時はステップS910に進み、現在参照している
点に削除フラグが立っているか否か、即ちD[j]=1
であるか否かを判断する。D[j]=1でなければステ
ップS911に進み、現在の点を改めて削除処理を実行
した後、輪郭線上の点としてエントリーすべくP[d
n]=P[j]とし、点の数のカウンタdnを+1して
ステップS912へ進む。一方、ステップS910でD
[j]=1(削除フラグオン)であればステップS91
1を飛ばしてステップS912へ進む。ステップS91
2では、次の点を参照すべくjを+1してステップS9
06へ戻る。
れば、即ち、現在参照している輪郭線の処理が終了して
いない時はステップS910に進み、現在参照している
点に削除フラグが立っているか否か、即ちD[j]=1
であるか否かを判断する。D[j]=1でなければステ
ップS911に進み、現在の点を改めて削除処理を実行
した後、輪郭線上の点としてエントリーすべくP[d
n]=P[j]とし、点の数のカウンタdnを+1して
ステップS912へ進む。一方、ステップS910でD
[j]=1(削除フラグオン)であればステップS91
1を飛ばしてステップS912へ進む。ステップS91
2では、次の点を参照すべくjを+1してステップS9
06へ戻る。
【0062】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置に本発明
を実施するプログラムを供給することによって達成され
る場合にも適用できる。
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置に本発明
を実施するプログラムを供給することによって達成され
る場合にも適用できる。
【0063】以上説明したように本実施の形態によれ
ば、輪郭線上の点が直線或は曲線の端点、或は曲線の制
御点のいずれかにより表される輪郭データを入力して修
正する場合、輪郭線上の隣接2点が特定され、その隣接
2点が重なり合っているときは、その重なり合った隣接
2点のいずれかの点を削除点として特定して削除する。
これにより、互いに重なり合う隣接2点の座標データを
記憶することがなくなるため、輪郭線データを記憶する
ためのメモリ容量を少なくでき、かつ後続の図形処理を
行う際の処理を簡略化できる。
ば、輪郭線上の点が直線或は曲線の端点、或は曲線の制
御点のいずれかにより表される輪郭データを入力して修
正する場合、輪郭線上の隣接2点が特定され、その隣接
2点が重なり合っているときは、その重なり合った隣接
2点のいずれかの点を削除点として特定して削除する。
これにより、互いに重なり合う隣接2点の座標データを
記憶することがなくなるため、輪郭線データを記憶する
ためのメモリ容量を少なくでき、かつ後続の図形処理を
行う際の処理を簡略化できる。
【0064】
【発明の効果】以上説明したように本発明によれば、輪
郭線データにおいて重なり合う隣接2点を判断し、それ
ら重なり合った隣接2点のいずれか一方の点を自動的に
削除することができる。
郭線データにおいて重なり合う隣接2点を判断し、それ
ら重なり合った隣接2点のいずれか一方の点を自動的に
削除することができる。
【0065】また本発明によれば、一致する輪郭点デー
タを削除することにより、輪郭線データを記憶するため
のメモリ容量の無駄を無くし、後続の輪郭線データの展
開処理を容易にできるという効果がある。
タを削除することにより、輪郭線データを記憶するため
のメモリ容量の無駄を無くし、後続の輪郭線データの展
開処理を容易にできるという効果がある。
【0066】また本発明によれば、オペレータによる操
作の手間を省いて、輪郭線データの展開処理を容易にで
きるという効果がある。
作の手間を省いて、輪郭線データの展開処理を容易にで
きるという効果がある。
【0067】
【図1】本発明の第1実施の形態に係る図形作成装置の
概略構成を示すブロック図である。
概略構成を示すブロック図である。
【図2】本発明の一実施の形態の図形処理装置における
隣接2点の削除処理を示すフローチャートである。
隣接2点の削除処理を示すフローチャートである。
【図3】本実施の形態の図形処理装置におけるアウトラ
インフォントの1文字の輪郭線データテーブルの一例を
示す図である。
インフォントの1文字の輪郭線データテーブルの一例を
示す図である。
【図4】文字を表わす輪郭線と、その輪郭線を構成する
点の例を示す図である。
点の例を示す図である。
【図5】本実施の形態の図形処理装置の輪郭線上の隣接
2点の処理を示すフローチャートである。
2点の処理を示すフローチャートである。
【図6】本発明の第1実施の形態の図形処理装置におけ
る削除点を特定する手順を示すフローチャートである。
る削除点を特定する手順を示すフローチャートである。
【図7】本実施の形態の図形処理装置における、削除点
の削除処理を示すフローチャートである。
の削除処理を示すフローチャートである。
【図8】本発明の第2実施の形態の図形処理装置におけ
る削除点を特定する手順を示すフローチャートである。
る削除点を特定する手順を示すフローチャートである。
【図9】本発明の第3実施の形態の図形処理装置におけ
る、削除点の削除処理を示すフローチャートである。
る、削除点の削除処理を示すフローチャートである。
1 図形処理装置 2 制御部 3 表示部(CRT) 4 ビデオメモリ(VRAM) 5 キーボード(KBD) 6 ポインティングデバイス(PD) 8 CPU
Claims (14)
- 【請求項1】 輪郭線を表わす輪郭データを入力して修
正する図形処理方法であって、 輪郭線上の隣接2点を特定する工程と、 前記隣接2点同士が重なり合っているか否かを判定する
工程と、 前記重なり合っている隣接2点のいずれかの点を削除点
として特定する削除点の特定工程と、 前記特定された削除点を削除する工程と、を有すること
を特徴とする図形処理方法。 - 【請求項2】 前記特定工程において、重なり合ってい
る隣接2点を第1と第2の点とする時、前記第1と第2
の点の属性が異なるとき、前記第1の点の属性が端点で
あれば前記第2の点を前記削除点とすることを特徴とす
る請求項1に記載の図形処理方法。 - 【請求項3】 前記特定工程において、重なり合ってい
る隣接2点を第1と第2の点とする時、前記第1と第2
の点の属性が異なるとき、前記第1の点の属性が曲線の
制御点であれば前記第1の点を前記削除点とすることを
特徴とする請求項1に記載の図形処理方法。 - 【請求項4】 前記特定工程において、重なり合ってい
る隣接2点を第1と第2の点とする時、前記第1と第2
の点の属性が一致する時は前記第1の点を前記削除点と
することを特徴とする請求項1に記載の図形処理方法。 - 【請求項5】 前記特定工程において、重なり合ってい
る隣接2点を第1と第2の点とする時、前記第1と第2
の点の属性が一致する時は前記第2の点を前記削除点と
することを特徴とする請求項1に記載の図形処理方法。 - 【請求項6】 前記属性は直線或は曲線の端点である
か、或は曲線の制御点のいずれかを特定することを特徴
とする請求項1乃至5のいずれか1項に記載の図形処理
方法。 - 【請求項7】 前記削除点を削除した結果、輪郭データ
を構成する点データが2点以下になると、その輪郭線を
削除する工程を更に有することを特徴とする請求項1記
載の図形処理方法。 - 【請求項8】 輪郭線を表わす輪郭データを入力して修
正する図形処理装置であって、 輪郭線上の隣接2点を特定する特定手段と、 前記隣接2点同士が重なり合っているか否かを判定する
判定手段と、 前記重なり合っている隣接2点のいずれかの点を削除点
として特定する削除点の特定手段と、 前記特定された削除点を削除する削除手段と、を有する
ことを特徴とする図形処理装置。 - 【請求項9】 前記特定手段は、重なり合っている隣接
2点を第1と第2の点とする時、前記第1と第2の点の
属性を比較する比較手段を有し、前記比較手段による比
較結果により前記第1と第2の点の属性が異なる時、前
記第1の点の属性が端点であれば前記第2の点を前記削
除点とすることを特徴とする請求項8に記載の図形処理
装置。 - 【請求項10】 前記特定手段は、重なり合っている隣
接2点を第1と第2の点とする時、前記第1と第2の点
の属性を比較する比較手段を有し、前記比較手段による
比較結果により前記第1と第2の点の属性が異なると
き、前記第1の点の属性が曲線の制御点であれば前記第
1の点を前記削除点とすることを特徴とする請求項8に
記載の図形処理装置。 - 【請求項11】 前記特定手段は、重なり合っている隣
接2点を第1と第2の点とする時、前記第1と第2の点
の属性を比較する比較手段を有し、前記比較手段による
比較結果により前記第1と第2の点の属性が一致する時
は前記第1の点を前記削除点とすることを特徴とする請
求項8に記載の図形処理装置。 - 【請求項12】 前記特定手段は、重なり合っている隣
接2点を第1と第2の点とする時、前記第1と第2の点
の属性を比較する比較手段を有し、前記比較手段による
比較結果により前記第1と第2の点の属性が一致する時
は、前記第2の点を前記削除点とすることを特徴とする
請求項8に記載の図形処理装置。 - 【請求項13】 前記属性は直線或は曲線の端点である
か、或は曲線の制御点のいずれかを特定することを特徴
とする請求項8乃至12のいずれか1項に記載の図形処
理装置。 - 【請求項14】 前記削除点を削除した結果、輪郭デー
タを構成する点データが2点以下になると、その輪郭線
を削除する輪郭線削除手段を更に有することを特徴とす
る請求項8記載の図形処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7171104A JPH0922459A (ja) | 1995-07-06 | 1995-07-06 | 図形処理方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7171104A JPH0922459A (ja) | 1995-07-06 | 1995-07-06 | 図形処理方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0922459A true JPH0922459A (ja) | 1997-01-21 |
Family
ID=15917057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7171104A Withdrawn JPH0922459A (ja) | 1995-07-06 | 1995-07-06 | 図形処理方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0922459A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012511783A (ja) * | 2008-12-09 | 2012-05-24 | クゥアルコム・インコーポレイテッド | 3次元グラフィックスハードウェアを使用した2次元グラフィックスレンダリング中の頂点ポイントの廃棄 |
-
1995
- 1995-07-06 JP JP7171104A patent/JPH0922459A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012511783A (ja) * | 2008-12-09 | 2012-05-24 | クゥアルコム・インコーポレイテッド | 3次元グラフィックスハードウェアを使用した2次元グラフィックスレンダリング中の頂点ポイントの廃棄 |
KR101337758B1 (ko) * | 2008-12-09 | 2013-12-06 | 퀄컴 인코포레이티드 | 3차원 그래픽 하드웨어를 이용한 2차원 그래픽 렌더링 동안의 버텍스 포인트 제거 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2993528B2 (ja) | テキスト管理・復元方式 | |
EP0535894A2 (en) | Apparatus and method for transforming a graphic pattern | |
JPH0922459A (ja) | 図形処理方法及び装置 | |
JP3155125B2 (ja) | ページめくり機能を持つデータ処理装置とデータのページめくり方法 | |
JPH05189529A (ja) | 図形編集方式 | |
JPH08212361A (ja) | 図形編集装置および図形編集方法 | |
JPH0750480B2 (ja) | 文章データ編集装置 | |
JP2941279B2 (ja) | 図面管理方法および装置、電子化データの処理表示方法および装置 | |
JPS62214438A (ja) | ソフトウェア仕様書再利用方法 | |
JPH04238534A (ja) | 項目単位型画面入出力制御方式 | |
JP2959490B2 (ja) | 文字列付加方式 | |
JPH0816834B2 (ja) | 曲線発生方法 | |
JPH08115358A (ja) | 表および図形のデータ接続方法およびデータ接続装置 | |
JPH01162922A (ja) | 表示ウィンドウ管理方式 | |
JP2972570B2 (ja) | 文書作成装置 | |
JPH0773030A (ja) | 動的モデル設計支援方法 | |
JPH06290254A (ja) | 三次元図形の表示処理装置 | |
JPH0926777A (ja) | 図形処理方法及び装置 | |
JPH0194483A (ja) | 配置設計支援装置 | |
JPH0375942A (ja) | ファイルの編集履歴制御方式 | |
JPH05159038A (ja) | ストローク入力における図形の修正方式 | |
JP2001195290A (ja) | ファイル保存管理装置、及び記憶媒体 | |
JPS6048077A (ja) | 文書情報記憶制御方式 | |
US20070206026A1 (en) | Computer readable recording medium recorded with graphics editing program, and graphics editing apparatus | |
JPS59125406A (ja) | コンピユ−タ・プログラムの自動作成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20021001 |