JPH0627928A - アウトラインフォント補間方法 - Google Patents

アウトラインフォント補間方法

Info

Publication number
JPH0627928A
JPH0627928A JP4205989A JP20598992A JPH0627928A JP H0627928 A JPH0627928 A JP H0627928A JP 4205989 A JP4205989 A JP 4205989A JP 20598992 A JP20598992 A JP 20598992A JP H0627928 A JPH0627928 A JP H0627928A
Authority
JP
Japan
Prior art keywords
arc
coordinate
quadrant
coordinates
register
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
JP4205989A
Other languages
English (en)
Inventor
Tadao Shimizu
忠雄 清水
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP4205989A priority Critical patent/JPH0627928A/ja
Publication of JPH0627928A publication Critical patent/JPH0627928A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 アウトラインフォントの座標データを円弧に
沿った形式で補間する場合に、その演算と生成速度の向
上を図る。 【構成】 円弧11に沿う座標データの補間を容易にす
るために、演算処理の対象を円を8分割した範囲に限定
する。また、その円は予め座標変換によって原点を中心
と一致させ、X座標とY座標の符号の扱いを容易にする
ために、例えば、その円弧を第1象限の特定の範囲に配
置変換する。こうすれば演算も容易になり、さらに対称
変換等の補間方法を採用することにより、印字品位も向
上する。その印字データを逆変換処理すれば、円弧のも
との位置における座標データが求められる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、アウトラインフォント
を使用して、プリンタやディスプレイに対し文字や記号
を出力する場合に、必要な座標データの補間を行なうア
ウトラインフォント補間方法に関する。
【0002】
【従来の技術】アウトラインフォントは、プリンタやデ
ィスプレイ等に比較的小容量のフォントメモリを用いて
多種の高い印字品位の表示を行なうことのできる特徴を
持つ。このようなアウトラインフォントは、例えば次の
ような構成をしている。図2に一般のアウトラインフォ
ント概略図を示す。例えば、「B」という文字をアウト
ラインフォントで表わすとこの図のようになる。即ち、
アウトラインフォント1は、文字を構成する多角形の頂
点2の座標データと、各頂点2の間を結ぶ線分3を表わ
すデータ等から構成される。このようなアウトラインフ
ォントを用いて実際に印字等を行なう場合には、アウト
ラインフォントを受け入れて、既に座標データとして表
わされている頂点2の間を埋める座標データを補間する
処理を行なう。即ち、図2に示す線分3の部分を多数の
座標データで置き換える。そして、その座標データをも
とにドットイメージを展開する。上記のような線分3を
表わす方法として、従来、例えばショートベクトル、放
物線、円弧、ベゼ曲線等によるものがある。
【0003】図3に従来のアウトラインフォント補間例
説明図を示す。図の例は、例えばベゼ曲線を用いたアウ
トラインフォントの補間方法を説明するものである。例
えば元のアウトラインフォントには、頂点P1、P2、
P3、P4及びこれらの間を結ぶ線分が表わされていた
とする。この場合、これらの頂点の間を結ぶ滑らかな曲
線を得るために次のような処理を行なう。即ち、まず例
えば頂点P1とP2の間を結ぶ線分の中点P12を求め
る。また、頂点P2とP3の間を結ぶ線分の中点P23
を求める。そして、P12とP23の間を新たな線分で
結ぶ。さらに、この新たな中点P1223を求める。ま
た、頂点P3とP4の間を結ぶ線分の中点P34を求め
ておき、先に求めた頂点P23とP34の間を結ぶ線分
の中点P2334を求める。そして、ここで例えば頂点
P1と頂点P12と頂点P1223と頂点P2334と
頂点P34と頂点P4を結ぶと、はじめに頂点P1、P
2、P3、P4の間を結んだ場合に比べて、頂点P1か
らP4に至る曲線も滑らかに引ける。このような演算処
理を予め設定された回数だけ繰り返すことによって、ア
ウトラインフォントを構成する頂点の間を滑らかな曲線
で結ぶ。そして、その滑らかな曲線上の多数の座標デー
タを求める。従来は、以上のようにしてアウトラインフ
ォントの補間が行なわれていた。
【0004】図4に一般のアウトラインフォント塗りつ
ぶし装置ブロック図を示す。アウトラインフォントは、
実際には文字の輪郭だけを表わしたデータであって、最
終的にはその輪郭に囲まれた部分の塗りつぶしが行なわ
れる。図において、この装置はアウトラインフォントメ
モリ5と、座標変換部6と、補間部7と、展開部8及び
塗りつぶし部9から構成される。アウトラインフォント
メモリ5には、先に説明した頂点とその間を結ぶ線分の
データから成るアウトラインフォント1が格納されてい
る。座標変換部6は、そのアウトラインフォントを印刷
に要求される大きさまで縮小したり拡大する処理を行な
う部分である。一般に、アウトラインフォントは最大の
印刷可能な文字を基準として生成されており、通常は座
標変換部6において縮小処理のみが行なわれる。補間部
7はこのような座標変換後のアウトラインフォントの座
標データを先に説明した要領で補間し、ドットイメージ
を形成するのに必要な多数の座標データを得る。展開部
8はその座標データをドットイメージに展開する。塗り
つぶし部9は、得られたドットイメージによる文字の輪
郭の内部を一定のアルゴリズムに従って塗りつぶす。以
上のようにして、アウトラインフォントメモリ5に格納
されたアウトラインフォント1が、1−1、1−2、1
−3というように処理されて最終的に印刷される。
【0005】
【発明が解決しようとする課題】ところで、例えば図3
で説明したようなアウトラインフォントの座標データを
補間する演算処理は、それぞれ比較的複雑なものとな
る。先に説明した放物線や円弧等を用いた場合には、さ
らに複雑な演算処理が実行される。しかも印字品位を高
めようとすれば補間すべき座標データの数は増大する。
従って、従来この種のアウトラインフォント補間処理に
は、極めて多くの処理時間を必要とし、表示されるべき
文字が大きい場合、その表示のための時間が長時間にな
り、表示や印刷処理の高速化を妨げていた。本発明は以
上の点に着目してなされたもので、アウトラインフォン
トの座標データを円弧に沿った形式で補間する場合に、
その演算と生成速度の向上を図ったアウトラインフォン
ト補間方法を提供することを目的とするものである。
【0006】
【課題を解決するための手段】本発明の第1発明は、ア
ウトラインフォントの輪郭を直線と円弧の集合とみなし
たとき、各円弧を、その円の中心がX−Y座標の原点に
一致するように座標変換して、当該円弧が前記X−Y座
標上の異なる象限にまたがらないように分割し、さら
に、各円弧をY=XおよびY=−Xの直線をまたがらな
いように分割して、分割後の円弧を予め設定された所定
の象限上にくるよう配置変換してから、その円弧を描く
ための座標データを補間演算し、求められた座標データ
を、前記配置変換と前記座標変換の逆変換処理して、も
との円弧の補間演算済み座標データを得ることを特徴と
するアウトラインフォント補間方法に関する。
【0007】本発明の第2発明は、円弧補間により円弧
を描くための座標データを求める場合において、平方根
演算の際、√Aを求める場合に、既知の定数Cに比べて
nが十分小さいものとし、C2 −(C−n)2 をCとn
の積を含む近似式で表し、(C−n)2 を前記根号の中
の数値Aとして、前記近似式からnを求めて、既知の値
Cよりnを差し引くことにより根号の解√Aを導くこと
を特徴とするアウトラインフォント補間方法に関する。
【0008】本発明の第3発明は、分割後の各円弧につ
いて、そのもとの円の中心座標と、半径と、円弧の起点
座標と、終点座標と、座標変換後で配置変換前のX−Y
座標上で円弧が存在する象限と、その象限をY=Xおよ
びY=−Xの直線で分割した場合の、円弧の存在範囲と
を含む属性情報を用意し、座標変換と配置変換を実行し
て、予め設定された象限の特定の範囲でのみ座標データ
の生成処理を実行することを特徴とする請求項1記載の
アウトラインフォント補間方法に関する。
【0009】
【作用】この方法は、円弧11に沿う座標データの補間
を容易にするために、演算処理の対象を円を8分割した
範囲に限定する。また、その円は予め座標変換によって
原点を中心と一致させ、X座標とY座標の符号の扱いを
容易にするために、例えば、その円弧を第1象限の特定
の範囲に配置変換する。こうすれば演算も容易になり、
さらに、対称変換等の補間方法を採用することにより、
印字品位も向上する。その印字データを逆変換処理すれ
ば、円弧のもとの位置における座標データが求められ
る。また、第2発明の近似計算や第3発明の属性情報の
利用により、演算処理も高速化される。
【0010】
【実施例】以下、本発明を図の実施例を用いて詳細に説
明する。図1は本発明のアウトラインフォント補間方法
実施例を示す説明図である。本発明において、処理対象
となるアウトラインフォントの曲線部分は、全て複数の
円弧に分割され円弧の集合とみなすようにする。また1
回の演算処理を容易にするために、その円弧を表示する
ための円の中心を、X−Y座標の原点に一致させる。さ
らに、その円弧をX−Y座標の異なる象限にまたがらな
いように分割する。図のように、X軸とY軸を互いに垂
直に交わるように表わすと、一般に、図の右下部分は第
1象限、右上部分は第2象限、左上部分は第3象限、左
下部分は第4象限と呼ばれる。この第1象限について
は、X座標もY座標も正、第3象限はX座標もY座標も
負、第2象限と第4象限についてはそれぞれY座標が
負、あるいはX座標が負となる。
【0011】本発明においては、このように座標の符号
が変化した場合の演算の煩雑さを避けるために、円弧1
1の位置をその中心の周りに回転させ、第1象限に移動
させる。また、円弧の両端の座標データを除いて、その
中間部分の座標データは演算処理により求められるが、
後で説明するように、同じ演算処理を実行しても、Y=
XあるいはY=−Xの直線の一方の側にある場合と他方
の側にある場合とでは、得られた座標データの間隔が異
なり印字品位が相違してくる。従って、本発明において
は、円弧をY=XあるいはY=−Xの直線をまたがらな
いように分割し、最も印字品位の高い領域で補間演算を
行なう。これを図1の左下部分に示す。そのような補間
演算によって得られた座標データは、図の座標変換や配
置変換を行なった前の状態に戻すために逆変換処理が行
なわれる。こうして、図の右下に示すようにもとの円弧
の座標データが得られる。
【0012】以下、本発明を上記の各処理手順に従って
順に詳細に説明する。図5に、本発明の円弧座標変換、
配置変換理由説明図を示す。図の(a)は、円弧のX座
標とY座標を求める場合の、円弧の座標上の位置と対応
させた座標値演算式を示す。また(b)は、その円弧の
円の中心や半径の関係を示す説明図である。図の(b)
に示すように、例えば円弧11を構成する円の中心が座
標(a,b)にあるものとする。またこの円の半径はr
とする。この場合、円弧11上の点(X,Y)の座標
は、図の(a)に示した最上段に表わされる。なお、こ
のX及びYの座標は、それぞれ円の中心座標に対し、そ
れぞれrXあるいはrYを加算した値となっている。ま
た、このrX、rYは、(b)に示す式のようにして、
それぞれピタゴラスの関係によりrとYとbあるいはr
とXとaの値から長さが求められる。
【0013】ここで、図の右下部にある円弧11につい
ては、(a)に示すようにXとYはそれぞれ中心座標に
rXとrYを加算した値となるが、例えば、円弧11が
右上部にある場合は、Y座標を求める場合にrYの値に
ついてその符号が反対になる。また、左上部を求める場
合にはX座標のrXとY座標のrYとがともに符号が反
対になる。また、左下部についてはX座標の値はrXに
ついてその符号が反対になる。この円をその中心が原点
に重なるように移動させた場合、上記右下部は第1象
限、右上部は第2象限、左上部は第3象限、左下部は第
4象限に位置する。そして、このように円弧の象限が変
わるたびに演算の際の符号が変化するから、無条件に円
弧の補間演算を行なおうとすれば、常にその円弧がどの
象限に存在するかを判別しながら演算処理を実行するこ
とになる。これでは演算処理の時間が増大してしまう。
そこで本発明においては、補間演算の対象となる円弧
を、常に例えば第1象限にあるものとして演算処理を行
い処理時間の短縮化を図っている。
【0014】図6に本発明による分割理由説明図を示
す。本発明の方法においては、円弧を特定の象限に配置
するだけでなく、Y=XあるいはY=−Xの直線をまた
がらないように分割している。その理由は図に示す通り
である。即ち、図の(a)に示すように、円弧上の各点
の座標データについて、Y座標の値をY=√(r2 −X
2 )の式により求める。この場合、X座標を1ずつ増加
させながらY座標を演算し、各点の座標データを得る。
ここで図を見て明らかなように、座標データはY=−X
の直線を境に、左側部分はその間隔が密になっており、
右側部分は間隔が荒くなっている。従って、左側部分は
印字品位が高く、右側部分は印字品位が低下する。
【0015】一方、図の(b)に示すように、Y=−X
の直線の右側部分については、例えばX=√(r2 −Y
2 )を求めて座標データを求めている。このような対称
変換をすれば、ちょうど(a)に示した場合と反対に、
Y=−Xの直線より右側の部分が高い印字品位となる。
従って、もし全ての部分において高い印字品位のデータ
を得ようとした場合、(a)に示す左下部分の結果と
(b)に示す右上部分の結果とを合成することが好まし
い。(c)はその合成したことにより得られた座標デー
タを示す。このような性質から、円弧の座標データを補
間する場合、例えば図の例ではY=−Xの左側部分の円
弧についてのみ演算処理を実行し、右側の範囲について
は、そのXとYの値を入れ替えた座標データとする。即
ち、円弧はY=−Xの直線を境に線対称となるから、こ
れによって演算処理を容易にし、さらに印字品位を高め
ることができる。以上のような理由によって、本発明の
方法では各円弧をY=X及びY=−Xをまたがらないよ
うに分割する。
【0016】次に、適当な円弧を例にとって本発明の座
標変換と配置変換処理等について、その例を説明する。
図7は本発明の座標変換と配置変換例説明図である。図
の上部に描いた円弧11は、その円の中心座標が(2
2、26)で、半径r=16の円の一部を構成してい
る。また円弧の両端の座標は(12、14)及び(2
2、10)である。このような円弧11をその円の中心
が原点に一致するように座標変換し、さらに円弧を第1
象限に移動させると、図の下側に示すような状態にな
る。即ち、この場合の円弧の中心は原点Oであり、半径
rは16で変わりなく、円弧の両端の座標は(0、1
6)と(10、12)となる。実際にコンピュータを用
いた演算処理では、この変換処理の際には例えば次のよ
うな手順が実行される。
【0017】図8に本発明における座標変換と配置変換
処理フローチャートを示す。図のフローチャートで、ま
ずステップS4−1では、はじめの円弧の一方の端のX
座標X1から円の中心のX座標aを差し引いた値をレジ
スタRmHに格納する。なお、円弧の一方の端の座標は
先に図7に説明した通りX1が12、Y1が14であ
る。また、円の中心座標はaが22、bが26である。
従って、レジスタRmHには12から22を差し引いた
−10という数値が格納される。次にステップS4−2
において、X1とaの大小が比較される。この例ではX
1が12、aは22であるから、ステップS4−3へ移
る。ステップS4−3ではX2がaと比較される。X2
は円弧のもう一方のX座標で22である。また、そのY
座標Y1は10である。従ってX2はaと等しいため、
ステップS4−4へ移る。
【0018】ステップS4−4は、レジスタRmHの中
に格納された数値を符号変換する処理である。即ち、レ
ジスタRmHに格納された−10が+10に変換され
る。そして、ステップS4−5において、Y1から中心
座標のY座標bが差し引かれる。即ち、14から26を
引いた演算の結果として−12の値がレジスタRmLに
格納される。ステップS4−6においては、Y1の値が
bと比較される。ここではY1は14、bは26である
から、Y1の方がbより小さいのでステップS4−7に
移る。ステップS4−7ではY2とbとが比較される。
Y2は10、bは26であるからY2の方が小さくステ
ップS4−8へ移る。ステップS4−8ではレジスタR
mLの内容について符号変換が行なわれる。即ち、レジ
スタRmLには−12が格納されていたため、その値が
+12に変換される。
【0019】図のステップS4−1からステップS4−
8に至る処理が実行されると、対象となる円弧は第3象
限に存在することになる。また、ステップS4−1、ス
テップS4−2、ステップS4−12、ステップS4−
13を経てステップS4−15に至る処理が行なわれた
場合には、円弧が第1象限に存在することが分かる。ま
た、ステップS4−13からステップS4−14に移
り、ステップS4−18の処理が行なわれた場合には、
円弧は第2象限に存在する。さらに、ステップS4−6
からステップS4−22に移る処理が行なわれた場合に
は、円弧は第4象限にあることが分かる。
【0020】即ち、上記処理は何れも円弧がどの象限に
存在するかを判定するための流れであって、それぞれ、
その判定結果に従って象限がセットされる(ステップS
4−15、ステップS4−19、ステップS4−22、
ステップS4−9)。このように象限を識別しセットし
ておき、逆変換の際にそのデータが利用される。ステッ
プS4−9の処理の後、ステップS4−10においてa
からX2を差し引き、次にステップS4−11におい
て、bからY2を差し引くことによって、円の中心
(a,b)を座標の原点(0,0)に移動させる。そし
て、さらに円弧を第1象限へ配置変換する。このように
すれば、X座標に対応するY座標は全て図6(a)に示
したような簡単な、単純な演算式により求めることがで
きる。
【0021】次に、円弧の両端の座標に挟まれた中間部
分について、その座標データを補間する補間部の構成を
説明する。図9は本発明の方法実施のための補間部ブロ
ック図である。図に示すように、補間部はバスライン2
1に接続された論理手段22、記憶手段23、乗算及び
加算手段24、除算及び減算手段25、及び比較手段2
6により構成される。論理手段22は演算処理を行なう
ためのマイクロプロセッサ等から構成される。記憶手段
23は演算処理の際のパラメータ等を格納するためのメ
モリから成る。乗算及び加算手段24は、座標を求める
場合の演算処理を行なうための例えば演算テーブル等か
ら構成される。また、除算及び減算手段25も同様の演
算テーブル等から構成される。比較手段26はデータの
大小を比較するための部分である。実際の処理において
は、これらの各手段は何れも演算処理プログラムの一部
により構成されることになる。
【0022】図10に本発明による補間演算処理フロー
チャートを示す。まず、演算処理に当たり、前処理とし
てステップS5−0において、演算開始点におけるX座
標X2をPにセットし、演算終了点におけるX座標X1
をQにセットする。即ち、図7に示した例によれば、P
の値は0、Qの値は10となり、X=1から10までの
値を図6(a)に示したY=√(r2 −X2 )の式に代
入してYの値を求めることになる。なお、このステップ
S5−0においては、さらにX2の2乗をレジスタAに
格納する。次に、図10のステップS5−1において、
rの2乗、即ち半径の2乗からAを差し引きレジスタB
に格納する。ここでは、rは16、Aの値ははじめ0で
あるから、レジスタBには256が格納される。ステッ
プS5−2においては、1回目の処理かどうかが判断さ
れ、1回目の処理の場合にはステップS5−3からS5
−5までの処理が実行され、2回目以降はステップS5
−6にジャンプする。
【0023】ステップS5−3においては、その右上に
示したような関係式から、Xの2乗であるレジスタAの
値を2rで割る。その結果をレジスタCに入れる。この
例では、はじめレジスタCに0が格納される。ステップ
S5−4では、r−C即ち16から0を引いた16の値
をレジスタDに格納する。さらに、ステップS5−5で
はDの2乗即ち16の2乗である256をレジスタEに
格納する。1回目でこのような準備をし、レジスタC、
D、Eの値を決定した後にステップS5−6に移る。ス
テップS5−6では、レジスタEの値からレジスタBの
値を差し引き、その結果とレジスタDの2倍の値と比較
する。この例では、レジスタEとレジスタBの値は何れ
も256であって、その差は0である。従って、この値
はDを2倍した32よりも小さいためステップS5−9
へ移る。なお、このステップS5−6では、S5−4で
求めたレジスタDの値をレジスタEとレジスタBの値の
差を求めて比較することにより検証するようにしてい
る。
【0024】ステップS5−9においては、レジスタD
の値即ち先ほどの例では16をレジスタFに格納する。
そして、ステップS5−10では、レジスタEの値から
レジスタBの値を差し引いて、これをレジスタDの値と
比較する。先程の例ではレジスタEとレジスタBの値の
差は0であり、レジスタDの値16よりも小さいからス
テップS5−12に移る。ステップS5−12では、レ
ジスタPの値とレジスタFの値を最初の座標点として記
憶手段の中に書き込む。レジスタPは、はじめ0であ
り、Fは16であるから、最初の座標データは(0、1
6)となる。
【0025】次に、ステップS5−13において、レジ
スタPの値とレジスタQの値を比較する。レジスタPは
開始点の座標であり、レジスタQは終了点の座標であ
る。レジスタPの値はループをたどるごとに加算されて
いく。従って、レジスタPとレジスタQの値が等しくな
れば処理が終了する。レジスタPがレジスタQの値より
も小さい場合にはステップS5−14に移り、Aの値を
更新する。ここで、はじめのAは0、Pは0であるから
レジスタAには1が格納される。そしてステップS5−
15において、レジスタPには次のXの値を格納する。
即ち、レジスタPに1だけ加算された値がレジスタPに
再格納される。その後ステップS5−1へ戻り、先に説
明したと同様の演算処理が進められる。
【0026】図11に補間演算中のレジスタ状態遷移説
明図を示す。図10に示したフローチャートに従ってX
の値を0から10まで変化させていくと、それぞれのレ
ジスタA、D、E、F、Pの内容は、順にこの表のよう
に値を変化させていく。Xが0から3までの処理につい
ては先に説明した手順と全く同様である。ここで、X=
4の場合の処理を次に説明する。この場合、図11の表
から処理開始前のレジスタAの値は16、レジスタDの
値も16、レジスタEの値は256、レジスタFの値は
16、レジスタPの値は4となる。ここで図10のステ
ップS5−1において、rの2乗からレジスタAの値を
差し引きレジスタBに格納する。この場合16の2乗か
ら16を差し引き240がレジスタBに格納される。次
に、ステップS5−2において、この処理は1回目以降
の処理であるからステップS5−6にジャンプする。そ
してレジスタEの値からレジスタBの値を差し引く。そ
の値は256から240を差し引いた16となる。また
Dを2倍すると16の2倍即ち32となる。従って両者
を比較すると、Dの2倍の方が大きいためステップS5
−9に移る。
【0027】ステップS5−9においてはレジスタDの
値16をレジスタFに格納する。そしてステップS5−
10において、レジスタEの値からレジスタBの値を差
し引きレジスタDの値と比較する。この場合、レジスタ
EとレジスタBの値の差は16、レジスタDの値は16
であるから、ステップS5−11に移る。ステップS5
−11においてはレジスタFの値16から1を差し引
く。この処理を行うのはレジスタBの値が240であっ
て、16の2乗の値256よりも15の2乗の値225
により近いためである。ステップS5−12において、
この結果得られたレジスタPとレジスタFの値即ち新た
な座標データ(4、15)を記憶手段に書き込む。そし
てステップS5−14及びステップS5−15におい
て、先に説明したと同様にレジスタAとPの値をセット
しステップS5−1に戻る。
【0028】次に、レジスタEの内容が変化するX=6
の場合の処理を説明する。図11に示した表から、処理
開始直前では、レジスタAが36、レジスタDが16、
レジスタEが256、レジスタFが15、レジスタPが
6の状態からステップS5−1を実行する。この時rの
2乗からレジスタAの値を差し引くと16の2乗引く3
6となり、その結果は220となる。これをレジスタB
に格納する。そして、ステップS5−6において、レジ
スタEの値からレジスタBの値を差し引く。その結果は
256から220を差し引いた36となる。これをレジ
スタDの値の2倍即ち16の2倍の32と比較する。こ
の時、36は32より大きいからステップS5−7へ処
理が移る。ステップS5−7においては、レジスタEの
値から(2D−1)の値を差し引く。即ち、256から
(2×16−1)を引く結果、225となる。即ち、
(E−1)2 =(16−1)2 となる。従ってEは16
となり、その値をレジスタEに格納する。次にステップ
S5−8において、レジスタDから1を差し引く。この
場合、レジスタDの値は16であるからレジスタDの値
は15に変化する。
【0029】ここで、ステップS5−6に戻る。この
時、レジスタBには225の値が格納されている。16
の2乗は256であって、2Dは2×16即ち32であ
るから、再びステップS5−7、S5−8が実行され
る。ステップS5−6において、レジスタEが15にな
ったときからレジスタBの値220を差し引き5を得
て、2D、即ち15の2倍である30と比較する。その
結果ステップS5−9へ移る。以下は同様の処理が繰り
返され、図11に示したような内容で各レジスタの値が
変化する。その結果図11に示したFとPの値がそれぞ
れ円弧を形成するための座標データとして求められる。
【0030】図12にこの円弧の座標データを実際にド
ットで表わした図を示した。即ち、図12は本発明によ
る補間後の座標データ説明図である。このように、図7
において選定した円弧は、本発明の演算処理によって高
品質の座標データに補間される。これはその後、先に説
明した対称変換と座標変換と配置変換の逆方向の変換に
よって元へ戻し、実際の塗りつぶし処理等に使用され
る。なお先のフローチャートにおいては、次のような近
似計算が採用されている。
【0031】図13に補間演算近似計算説明図を示す。
上記の演算処理には繰り返し平方根の演算が実行され
る。この演算をそのまま実行すると、演算時間が長時間
となる。そこで、本発明の第2発明では次のような近似
計算を行う。例えば、Cn =20が既知である場合に、
n 2=400は乗算で得られる。ここで361という数
値が与えられて、その平方根√361を求める演算処理
が要求されたものとする。本発明のアルゴリズムによれ
ば、√361の解がCn =20よりn少ない数(Cn
n)としてnを求める。これには以下の近似式からnを
求める。 Cn 2−(Cn −n)2 =2Cn ×n なお、これは(2Cn −1)×nの近似式としてもよ
い。400−361=40nだから、39=40nとな
る。故にn=0.975である。このnの端数を四捨五
入してn=1となる。こうして、√361=(20−
1)=19が求まる。即ち、361の平方根を簡単な乗
除算と加減算により求めることができる。
【0032】次にもう一つの例として230が与えられ
て、その平方根√230を求める場合を説明する。この
とき、400−230=40nだから、170=40n
となる。故にn=4.25である。nの端数を四捨五入
してn=4となる。こうして、√230の答えを(20
−4)=16によって求める。ところが√230=1
5.166であるから正しくは15とならなければなら
ない。そのため、図10のフローチャートのステップS
5−10で、162 と230を比較して、その差256
−230≧16であればステップS5−11に進み16
−1=15と補正している。本発明の目的は、ドットマ
トリクス上に乗る点の座標を求めることであるから、本
発明のアルゴリズムでは詳細な小数点以下の平方根を求
める必要はない。
【0033】例えば具体例として、中心点(0、0)、
半径r=20の円のX=5のときのY=√(r2 −X
2 )を求める。近似式はC2 −(C−n)2 =2C×n
だから、C2 =r2 とする。即ちrは既知の数Cであ
る。(C−n)2 =r2 −X2 であって、(r2 −X
2 )をCよりn小さい数の二乗数と考えて代入すると、 r2 −(r2 −X2 )=2C×n X2 =2C×n 52 =2×20×n n=25/40=0.625 これを四捨五入してn=1となり、答え20−1=19
が得られる。このような処理によって、座標データの演
算はさらに高速化される。
【0034】次に、上記のような円弧の座標変換や配置
変換及び逆変換をより容易に実行できるデータ構成を説
明する。図14に円弧の存在範囲説明図を示す。この図
は、円弧を構成する円の中心をX−Y座標の中心である
原点に一致させるようにした場合の、円弧の存在する範
囲を示している。即ち、先に説明したように円弧は、そ
れぞれ異なる象限にまたがらないように分割するととも
にさらにY=X及びY=−Xの直線にまたがらないよう
に分割する。この場合図に示すように、各円弧は、それ
ぞれ各象限の範囲1あるいは範囲2に存在することにな
る。これらの範囲にからまでの符号をつける。その
場合、円弧の存在範囲をデータで示すとすれば次のよう
になる。
【0035】図15に属性情報内容説明図を示す。図に
示すように、図14で示した各存在範囲からに円弧
が存在する場合、象限は1から4までで示し、範囲を1
あるいは2で示すと、両者の組み合せで円弧の存在範囲
を特定する属性情報が形成される。図16にXY座標の
符号説明図を示す。図に示すように、座標変換を行なう
と、もともと第1象限にある円弧はXY座標の符号は変
わらない。しかしながら、第2象限、第3象限、第4象
限にある円弧はそれぞれYあるいはX座標の符号が反転
する。これも属性情報に加えられる。
【0036】図17に具体的に上記属性情報を付加され
る補間対象の円弧を示した。この図に示すように、例え
ば円弧が座標(5、15)から(7、10)までの範囲
にあるとする。この円の半径rは10、その中心は(1
5、16)である。このような円弧を先に説明した要領
で座標変換し配置変換する前に次のような属性情報を作
成する。図18に属性情報概略図を示す。この属性情報
は、まず中心の座標a、b及び半径rと、第1象限に座
標変換した後のX座標、即ち開始点X1と終了点X2が
含まれている。また、この他に、はじめの円弧が第3象
限の範囲2に存在したという情報を含める。
【0037】図19にこのような属性情報全体の具体例
説明図を示す。この属性情報のうちの、はじめの円弧位
置を示す情報Aは、図のように例えば8ビットの情報か
ら構成される。そして、はじめの2ビット(b7、b
6)で円弧の存在していた象限が表わされる。例えば、
第1象限の場合は00、第2象限の場合は01、第3象
限の場合は10、第4象限の場合は11として表わされ
る。また、円弧の存在する範囲は1ビットb5で表さ
れ、範囲が1の場合0、範囲2の場合1という形式で表
わされる。従って、合計3ビットの情報により元の円弧
の位置即ち元の円弧の範囲が特定される。また、円弧の
補間のために座標データを得る場合必要な情報は、開始
点と終了点のX座標あるいはY座標の何れか一方でよ
い。従って、ここでは何れか一方のみを属性情報に含め
ることによって、データ量の削減を行なっている。ま
た、この開始点、終了点は座標変換後のデータであり、
もともとのアウトラインフォントに対しこのようなデー
タを追加しておけば座標変換処理は不要となる。従っ
て、この開始点と終了点のデータを元に補間処理を行
い、属性データを用いて逆変換処理を行なえば、速やか
に新たな座標データが得られる。
【0038】次に、補間演算の高速化を図るための処理
を説明する。図20に座標変換と配置変換説明図を示
す。図17に示した円弧を、その中心がXY座標の原点
に重なるように座標変換すると、図20(a)に示すよ
うになる。この円弧は開始点が(−10、−1)、終了
点が(−8、−6)である。これを原点を対称の中心に
して180゜移動させると、その開始点が(10、
1)、終了点が(8、6)となる。このような変換は、
XとYの値を符号変換しながら交換するだけで簡単に実
行できる。さらに、この円弧を第1象限の範囲1に移す
ために、XとYの値を交換する。即ち図20の(b)に
示すように、演算対象となる円弧の開始点は変換後に
(1、10)となり、終了点は(6、8)となる。図1
8に示した属性情報は、この2つのX座標である1と6
の値が開始点及び終了点として格納されている。
【0039】図21に補間方法の説明図を示す。この実
施例では、図21(a)に示すような円弧の座標データ
を得るようにすることがその目的である。このために、
図21(b)に示すような演算処理を実行する。そし
て、その後XとYの座標を入れ替えることによって、図
(a)に示すような範囲2の部分の座標データを求める
ことができる。従って、演算処理はXが0から14まで
について実行すればよい。
【0040】図22に補間演算テーブル説明図を示す。
図のテーブルには、Xが0から14までのYの値を求め
た結果を表わした。このような演算テーブルを用いれ
ば、半径が20の場合の円弧の座標データは極めて高速
で求められる。その後は先に説明した属性情報を使用し
て逆変換処理をすればよい。例えば、円弧の最大半径を
100とした場合に、範囲1に含まれるX座標は(10
0/√2)+1となる。このようなテーブルは半径1か
ら100まで、即ち100必要であるが、全体として極
めて小量のデータであってほとんど問題とならない。従
って、このようなデータを用意することにより、補間処
理の演算を高速化することは実用性が高い。
【0041】図23には、上記の補間テーブルをさらに
簡略化した補間演算テーブル圧縮法説明図を示す。図に
示すように、(a)に示すような座標データを得る場
合、例えば異なるXの値に対して同一の値のYが連続す
ることがある。図の例の場合では、Xが1から4までは
Yは全て20となる。また、Xが6から7まではYは全
て19となる。従って、Yが重複する範囲については演
算テーブルを省略することが可能である。その結果を図
23(b)に示す。即ち、この演算テーブルを用いた場
合には、Xが0から4までは1番上の演算結果、即ちX
=4の場合の演算結果を使用し、Xが5から7まではX
が7の場合の演算結果を使用する。このような演算ルー
ルをプログラム上に設定しておけば、演算テーブルは図
22に示したものよりもさらに圧縮され、予め用意して
おくデータ量が縮小される。この場合には円弧の最大半
径を100とした場合に、次のような式によって演算テ
ーブルを格納するための記憶容量が計算される。 100×{100×(1−1/√2)+1}/2=15
14
【0042】図24に逆変換方法フローチャートを示
す。上記のような座標データを求めた後、先に説明した
ような属性情報を用いて、範囲が1か範囲が2であるか
を判断する(ステップS6−1、S6−2)。例えば座
標データが(1、10)の場合には、範囲が2であるか
ら、座標データのXYの入れ替えを行なう(ステップS
6−3)。そして、次にステップS6−4において象限
の判別を行なう。ここで属性データを見て、第1象限の
場合はステップS6−7へ、第2象限の場合はステップ
S6−10へ、第3象限の場合ステップS6−5へ、第
4象限の場合ステップS6−9へ進むものとする。
【0043】この例では第3象限であるからステップS
6−5へ移りXの符号を反転させる。これにより、座標
は(−10、1)になる。またステップS6−6におい
て、Yの符号を反転させる。従って、そのデータは(−
10、−1)となる。その後ステップS6−7に移り、
X座標に元の中心の座標aを加算する。即ち、10に1
5を加算して5という値が得られる。また、ステップS
6−8においてYに元の円の中心の座標bを加算する。
即ち、−1に16を加算して15が得られる。その結
果、円弧の開始点の座標データが逆変換され、(5、1
5)という値が得られる。これは図17に示した元の円
弧の開始点と一致する。以上のような処理によれば、ア
ウトラインフォントの頂点を円弧で結ぶ場合に、その座
標データを高速で高品位に補間できる。
【0044】本発明は以上の実施例に限定されない。上
記の演算処理の手順やその処理を実行するためのハード
ウエアあるいは属性情報の構成、変換テーブルの構成等
は、必要に応じて同様の機能のものに自由に変更して差
し支えない。
【0045】
【発明の効果】以上説明した本発明の方法によれば、円
弧を象限をまたがらないように分割して演算処理をした
ので、演算中にXやYの座標の値に符号の反転がなく演
算処理が容易になる。しかも、Y=X及びY=−Xの線
にまたがらないように処理を実行するので、最も高品位
の座標データが得られる演算処理のみを実行できる。し
かも、その処理結果を利用してY=XあるいはY=−X
の線と対称な円弧について直ちにその座標データを求め
ることができ、演算処理を簡略化できる。また、円弧の
補間演算において平方根のアルゴリズムを2乗数の差で
求めるようにしたので、この場合にも補間演算の高速化
が図れる。また、アウトラインフォントのデータ中に元
の円の中心座標と半径と円弧の起点座標や終点座標、円
弧の存在する象限や範囲を示す属性情報を設ければ、先
に説明したような座標変換や配置変換後の演算処理を実
行した後、直ちに元の座標データを求めることができ
る。また演算処理を一定の象限の一定の範囲で行なうこ
とにすれば、予めその演算処理のためのテーブルを用意
し、演算の高速化を図ることもできる。
【図面の簡単な説明】
【図1】本発明のアウトラインフォント補間方法説明図
である。
【図2】一般のアウトラインフォント概略図である。
【図3】従来のアウトラインフォント補間例説明図であ
る。
【図4】一般のアウトラインフォント塗りつぶし装置ブ
ロック図である。
【図5】本発明の円弧座標変換配置変換理由説明図であ
る。
【図6】本発明による分割理由説明図である。
【図7】本発明の座標変換と位置変換例説明図である。
【図8】本発明における座標変換と配置変換処理フロー
チャートである。
【図9】本発明の方法実施のための補間部ブロック図で
ある。
【図10】本発明による補間演算処理フローチャートで
ある。
【図11】補間演算中のレジスタ状態遷移説明図であ
る。
【図12】本発明による補間後の座標データ説明図であ
る。
【図13】補間演算近似計算説明図である。
【図14】円弧の存在範囲説明図である。
【図15】属性情報内容説明図である。
【図16】XY符号説明図である。
【図17】補間対象の円弧説明図である
【図18】属性情報概略図である。
【図19】属性情報の具体例説明図である。
【図20】座標変換と配置変換説明図である。
【図21】補間方法説明図である。
【図22】補間演算テーブル説明図である。
【図23】補間演算テーブル圧縮法説明図である。
【図24】逆変換方法フローチャートである。
【符号の説明】
11、11−1 円弧 X X座標 Y Y座標

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 アウトラインフォントの輪郭を直線と円
    弧の集合とみなしたとき、 各円弧を、その円の中心がX−Y座標の原点に一致する
    ように座標変換して、 当該円弧が前記X−Y座標上の異なる象限にまたがらな
    いように分割し、 さらに、各円弧をY=XおよびY=−Xの直線をまたが
    らないように分割して、 分割後の円弧を予め設定された所定の象限上にくるよう
    配置変換してから、その円弧を描くための座標データを
    補間演算し、 求められた座標データを、前記配置変換と前記座標変換
    の逆変換処理して、もとの円弧の補間演算済み座標デー
    タを得ることを特徴とするアウトラインフォント補間方
    法。
  2. 【請求項2】 円弧補間により円弧を描くための座標デ
    ータを求める場合において、 平方根演算の際、√Aを求める場合に、 既知の定数Cに比べてnが十分小さいものとし、 C2 −(C−n)2 をCとnの積を含む近似式で表し、 (C−n)2 を前記根号の中の数値Aとして、前記近似
    式からnを求めて、既知の値Cよりnを差し引くことに
    より根号の解√Aを導くことを特徴とする請求項1記載
    のアウトラインフォント補間方法。
  3. 【請求項3】 分割後の各円弧について、そのもとの円
    の中心座標と、半径と、円弧の起点座標と、終点座標
    と、座標変換後で配置変換前のX−Y座標上で円弧が存
    在する象限と、その象限をY=XおよびY=−Xの直線
    で分割した場合の、円弧の存在範囲とを含む属性情報を
    用意し、 座標変換と配置変換を実行して、予め設定された象限の
    特定の範囲でのみ座標データの生成処理を実行すること
    を特徴とする請求項1記載のアウトラインフォント補間
    方法。
JP4205989A 1992-07-09 1992-07-09 アウトラインフォント補間方法 Pending JPH0627928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4205989A JPH0627928A (ja) 1992-07-09 1992-07-09 アウトラインフォント補間方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4205989A JPH0627928A (ja) 1992-07-09 1992-07-09 アウトラインフォント補間方法

Publications (1)

Publication Number Publication Date
JPH0627928A true JPH0627928A (ja) 1994-02-04

Family

ID=16516063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4205989A Pending JPH0627928A (ja) 1992-07-09 1992-07-09 アウトラインフォント補間方法

Country Status (1)

Country Link
JP (1) JPH0627928A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116339B2 (en) 2001-10-11 2006-10-03 Sony Computer Entertainment Inc. Image rendering method using recursive interpolation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116339B2 (en) 2001-10-11 2006-10-03 Sony Computer Entertainment Inc. Image rendering method using recursive interpolation

Similar Documents

Publication Publication Date Title
KR950012083B1 (ko) 문자/도형 발생 장치 및 정보 처리장치
JP3138390B2 (ja) 図形描画装置
US6753862B1 (en) Outline smoothing method and system
KR100368198B1 (ko) 마이크로컴퓨터
JPH0916146A (ja) 文字・記号パターン発生装置
JP2634851B2 (ja) 画像処理装置
JPH0627928A (ja) アウトラインフォント補間方法
JP2782904B2 (ja) 多角形塗りつぶし方式
JP2806679B2 (ja) 文字発生装置
JP2698170B2 (ja) 閉領域塗りつぶし表示方法
US5377316A (en) Line image generating apparatus
KR940001106B1 (ko) 선폭보정방법 및 그 장치
JPH01191192A (ja) 高品質文字発生装置
JPS63282887A (ja) ベクトル文字・図形の処理方式
JP2806790B2 (ja) 文字発生装置およびその方法
JP2700124B2 (ja) 図形表示方法及びその実施装置
JP3160957B2 (ja) 文書作成装置
JP3072756B2 (ja) 描画装置
JPS63303477A (ja) ベクトル文字もしくはベクトル図形の処理方法
JPH0683972A (ja) 曲線発生装置
JP2804028B2 (ja) レンダリングプロセツサ
JP3055306B2 (ja) データ出力装置
JPH1186008A (ja) 描画処理方法および描画処理装置
JPH06110442A (ja) 文字図形処理装置、及び文字または図形の変形処理方法
JPH05119759A (ja) 文字・図形発生方法及びその装置