JPH04152390A - 曲線近似方法 - Google Patents

曲線近似方法

Info

Publication number
JPH04152390A
JPH04152390A JP2278099A JP27809990A JPH04152390A JP H04152390 A JPH04152390 A JP H04152390A JP 2278099 A JP2278099 A JP 2278099A JP 27809990 A JP27809990 A JP 27809990A JP H04152390 A JPH04152390 A JP H04152390A
Authority
JP
Japan
Prior art keywords
curve
divisions
points
data
value
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.)
Granted
Application number
JP2278099A
Other languages
English (en)
Other versions
JP2522107B2 (ja
Inventor
Shingo Takahashi
高橋 真悟
Yoshikazu Imanishi
今西 愛策
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.)
Seikosha KK
Original Assignee
Seikosha KK
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 Seikosha KK filed Critical Seikosha KK
Priority to JP2278099A priority Critical patent/JP2522107B2/ja
Priority to DE4134234A priority patent/DE4134234C2/de
Publication of JPH04152390A publication Critical patent/JPH04152390A/ja
Priority to US08/104,259 priority patent/US5430834A/en
Application granted granted Critical
Publication of JP2522107B2 publication Critical patent/JP2522107B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はアウトラインフォントにおける曲線の近似方法
に関する。
[従来の技術] 文字や図形等の曲線を表す手段として、アウトラインフ
ォントを用いたものが近年急速に普及しつつある。
従来、アウトラインフォントにより実際に曲線を表示す
る場合には、隣接した分割点が同一点に縮退するまで曲
線を順次分割し、各分割点を直線で順次結んで曲線を近
似的に表している。
[解決しようとする課題] 例えば表示しようとする曲線の曲率が小さい場合には、
分割数をさほど多くしなくても十分な表示品質を得るこ
とができる。
しかしながら、上記従来の方法では曲率に係わりなく分
割を行うため、必要以上に多くの分割を行う場合がある
。そのため、アウトラインフォントの生成に多大な時間
を要するという問題点があった。
本発明の目的は、表示しようとする曲線に応じて最適な
分割数が得られるようにし、アウトラインフォントの生
成に要する時間を短縮することである。
[課題を解決するための手段〕 本発明の第1の方法は、二つのアンカーポイントと少な
くとも一つのコントロールポイントとを用いて表された
曲線を複数の部分に分割し、隣り合った分割点を直線で
結ぶことにより上記曲線を近似的に表す方法において、
一のアンカーポイント、コントロールポイントおよび他
のアンカーポイントを順次直線で結んだ線分の長さに応
じた値と、アンカーポイント同志を直線で結んだ線分の
長さに応じた値との差を求め、この差に応じた値に基い
て上記曲線の分割数を求め、上記曲線を近似的に表すも
のである。
本発明の第2の方法は、二つのアンカーポイントと少な
くとも一つのコントロールポイントとを用いて表された
曲線を複数の部分に分割し、隣り合った分割点を直線で
結ぶことにより上記曲線を近似的に表す方法において、
一のアンカーポイント、コントロールポイントおよび他
のアンカーポイントを結ぶ直線で囲まれた部分の面積に
基いて上記曲線の分割数を求め、上記曲線を近似的に表
すものである。
C実施例コ 以下、添付図面を参照して本発明の詳細な説明をする。
以下に示す実施例では、特に断らない限り、アウトライ
ンフォントを表現する曲線には3次ベジェ曲線や3次ス
プライン曲線等の3次曲線を用いるものとする。これら
の曲線をパラメトリック表現すると以下のようになる。
Q = W A x P A +W B x P B+
WCxPC+WDxPD−= (1)ここで、WASW
BSWCおよびWDはパラメータ“t″を用いて表され
る関数であり、例えば3次ベジェ曲線の場合には以下の
ようになる。
WA −(1−t) 3   − (2a)WB−3t
 ・ (1−t)2・・・(2b)WC−3t    
(1−t)・・・(2C)WD−t3        
・・・(2d)(0≦t≦1) PASPB、PCおよびPDは曲線の形状を決定するX
−Y平面上の座標であり、それぞれ以下の通りである。
PA (x、y):アンカーポイント 同志 (X、’l):コントロールポイントPC(X、
”l):コントロールポイントPD (x、y):アン
カーポイント ここで(1)式について考えると、パラメータ関数WA
、WB、WCおよびWDは例えば(2a)〜(2d)式
で示されるように3次曲線の種類によって一義的に決ま
るものであり、PA、PB。
PCおよびPDは曲線の形状に応じて予め決められてい
るものである。従って、パラメータ関数WA、WB、W
CおよびWDについては、第5図に示すようにパラメー
タ“t2を細分化し、各tの値に対応して予めWA、W
BSWCおよびWDの値を計算して、その計算結果をデ
ータテーブルに記憶しておくことができる。PASPB
、PCおよびPDについても、予めその座標(x、y)
をデータテーブルに記憶しておくことができる。このよ
うにしてデータテーブルに各データを記憶しておき、マ
ルチプライアおよびアダーを用いて(1)式に基いたハ
ードウェア計算をすれば、高速に曲線データを生成する
ことができる。すなわち、第5図に示すようにt (0
≦t≦1)を256分割して、各を毎に予めパラメータ
関数WA。
WB、WCおよびWDを求めておき、(1)式に基いた
ハードウェア計算をすれば、合計257点の曲線上の座
標を求めることかできる。そしてこれらの座標を順次直
線で結へば曲線を近似表現することができる。
ところで、上記の例でいえば曲線を256分割して近似
表現することになるが、例えば曲率の小さな曲線では、
それほど分割数を多くしなくても十分精度のよい近似曲
線を表すことができる。このことを第3図、第4図(A
)および第4図(B)を用いて以下に説明する。第3図
に示した曲線は、合計14の小曲線01〜C14で構成
されている。
すなわち、各小曲線C1〜C14は、それぞれ異なった
アンカーポイントおよびコントロールポイントを用いて
、それぞれ(1)式で表されることになる。第4図(A
)および第4図(B)は、第3図に示した小曲線C1お
よびC2をそれぞれ示したものである。小曲線C1は第
4図(A)に示すように16分割され、小曲線C1上の
17点QO50〜Q0.18で近似表現される。従って
第5図の例でいえば、n−0,16,32、・・・・・
・・・・ 256というように、nを16ステツプ(2
56/16−16)ずつ増加させて、これらのnに対し
てたけ計算を行えばよい。小曲線C2は第4図(B)に
示すように32分割され、小曲線C2上の33点QO1
0〜Q O,32で近似表現される。従って5図の例で
は、n=0.8.16、・・・・・・・・・ 256と
いうように、nを8ステツプ(256/32−8)ずつ
増加させて、これらのnに対してだけ計算を行えばよい
。このように、曲線に応じて適当な分割数を予め求めて
おき、その分の計算だけを行えば、ハードウェア計算を
より高速化することが可能である。なお、分割数を求め
る具体的な方法に関しては後述する。
以上述べたことを参考にして、第3図に示した曲線の近
似方法について以下説明する。
第1図は、第3図に示した曲線を近似表現するときに用
いるハードウェアを示したブロック図である。
CPU0はマイクロプロセッサであり、ハードウェア全
体の制御を行うものである。
ROM0はリードオンリメモリであり、マイクロプロセ
ッサCPU0が行う各種処理のプログラムを5己憶して
おくものである。
RA M Oはランダムアクセスメモリであり、後述の
各データを予め記憶しておくものである。RA M O
には、3次ベジェ曲線に関するデータのほかに3次スプ
ライン曲線に関するデータ等、各種の曲線に関するデー
タが記憶されており、これらのデータは必要に応じて後
述のRAMI、RAM2およびRAM3に送られる。
RA Mlはランダムアクセスメモリであり、第5図に
示したパラメータ関数WASWB、WCおよびWDの各
位を記憶するものである。これらのデータWAO〜WA
25B 、WBO〜W825B、WCO〜WC256、
WDO〜W D 25BはRA Fwl 0から送られ
てくるものであり、第6図に示すようにしてRAMI内
に記憶される。
RAM2はランダムアクセスメモリであり、第3図に示
した各小曲線C1〜C14毎に、アンカポイントPAお
よびPD、コントロールポイントPBおよびPCの各座
標データを記憶するものである。これらの各座標データ
はRAM0から送られてくるものであり、第7図に示す
ようにしてRA、 M 2内に記憶される。第7図にお
いて、PAXO−PDXOは小曲線C1におけるアンカ
ーポイントおよびコントロールポイントの各X座標、P
AYO〜PDYOはこれらのポイントの各X座標、FA
X 1〜PDXIは小曲線C2におけるこれらのポイン
トの各X座標、PAYI〜PDYIはこれらのポイント
の各X座標である。
RA M 3はランダムアクセスメモリであり、第3図
に示した各小曲線C1〜C14の分割数に対応じたデー
タを、各小曲線01〜C14毎に予め記憶しておくもの
である。分割数に対応じたデータとしては、分割数その
ものでもよいし、第5図に示したnのステップ数でもよ
い。本実施例においては、ランダムアクセスメモリRA
M3には、第8図に示すように、nのステップ数すなわ
ちnの増加分Δnが記憶される。第8図において、Δn
1、Δn2、・・・・・・・・・は、第3図に示した小
曲線C1、C2、・・・・・・・・・にそれぞれ対応し
て記憶されたステップ数である。これらのデータΔn1
、Δn2、・・・・・・・・・は、RAM0から送られ
てくるものであり、第8図に示すようにしてRAMB内
に記憶される。
RAM4はランダムアクセスメモリであり、(])式に
基いて行われたハードウェア計算の結果、言い換えると
各小曲線C1〜C14上の座標データQ (x、y)を
記憶するものである。これらの座標データQ (x、y
)は、第9図に示すようにしてRAM4に記憶される。
第9図において、データX010〜X0,1.6および
YO10〜Y O,16は、第4図(A)の小曲線C1
上の点Q O,0〜Q O,16のそれぞれXおよびy
座標であり、データX1,0〜X1..32およびYl
、0〜Y 1,32は、第4図(B)の小曲線C2上の
点Q1,0〜Q 1,32のそれぞれXおよびy座標で
ある。
PNTIはRAMIのアドレスポインタであり、独立の
アドレスポインタPNTIA、PNTIB。
PNTICおよびPNTIDによって構成されている。
PNTIASPNTl、BlPNTICおよびPNTI
Dは、RAMIにl記憶されているデータWAO〜WA
25B 、WBO〜WB256 、WCO〜WC25B
 、WDO〜WD256  (第6図参照)のアドレス
をそれぞれ指定するものである。
PNT2はRAM2のアドレスポインタであり、RAM
2に記憶されているアンカーポイントおよびコントロー
ルポイントの各座標データ(第7図参照)のアドレスを
指定するものである。
PNT3はRAM3のアドレスポインタであり、RAM
3に記憶されているステップ数Δn1、Δn2、・・・
・・・・・・(第8図参照)のアドレスを指定するもの
である。
PNT4はRAM4のアドレスポインタであり、ハード
ウェア計算によって得られる座標データX010〜X 
O,1BおよびYO10〜Y O,16等(第9図参照
)のアドレスを指定するものである。
STPはラッチ回路であり、RAM3に記憶されている
ステップ数Δn1、Δn2、・・・・・・・・・(第8
図参照)をラッチするものである。
ADDはアダー回路であり、現在選択されているアドレ
スポインタ(PNTIASPNTIB。
PNTICまたはPNTID)の値とラッチ回路STP
の値とを加算し、その加算結果を現在選択されているア
ドレスポインタに送るものである。
つまり、アドレスポインタの値をラッチ回路STPにラ
ッチされているステップ数Δn1、Δn2、・・・・・
・・・・だけ増加する役割を果すことになる。
MLTはマルチプライア回路であり、第6図に示すRA
M1に記憶されているデータと第7図に示すRAM2に
記憶されているデータとの乗算を行うものである。つま
り、(1)式における乗算(例えば、WAXPA)部分
の演算をを行うことになる。
ALUは算術論理回路であり、マルチプライア回路ML
Tの乗算値と後述のアキュムレータACCの値とを加算
するものである。
ACCはアキュムレータであり、算術論理回路ALUの
演算結果を保持するとともに、この演算結果を算術論理
回路ALUの一方の入力に送出するものである。つまり
、算術論理回路ALUとアキュムレータACCとにより
、(])式における加算部分の演算を行うことになる。
C0NTはコントロール回路であり、マイクロプロセッ
サCPU0からの命令を受けて上記各演算処理の制御を
行うものである。このコントロール回路C0NTには、
上記各演算処理に対するマイクロプログラムが含まれて
いる。
つぎに、第2図(A)、(B)および(C)に示したフ
ローチャートを参考にして、第1図に示した回路の動作
について説明する。
まず、マイクロプロセサCPU0からの信号に基いて初
期設定が行なわれる。
(a):RAM0からRAMIには、第5図に示したパ
ラメータ関数WASWB、WCおよびWDの各tに対応
じたデータが送られ、これらのデータは第6図に示すよ
うにしてRAMI内に記憶される。RAM0からRAM
2には、第3図に示した各小曲線C1〜C14毎に、ア
ンカーポイントおよびコントロールポイントの各座標デ
ータが送られ、これらのデータは第7図に示すようにし
てRA M 2内に記憶される。RA M OからRA
M3には、第3図に示した各小曲線C1〜C14の各分
割数に対応して、各小曲線C1〜C14毎のステップ数
データΔn1、Δn2、・・・・・・・・が送られ、こ
れらのデータは第8図に示すようにしてRA M B内
に記憶される。
(b)ニアドレスポインタPNT2、PNT3、PNT
4かそれぞれ“O″に設定される。その結果、第7図に
示すデータPAXOが記憶されているアドレス、第8図
に示すデータΔn1が記憶されているアドレス、第9図
に示すデータX010を記憶するアドレスが、それぞれ
指定されるわけである。
以上のようにして初期設定が終了し、つぎに第3図およ
び第4図(A)で示す小曲線C1に対する演算処理が行
われる。
(C)ニアドレスポインタPNTIAには“0が、アド
レスポインタPNT、IBには“257′が、アドレス
ポインタPNTICには“514”が、アドレスポイン
タP N T 1. Dには“771゜が、それぞれ設
定される。すなわち、第6図に示すように、データWA
O1WBO1WCOおよびWDOか記憶されているアド
レスがそれぞれ指定されるわけである。ラッチ回路ST
Pには、アドレスポインタPNT3で指定されるRAM
3のアドレス“0000°に記憶されているデータM[
PNT3]がラッチされる。つまり、第8図に示すステ
ップ数Δnl(第4図(A)に示す小曲線C1の分割数
に対応じたステップ数“16”)がラッチされることに
なる。
(d):つぎに、第2図(B)に示す計算ルーチンが以
下のようにして行われる。
まず、第4図(A)に示した点QO10のX座標を求め
るために、(1)式の’WA x P A +WBxP
B+WCxPC+WDxPD”の値が以下のようにして
計算される。
(di):アキュムレータACCがクリアされ、′0゛
がセットされる。
(d2)ニアドレスポインタPNTIAで指定されるR
AMIのアドレス“oooo”に記憶されているデータ
M[PNTIA]すなわち“WAO”(第6図り照)か
、マルチプライア回路MLTの“X″人力送られる。ア
ドレスポインタPNT2て指定されるRAM2のアドレ
ス“0000”に記憶されているデータM[PNT2]
すなわち“PAXO”  (第7図参照)が、マルチプ
ライア回路M L Tの“Y”入力に送られる。
(d3):第2図(C)に示す積和計算が以下のように
して行われる。
(dlol、)  ・マルチプライア回路MLTの“X
゛入力値“WAO”と“Y”入力の値“PAXO”の積
“WAOxPAXO”が、マルチプライア回路MLTの
“Z′に出力される。すなわち(1)式の“WA X 
P A−に相当する計算が行われる。この計算結果は算
術論理回路ALUの“Y°大入力送られ、一方アキュム
レータACCのデータ“0“が算術論理回路ALUの“
X“入力に送られる。
(d102):算術論理回路ALUの“X”入力の値と
算術論理回路ALUの“Y°大入力値との和が計算され
、この計算結果がアキュムレータACCに送られる。そ
の結果、アキュムレータACCには“WAOxPAXO
“の値が保持されることになる。
(d103)ニアドレスポインタPNT2の値に“1′
が加算され、その結果ポインタ値が“o。
OI”となる。
(d4)ニアドレスポインタPNTIBで指定されるR
AMIのアドレス“0257″に記憶されているデータ
M[PNTIB]すなわち“WBO″(第6図参照)が
、マルチプライア回路MLTの“X′大入力送られる。
アドレスポインタPNT2で指定されるRAM2のアド
レス“0001“に記憶されているデータM [PNT
2]すなわち“PBXO”  (第7図参照)が、マル
チプライア回路MLTの“Y″入力送られる。
(d5):第2図(C)に示す積和計算が行われる。基
本的な動作は上記(d3)で述べたものと同様である。
マルチプライア回路MLTでは、第6図に示した“WB
O”と第7図に示した“PBXO”との積“WBOxP
BXO”、すなわち(1)式の“WB x P B”に
相当する計算か行われる。算術論理回路ALUでは、こ
の計算結果“W B Ox P B X O” とアキ
ュムレータACCに保持されている値“WAQxPAX
O”との和が計算される。この計算結果“WAOxPA
X□+WBOXPBXO″はアキュムレータACCに保
持される。すなわち、ここでは(1)式の“WAXPA
+WBXPB”に相当する計算が行われるわけである。
(d6)ニアドレスポインタPNTICで指定されるR
AM1のアドレス“0514”に記憶されているデータ
M [PNTIC]すなわち“WCO”(第6図参照)
が、マルチプライア回路MLTの“X″入力送られる。
アドレスポインタPNT2で指定されるRAM2のアド
レス“0002”に記憶されているデータM [PNT
2]すなわち“PCXOo (第7図参照)が、マルチ
プライア回路MLTの“Y“入力に送られる。
(d7):第2図(C)に示す積和計算が行われる。基
本的な動作は上記(d3)で述べたものと同様である。
マルチプライア回路MLTでは、第6図に示した“WC
O″と第7図に示した“PCXO”との積“WCOXP
CXO″、すなわち(1)式の“WCx P C”に相
当する計算か行われる。算術論理回路ALUでは、この
計算結果“wcoxpcxo”とアキュムレータACC
に保持されている値“WAOXPAXO+WBOXPB
XO″との和が計算される。この計算結果“WAOXP
AXO+WBOXPBXO+WCOxpcxo″はアキ
ュムレータACCに保持される。すなわち、ここでは(
1)式の“WAXPA+ W B x P B +W 
Cx P C”に相当する計算が行われるわけである。
(d8)ニアドレスポインタPNTIDで指定されるR
AM1のアドレス“0771”に記憶されているデータ
M [PNTID]すなわち“WDO”(第6図参照)
が、マルチプライア回路MLTの“X′人力に送られる
。アドレスポインタPNT2で指定されるRAM2のア
ドレス“0003”に記憶されているデータM [PN
T2]すなわち“PDXO”  (第7図参照)が、マ
ルチプライア回路MLTの“Y°大入力送られる。
(d9):第2図(C)に示す積和計算が行われる。基
本的な動作は上記(d3)で述べたものと同様である。
マルチプライア回路MLTでは、第6図に示した“WD
O”と第7図に示した“PDXO”との積“WDOxP
DXO” 、すなわち(1)式の“WDxPD”に相当
する計算が行われる。算術論理回路ALUでは、この計
算結果’WDOxPDXO”とアキュムレータACCに
保持されている値“W A Ox P A X O+W
 B OxPBXO+WCOxPCXO”との和が計算
される。この計算結果“W A Ox P A X O
+ W B OxPBXO+WCOXPCXO+WDO
XPDXO”はアキュムレータACCに保持される。す
なわち、ここでは(1)式の’WAXPA+WBXPB
+WCxPC+WDxPD”に相当する計算が行われる
わけである。
(dlO):以上のようにして、第4図(A)に示した
点QO10のX座標が計算されるわけである。アキュム
レータACCに保持さている上記計算結果は、アドレス
ポインタPNT4で指定されるRAM4のアドレス“0
000′に記憶される。この記憶データM [PNT4
]は、第9図において“Xo、0″と表される。
(dl、1.)ニアドレスポインタPNT4の値に“1
°が加算され、その結果ポインタ値か“000ビとなる
(d 12)〜(d21):つぎに、第4図(A)に示
した点QO20のX座標を求めるために、上記(dl)
〜(d 10)の処理と同様にして、第2図(B)に示
した(d 12)〜(d 21)の処理が行われる。得
られた計算結果“WAOXPAYO+WBOXPBYO
+WCOXPCYO+WDQxPDYO”は、アドレス
ポインタPNT4で指定されるRAM4のアドレス“o
ooi”に記憶される。この記憶データM [PNT4
]は、第9図において“Yo、0”と表される。
(d22)ニアドレスポインタPNT4の値に“1′か
加算され、その結果ポインタ値が“0002“となる。
(d 23)  ・アドレスポインタPNT2の値から
8か減算され、その結果ポインタ値が“0000゜とな
る。
以上のようにして、第2図(A)に示す計算ルーチンが
終了し、第4図(A)に示す点QO10のX座標−xo
、o”およびX座標“yo、o’がRAM4に記憶され
る(第9図参照)。
(e)ニアドレスポインタPNTIA、PNT]B、P
NTICおよびPNTIDの値に、ラッチ回路STPに
ラッチされているステップ数Δn1(第4図(A)に示
す小曲線C1の分割数に対応じたステップ数“16′)
がそれぞれ加算される。従って、アドレスポインタPN
TIA、PNTIB、PNTIC,PNTIDのポイン
タ値は、それぞれ“16゛273“ (257+16)
、530″ (514+16)、“787”  (77
1+16)となる。
(f)ニアドレスポインタPNT IAの値が“256
”よりも大きいかどうか判断される。
アドレスポインタPNTIAの現在値は“001B”な
ので、計算ルーチン(d)に処理が移り、上記(d)で
述べた処理と同様の処理が行われる。その結果、第4図
(A)に示す点Q O,1のX座標“X011“および
X座標“YO1■”がRAM4に記憶される(第9図参
照)。具体的なデータは、“X O,1″が“WA16
xPAXO+WB16xPBXO+WC16xPCXO
+WD16xpDXO″であり、“YO11″が“WA
16xPAYO+WB16XPB−YO+WC16XP
CYO十WD16xPDYO“である(第6図、第7図
参照)。
以上のようにして、アドレスポインタPNTIAの値が
“256゛よりも太くなるまで同様な処理が行われる。
その結果、第4図(A)に示す点QO10〜Q0.16
のX座標“xo、o”〜“X O,1B”およびX座標
“YO10°〜“yo、te”が、順次RAM4に記憶
される(第9図参照)。
(g)ニアドレスポインタPNTIAの値が“256”
よりも大きくなると、以下の処理が行なわれる。アドレ
スポインタPNT2の値に8が加算され、その結果ポイ
ンタ値が“0008”となる(第7図参照)。アドレス
ポインタPNT3の値に1か加算され、その結果ポイン
タ値が“0001”となる(第8図参照)。
以上のようにして、第3図および第4図(A)に示す小
曲線C1に対する処理が終了する。
(h)・アドレスポインタPNT3の値が“14“にな
ったかどうか判断される。この“14″という値は第3
図に示す曲線の分割数に相当するものであり、この値は
各曲線毎に適宜選定されているものである。
アドレスポインタPNT3の現在値は“0001”なの
で、計算ルーチン(C)に処理が移り、上記(c)〜(
g)で述べた処理と同様の処理が行われる。その結果、
第4図(B)に示す点Q1,0〜Q 1.32のX座標
”Xi、O’ 〜“X 1.32°およびX座標“Yl
、0”〜“Y 1,32″が、順次RAM4に記憶され
る(第9図参照)。
以上のようにして、アドレスポインタPNT3の値か“
14°になるまで、第3図に示す小曲線C1〜C14に
対して同様な処理が行わる。アドレスポインタPNT3
の値が“14°になると、第3図に示す小曲線01〜C
14に対する処理が終了したと判断される。
すでに述べたように、各小曲線はその曲率等に応して適
当な分割数を選定することができ、各小曲線毎に最適な
分割数を選定すればハードウェア計算を高速化すること
が可能である。一般的には、曲率か小さいときには、少
ない分割数でも精度よく近似曲線を表すことができる。
そこで、小曲線の最適な分割数を求める方法について以
下述べる。
まず、第10図を参照して第1の方法について説明する
第10図において、PAおよびPDは小曲線C■1のア
ンカーポイント、PBおよびPCは小曲線CV1のコン
トロールポイントである。L ab。
L beSL cdSL daは、それぞれPAとPB
間、PBと20間、PCとPD間、PDとPA間を直線
で結んだ線分の長さである。一般的に線分Labおよび
Ledの長さは、小曲線CVIの曲率が大きいほど長く
なる。従って、以下の評価式を用いて小曲線CV1の最
適な分割数“N”を求めることができる。
ΔL−(Lab+Lbe 十Lcd−Lda)+1 −(3) N−2(log(a)ΔL+    、、、(4)2≦
a≦8  (′a は底) なお底“a は、曲線の近似精度に応じて適宜選択され
るものであり、また(4)式で示される分割数“Noが
データテーブルにおける分割数(第6図の例では“25
6“)を越えないように選択される。
上記評価式を用いて分割数を求めた例(a−3の場合)
を第11図に示す。これは、コントロールポイントPB
およびPCのそれぞれのy座標を順次小さくした場合、
すなわち小曲線の曲率を順次小さくした場合の例を示し
たものである。
なお、11図に示した“ステップ′とは“256/N”
の値であり、第8図に示したステップ数データΔn1、
Δn2、・・・・・・・・・に相当するものである。第
11図に示したように、上記評価式を用いた場合には、
小曲線の曲率か小さくなるほど分割数が少なくなること
がわかる。
なお、(3)式においては各線分の値をそのまま用いた
が、これらの線分の長さを二乗した値を用いてもよい。
つぎに、第12図および第13図を参照して第2の方法
について説明する。
第12図において、PAおよびPDは小曲線CV2のア
ンカーポイント、PBおよびPCは小曲線CV2のコン
トロールポイントである。Slは上記ポイントPASP
BSPCおよびPDを順次直線で結んだときに形成され
る四角形の面積である。一般的に上記四角形の面積S1
は、小曲線C■2の曲率が大きいほど大きくなる。従っ
て、以下の評価式により小曲線CV2の最適な分割数“
Noを求めることができる。
N=2 flog(a)Sll    、、、(5)2
≦a≦8 (“a は底) なお底“a は、曲線の近似精度に応じて適宜選択され
るものであり、また(5)式で示される分割数“Noか
データテーブルにおける分割数(第6図の例では“25
6”)を越えないように選択される。
第13図において、PAおよびPDは小曲線CV3のア
ンカーポイント、FBおよびPCは小回11cV3のコ
ントロールポイントである。S2は上記ポイントPA、
PBおよびPDを順次直線で結んだときに形成される三
角形の面積であり、S3は上記ポイントFA%PCおよ
びPDを順次直線で結んだときに形成される三角形の面
積である。
一般的に上記三角形S2およびS3のそれぞれ面積の和
’S2+S3″は、小曲線CV3の曲率が大きいほど大
きくなる。従って、以下の評価式により小曲線CV3の
最適な分割数“Noを求めることができる。
N=2 Hog(a)(S2+53)l 、、(6゜2
≦a≦8(a  は底) なお底“a は、曲線の近似精度に応じて適宜選択され
るものであり、また(6)式で示される分割数“Noか
データテーブルにおける分割数(第6図の例では“25
6”)を越えないように選択される。
なお、(5)式および(6)式においては各面積の値を
そのまま用いたが、これらの面積を二乗した値を用いて
もよい。
[効果] 本発明の第1の方法によれば、一のアンカーポイント、
コントロールポイントおよび他のアンカーポイントを順
次直線で結んだ線分の長さに応じた値と、アンカーポイ
ント同志を直線で結んだ線分の長さに応じた値との差を
求め、この差に応じた値に基いて曲線の分割数を求め、
曲線を近似的に表すものである。また、本発明の第2の
方法によれば、一のアンカーポイント、コントロールボ
インドおよび他のアンカーポイントを結ぶ直線で囲まれ
た部分の面積に基いて曲線の分割数を求め、曲線を近似
的に表すものである。従って、表示しようとする曲線に
応じて最適な分割数が得られ、アウトラインフォントの
生成に要する時間を短縮することかできる。
【図面の簡単な説明】
第1図〜第13図はいずれも本発明における実施例を説
明したものであり、第1図はブロック図、第2図(A)
、第2図(B)および第2図(C)は第1図の動作を示
したフローチャート、第3図、第4図(A)および第4
図(C)はアウトラインフォントの説明図、第5図はデ
ータテーブルの概念図、第6図〜第9図はRAMに記憶
された各ブタのアドレスマツプ、第10図は小曲線の分
割数を求める第1の方法に関する説明図、第11図は第
1の方法で分割数を求めたときの具体例を示した図、第
12図および第13図は小曲線の分割数を求める第2の
方法に関する説明図である。 PA。 D ・・・・・アンカーポイ ン ト PB。 C・・ コ ン トロールポイ ン ト 以上

Claims (2)

    【特許請求の範囲】
  1. (1)二つのアンカーポイントと少なくとも一つのコン
    トロールポイントとを用いて表された曲線を複数の部分
    に分割し、隣り合った分割点を直線で結ぶことにより上
    記曲線を近似的に表す方法において、 一のアンカーポイント、コントロールポイントおよび他
    のアンカーポイントを順次直線で結んだ線分の長さに応
    じた値と、アンカーポイント同志を直線で結んだ線分の
    長さに応じた値との差を求め、この差に応じた値に基い
    て上記曲線の分割数を求め、 上記曲線を近似的に表す曲線近似方法。
  2. (2)二つのアンカーポイントと少なくとも一つのコン
    トロールポイントとを用いて表された曲線を複数の部分
    に分割し、隣り合った分割点を直線で結ぶことにより上
    記曲線を近似的に表す方法において、 一のアンカーポイント、コントロールポイントおよび他
    のアンカーポイントを結ぶ直線で囲まれた部分の面積に
    基いて上記曲線の分割数を求め、上記曲線を近似的に表
    す曲線近似方法。
JP2278099A 1990-10-17 1990-10-17 曲線近似方法 Expired - Fee Related JP2522107B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2278099A JP2522107B2 (ja) 1990-10-17 1990-10-17 曲線近似方法
DE4134234A DE4134234C2 (de) 1990-10-17 1991-10-16 Verfahren zur Erzeugung von Signalen, die eine definierte Kurve, insb. eines Zeichens eines Outline-Fonts, repräsentieren
US08/104,259 US5430834A (en) 1990-10-17 1993-08-09 Method and apparatus for storing and reproducing a curve

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2278099A JP2522107B2 (ja) 1990-10-17 1990-10-17 曲線近似方法

Publications (2)

Publication Number Publication Date
JPH04152390A true JPH04152390A (ja) 1992-05-26
JP2522107B2 JP2522107B2 (ja) 1996-08-07

Family

ID=17592621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2278099A Expired - Fee Related JP2522107B2 (ja) 1990-10-17 1990-10-17 曲線近似方法

Country Status (3)

Country Link
US (1) US5430834A (ja)
JP (1) JP2522107B2 (ja)
DE (1) DE4134234C2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3226734B2 (ja) * 1994-10-19 2001-11-05 キヤノン株式会社 データ変換装置および方法
US20090141038A1 (en) * 2007-11-02 2009-06-04 Newaskar Saket Prashant Bezier Curves for Low Memory Embedded Graphics Systems
JP4582200B2 (ja) * 2008-06-03 2010-11-17 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像変換方法、およびコンピュータプログラム
US9367933B2 (en) 2012-06-26 2016-06-14 Google Technologies Holdings LLC Layering a line with multiple layers for rendering a soft brushstroke

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620287A (en) * 1983-01-20 1986-10-28 Dicomed Corporation Method and apparatus for representation of a curve of uniform width
US4688182A (en) * 1984-09-10 1987-08-18 Allied Corporation Method and apparatus for generating a set of signals representing a curve
DE3700740A1 (de) * 1986-01-16 1987-07-23 Gen Electric Linearapproximationsumformschaltung
GB2203613B (en) * 1987-04-06 1992-01-02 Canon Kk Image processing apparatus
US5214754A (en) * 1988-06-29 1993-05-25 Fujitsu Limited Method and apparatus for approximating polygonal line to curve
US5133052A (en) * 1988-08-04 1992-07-21 Xerox Corporation Interactive graphical search and replace utility for computer-resident synthetic graphic image editors
US5233671A (en) * 1989-02-22 1993-08-03 Ricoh Company Ltd. Image coding method for coding characters using a modified Bezier curve
FR2646256A1 (fr) * 1989-04-24 1990-10-26 Digital Equipment Int Procede pour realiser des dessins a l'aide d'un ordinateur
US5103306A (en) * 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient

Also Published As

Publication number Publication date
JP2522107B2 (ja) 1996-08-07
DE4134234C2 (de) 1996-05-09
DE4134234A1 (de) 1992-04-23
US5430834A (en) 1995-07-04

Similar Documents

Publication Publication Date Title
JP2000039905A (ja) 工場計画作成装置
JP2961121B2 (ja) 曲線近似装置
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
JP2522107B2 (ja) 曲線近似方法
JP2677273B2 (ja) 3次ベジェ曲線の折線近似装置
US5521828A (en) Unit and method for setup-change instruction and the production system
JPH04153695A (ja) 曲線近似方法
JPH0293772A (ja) 輪郭近似方式
JPH03144782A (ja) 三次元図形処理装置
JPH04152391A (ja) 曲線近似方法
JP2538645B2 (ja) 曲線の折線近似装置
JPH0991447A (ja) ベジエ曲線近似装置
JP2826581B2 (ja) 等高線描画方法
JP2006503356A (ja) 固有値の組み合わせに関する値の決定方法
JP2003288486A (ja) グラフ表示装置
JPH10207694A (ja) ディジタルべき乗演算装置及びそれを用いたグラフィックスシステム
US6697077B2 (en) Method and apparatus for computing a computer graphics image
JPS60163162A (ja) 3次元連接体の形状定義方法
JP3305395B2 (ja) 図形分割装置
JP2841326B2 (ja) 測定機のワーク設計値類推方法及びその装置
JPH08315033A (ja) 進捗管理装置
JP3113225B2 (ja) グラフ作成装置およびグラフ作成方法
JPH06195353A (ja) 金額データ変更処理方式
JPH074670Y2 (ja) 比率演算機能を有する小型電子式計算機
JPH02213897A (ja) 曲線発生回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees