JPH11203489A - ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体 - Google Patents
ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体Info
- Publication number
- JPH11203489A JPH11203489A JP798798A JP798798A JPH11203489A JP H11203489 A JPH11203489 A JP H11203489A JP 798798 A JP798798 A JP 798798A JP 798798 A JP798798 A JP 798798A JP H11203489 A JPH11203489 A JP H11203489A
- Authority
- JP
- Japan
- Prior art keywords
- bezier curve
- bezier
- error
- curve
- dividing
- 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
Links
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 不適切な状態で直線近似を終了してしまう不
具合を生じさせることなく、従来よりも少ない演算量で
ベジェ曲線の直線近似を行い、その描画を行うことがで
きるベジェ曲線の描画方法を提供する。 【解決手段】 ベジェ曲線データにより特定される3次
のベジェ曲線を予め2分割し、第1および第2のベジェ
曲線とする(ステップS21)。次いで各ベジェ曲線に
ついて、誤差判定ステップと分割ステップからなる直線
近似処理を再帰的に繰り返し(ステップS22)、最終
的に得られた各ベジェ曲線の各定義多角形の外郭辺を元
のベジェ曲線の近似直線群の直線線分データファイルF
2として保存し、その描画を行う。
具合を生じさせることなく、従来よりも少ない演算量で
ベジェ曲線の直線近似を行い、その描画を行うことがで
きるベジェ曲線の描画方法を提供する。 【解決手段】 ベジェ曲線データにより特定される3次
のベジェ曲線を予め2分割し、第1および第2のベジェ
曲線とする(ステップS21)。次いで各ベジェ曲線に
ついて、誤差判定ステップと分割ステップからなる直線
近似処理を再帰的に繰り返し(ステップS22)、最終
的に得られた各ベジェ曲線の各定義多角形の外郭辺を元
のベジェ曲線の近似直線群の直線線分データファイルF
2として保存し、その描画を行う。
Description
【0001】
【発明の属する技術分野】この発明は、コンピュータグ
ラフィックス等において用いられるベジェ(Bezier)曲
線の描画方法、ベジェ曲線の描画装置およびベジェ曲線
の描画プログラムを記録した記録媒体に関する。
ラフィックス等において用いられるベジェ(Bezier)曲
線の描画方法、ベジェ曲線の描画装置およびベジェ曲線
の描画プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】コンピュータグラフィックスやCAD
(Computer Aided Design)等の分野では、ユーザが対
話形式により車体、建造物等の所望の対象物の造形を行
うということが一般的に行われている。このようなコン
ピュータを使用した造形を行う場合、所望の形状の滑ら
かな曲線を所望の箇所に描くことが必要とされる。かか
る場合、ベジェ曲線が一般的に用いられる。
(Computer Aided Design)等の分野では、ユーザが対
話形式により車体、建造物等の所望の対象物の造形を行
うということが一般的に行われている。このようなコン
ピュータを使用した造形を行う場合、所望の形状の滑ら
かな曲線を所望の箇所に描くことが必要とされる。かか
る場合、ベジェ曲線が一般的に用いられる。
【0003】ここで、図9を参照し、3次のベジェ曲線
について説明する。図9には4個の頂点P0、P1、P2
およびP3からなる四角形と、この四角形P0P1P2P3
の頂点P0からP3に至る曲線P(t)とが示されてい
る。これらのうち曲線P(t)が3次のベジェ曲線であ
る。このベジェ曲線P(t)上の各点の位置ベクトル
は、四角形P0P1P2P3の各頂点の位置ベクトルP0〜
P3を用いて次式のように表される。 P(t) =(1−t)3P0+3(1−t)2tP1+3(1−t)t2P2+t3P3 ……(1)
について説明する。図9には4個の頂点P0、P1、P2
およびP3からなる四角形と、この四角形P0P1P2P3
の頂点P0からP3に至る曲線P(t)とが示されてい
る。これらのうち曲線P(t)が3次のベジェ曲線であ
る。このベジェ曲線P(t)上の各点の位置ベクトル
は、四角形P0P1P2P3の各頂点の位置ベクトルP0〜
P3を用いて次式のように表される。 P(t) =(1−t)3P0+3(1−t)2tP1+3(1−t)t2P2+t3P3 ……(1)
【0004】上記式(1)において、tの変域は0から
1までである。そして、tを0から1まで変化させる
と、上記式(1)により与えられる位置ベクトルP
(t)は、点P0から点P3まで移動する。すなわち、P
0がベジェ曲線P(t)の始点であり、P3がベジェ曲線
P(t)の終点である。そして、上記式(1)から明ら
かなように、ベジェ曲線P(t)は四角形P0P1P2P3
の各頂点P0〜P3の位置ベクトルにより一義的に決定さ
れる。このため、四角形P0P1P2P3は、ベジェ曲線P
(t)の定義多角形と呼ばれ、その頂点P0〜P3は制御
点と呼ばれる。また、定義多角形の各辺のうちベジェ曲
線P(t)の始点P0と終点P3とを結ぶ直線P0P3はベ
ースラインと呼ばれる。
1までである。そして、tを0から1まで変化させる
と、上記式(1)により与えられる位置ベクトルP
(t)は、点P0から点P3まで移動する。すなわち、P
0がベジェ曲線P(t)の始点であり、P3がベジェ曲線
P(t)の終点である。そして、上記式(1)から明ら
かなように、ベジェ曲線P(t)は四角形P0P1P2P3
の各頂点P0〜P3の位置ベクトルにより一義的に決定さ
れる。このため、四角形P0P1P2P3は、ベジェ曲線P
(t)の定義多角形と呼ばれ、その頂点P0〜P3は制御
点と呼ばれる。また、定義多角形の各辺のうちベジェ曲
線P(t)の始点P0と終点P3とを結ぶ直線P0P3はベ
ースラインと呼ばれる。
【0005】コンピュータグラフィックス等では、例え
ばユーザがマウス等のポインティングデバイスにより定
義多角形の頂点の位置ベクトルの指定を行い、コンピュ
ータ側でこの定義多角形に対応したベジェ曲線を演算
し、ディスプレイにそのベジェ曲線の描画を行う、とい
うことが一般的に行われている。
ばユーザがマウス等のポインティングデバイスにより定
義多角形の頂点の位置ベクトルの指定を行い、コンピュ
ータ側でこの定義多角形に対応したベジェ曲線を演算
し、ディスプレイにそのベジェ曲線の描画を行う、とい
うことが一般的に行われている。
【0006】ここで、ベジェ曲線の形状は、ユーザが入
力する定義多角形の形に大体従う。また、ベジェ曲線の
始点と終点における接線ベクトルの方向は、定義多角形
の最初と最後の辺(図9の例では辺P0P1と辺P2P3)
の方向と各々同じである。従って、ユーザは、出来上が
るベジェ曲線を予測しながら定義多角形の入力を行うこ
とができ、容易に所望の形状のベジェ曲線を得ることが
できるのである。
力する定義多角形の形に大体従う。また、ベジェ曲線の
始点と終点における接線ベクトルの方向は、定義多角形
の最初と最後の辺(図9の例では辺P0P1と辺P2P3)
の方向と各々同じである。従って、ユーザは、出来上が
るベジェ曲線を予測しながら定義多角形の入力を行うこ
とができ、容易に所望の形状のベジェ曲線を得ることが
できるのである。
【0007】さて、以上説明したベジェ曲線をコンピュ
ータのディスプレイ等に表示したり、あるいはプロッタ
により印刷する場合、ベジェ曲線を直線の集りによって
近似して表示や印刷を行うのが一般的である。
ータのディスプレイ等に表示したり、あるいはプロッタ
により印刷する場合、ベジェ曲線を直線の集りによって
近似して表示や印刷を行うのが一般的である。
【0008】ここで、ベジェ曲線を直線の集りによって
近似する手法については、幾つかの手法が開示されてい
る。特に一般的に知られているのは、ド・カステリョ
(de Castelijau)が開発したベジェ曲線の分割手法を
利用した直線近似手法である。この種の直線近似手法で
は、ベジェ曲線を複数のベジェ曲線に分割し、例えば各
ベジェ曲線の各定義多角形の各ベースラインにより、元
のベジェ曲線の近似を行う。この場合、分割された各ベ
ジェ曲線と各々に対応した各ベースラインとがほぼ一致
していれば、各ベースラインは元のベジェを近似するも
のであると言える。しかし、各ベースラインの中に元の
ベジェ曲線との間に例えば大きな隙間があるようなもの
が含まれている場合、そのようなベースラインは近似直
線として相応しくない。その一方、ベジェ曲線をあまり
に細かく分割したのでは、近似が終了するまでの演算時
間が膨大になるという問題がある。
近似する手法については、幾つかの手法が開示されてい
る。特に一般的に知られているのは、ド・カステリョ
(de Castelijau)が開発したベジェ曲線の分割手法を
利用した直線近似手法である。この種の直線近似手法で
は、ベジェ曲線を複数のベジェ曲線に分割し、例えば各
ベジェ曲線の各定義多角形の各ベースラインにより、元
のベジェ曲線の近似を行う。この場合、分割された各ベ
ジェ曲線と各々に対応した各ベースラインとがほぼ一致
していれば、各ベースラインは元のベジェを近似するも
のであると言える。しかし、各ベースラインの中に元の
ベジェ曲線との間に例えば大きな隙間があるようなもの
が含まれている場合、そのようなベースラインは近似直
線として相応しくない。その一方、ベジェ曲線をあまり
に細かく分割したのでは、近似が終了するまでの演算時
間が膨大になるという問題がある。
【0009】そこで、この種のベジェ曲線を分割して近
似直線を求める手法では、誤差判定ステップと分割ステ
ップからなる直線近似処理を再帰的に繰り返すという手
順が採られる。以下、その手順について図10(a)〜
(d)を参照し説明する。
似直線を求める手法では、誤差判定ステップと分割ステ
ップからなる直線近似処理を再帰的に繰り返すという手
順が採られる。以下、その手順について図10(a)〜
(d)を参照し説明する。
【0010】まず、図10(a)に示すような定義多角
形P0P1P2P3により定義されたベジェ曲線P(t)が
与えられているものとすると、何等かの誤差評価関数を
使用してこのベジェ曲線P(t)と当該ベジェ曲線の定
義多角形との誤差(例えばベジェ曲線と定義多角形のベ
ースラインとの誤差)を求める。そして、この誤差が許
容範囲に収っているか否かを判定する。以上が上記誤差
判定ステップである。
形P0P1P2P3により定義されたベジェ曲線P(t)が
与えられているものとすると、何等かの誤差評価関数を
使用してこのベジェ曲線P(t)と当該ベジェ曲線の定
義多角形との誤差(例えばベジェ曲線と定義多角形のベ
ースラインとの誤差)を求める。そして、この誤差が許
容範囲に収っているか否かを判定する。以上が上記誤差
判定ステップである。
【0011】次に上記誤差が許容範囲を越えている場合
には、上記分割ステップを実行する。すなわち、上記ド
・カステリョの分割手法により、図10(b)に例示す
るように、ベジェ曲線P(t)上に分割点P4を求め
る。そして、元のベジェ曲線P(t)を、始点をP0と
し、かつ、終点をP4とするベジェ曲線と、始点をP4と
し、かつ、終点をP3とするベジェ曲線とに2分割する
のである。
には、上記分割ステップを実行する。すなわち、上記ド
・カステリョの分割手法により、図10(b)に例示す
るように、ベジェ曲線P(t)上に分割点P4を求め
る。そして、元のベジェ曲線P(t)を、始点をP0と
し、かつ、終点をP4とするベジェ曲線と、始点をP4と
し、かつ、終点をP3とするベジェ曲線とに2分割する
のである。
【0012】次に、2分割した各ベジェ曲線を処理対象
として上記誤差判定ステップを再び実行する。すなわ
ち、始点をP0とし、かつ、終点をP4とするベジェ曲線
と当該ベジェ曲線のベースラインP0P4との間の誤差を
求める。そして、この誤差が許容範囲を越えている場合
には、図10(c)に例示するように、分割点P5を求
め、当該ベジェ曲線を2分割する。同様に、始点をP4
とし、かつ、終点をP3とするベジェ曲線についてもベ
ースラインP4P3との間の誤差を求め、誤差が許容範囲
を越えている場合には、図10(d)に例示するよう
に、分割点P6により当該ベジェ曲線を2分割する。
として上記誤差判定ステップを再び実行する。すなわ
ち、始点をP0とし、かつ、終点をP4とするベジェ曲線
と当該ベジェ曲線のベースラインP0P4との間の誤差を
求める。そして、この誤差が許容範囲を越えている場合
には、図10(c)に例示するように、分割点P5を求
め、当該ベジェ曲線を2分割する。同様に、始点をP4
とし、かつ、終点をP3とするベジェ曲線についてもベ
ースラインP4P3との間の誤差を求め、誤差が許容範囲
を越えている場合には、図10(d)に例示するよう
に、分割点P6により当該ベジェ曲線を2分割する。
【0013】このようにベジェ曲線とこれに対応するベ
ースラインとの間の誤差判定ステップおよび誤差が許容
範囲外である場合のベジェ曲線の分割ステップという2
ステップからなる処理を再帰的に繰り返し、誤差が許容
範囲内に収ることを以て分割を終了する。そして、この
分割終了時点において、分割された各ベジェ曲線の各ベ
ースラインを元のベジェ曲線の近似直線とするのであ
る。
ースラインとの間の誤差判定ステップおよび誤差が許容
範囲外である場合のベジェ曲線の分割ステップという2
ステップからなる処理を再帰的に繰り返し、誤差が許容
範囲内に収ることを以て分割を終了する。そして、この
分割終了時点において、分割された各ベジェ曲線の各ベ
ースラインを元のベジェ曲線の近似直線とするのであ
る。
【0014】以上説明したベジェ曲線の直線近似手法に
おいて、誤差評価関数は、ベジェ曲線の直線近似を終了
するか否かの判断の基準として使用するものであるか
ら、これを如何に定めるかは極めて重要である。この場
合、適当なt(例えばt=0.5)に対応したベジェ曲
線上の点とベースラインとの間の距離を誤差とする等の
簡便な方法も考えられないではない。しかし、3次以上
のベジェ曲線の場合、図9に例示するような凸閉包の定
義多角形によって定義された単純な形状のものだけでは
なく、図11や図12に例示するような凸閉包でない定
義多角形により定義された複雑に曲がりくねったベジェ
曲線も存在する。このような複雑な形状のベジェ曲線の
直線近似を行う場合、誤差評価に使用するベジェ曲線上
の点の選択が不適切であると、ベジェ曲線とベースライ
ンとが掛け離れたものであるにも拘わらず両者の誤差が
小さいと判定し、ベジェ曲線の分割を行うことなく近似
を終了してしまうおそれがある。従って、ベジェ曲線の
直線近似を行う場合には、このような不都合が生じない
よう適切な誤差評価関数を使用し、近似終了の判断をす
る必要があるのである。以下、従来用いられてきた誤差
評価関数の例について説明する。
おいて、誤差評価関数は、ベジェ曲線の直線近似を終了
するか否かの判断の基準として使用するものであるか
ら、これを如何に定めるかは極めて重要である。この場
合、適当なt(例えばt=0.5)に対応したベジェ曲
線上の点とベースラインとの間の距離を誤差とする等の
簡便な方法も考えられないではない。しかし、3次以上
のベジェ曲線の場合、図9に例示するような凸閉包の定
義多角形によって定義された単純な形状のものだけでは
なく、図11や図12に例示するような凸閉包でない定
義多角形により定義された複雑に曲がりくねったベジェ
曲線も存在する。このような複雑な形状のベジェ曲線の
直線近似を行う場合、誤差評価に使用するベジェ曲線上
の点の選択が不適切であると、ベジェ曲線とベースライ
ンとが掛け離れたものであるにも拘わらず両者の誤差が
小さいと判定し、ベジェ曲線の分割を行うことなく近似
を終了してしまうおそれがある。従って、ベジェ曲線の
直線近似を行う場合には、このような不都合が生じない
よう適切な誤差評価関数を使用し、近似終了の判断をす
る必要があるのである。以下、従来用いられてきた誤差
評価関数の例について説明する。
【0015】まず、特開平4−223577号公報は、
図13に例示するように、定義多角形P0P1P2P3によ
り定義されたペジェ曲線P(t)が与えられた場合に、
ベジェ曲線P(t)の始点および終点を除く2個の制御
点P1およびP2の各々からベースラインP0P3までの各
距離d1およびd2の両方を誤差とし、その誤差に基づき
近似終了の判定を行う技術を開示している。
図13に例示するように、定義多角形P0P1P2P3によ
り定義されたペジェ曲線P(t)が与えられた場合に、
ベジェ曲線P(t)の始点および終点を除く2個の制御
点P1およびP2の各々からベースラインP0P3までの各
距離d1およびd2の両方を誤差とし、その誤差に基づき
近似終了の判定を行う技術を開示している。
【0016】上述した通り、ペジェ曲線の形は定義多角
形の形に大体従うので、この公報に記載の技術によれ
ば、ペジェ曲線とベースラインとの誤差を適切に評価す
ることができると考えられる。
形の形に大体従うので、この公報に記載の技術によれ
ば、ペジェ曲線とベースラインとの誤差を適切に評価す
ることができると考えられる。
【0017】また、特開平5−223577号公報は、
ベジェ曲線の定義多角形のベースラインから当該ベジェ
曲線上の最遠点までの距離を誤差とし、その誤差に基づ
き近似終了の判定を行う技術を開示している。ここで、
ベジェ曲線上においてベースラインからの最遠点となる
点を求めることは一般的に容易でない。そこで、同公報
においては、以下概略を説明するような複雑な処理によ
り最遠点を求めている。
ベジェ曲線の定義多角形のベースラインから当該ベジェ
曲線上の最遠点までの距離を誤差とし、その誤差に基づ
き近似終了の判定を行う技術を開示している。ここで、
ベジェ曲線上においてベースラインからの最遠点となる
点を求めることは一般的に容易でない。そこで、同公報
においては、以下概略を説明するような複雑な処理によ
り最遠点を求めている。
【0018】まず、図14に例示するように、XY座標
系において定義多角形P0P1P2P3により定義されたペ
ジェ曲線P(t)が与えられたとする。この場合、この
ベジェ曲線P(t)の始点が原点Oに位置し、かつ、ベ
ースラインP0P3がX軸と一致するように定義多角形P
0P1P2P3およびペジェ曲線P(t)を回転するのであ
る。
系において定義多角形P0P1P2P3により定義されたペ
ジェ曲線P(t)が与えられたとする。この場合、この
ベジェ曲線P(t)の始点が原点Oに位置し、かつ、ベ
ースラインP0P3がX軸と一致するように定義多角形P
0P1P2P3およびペジェ曲線P(t)を回転するのであ
る。
【0019】次に、この回転後のペジェ曲線P(t)に
おいて、dY/dX=0となるときのtの値τを求め
る。そして、このτに対応したペジェ曲線上の点P
(τ)を上記最遠点とし、そのY座標を誤差として求め
るのである。
おいて、dY/dX=0となるときのtの値τを求め
る。そして、このτに対応したペジェ曲線上の点P
(τ)を上記最遠点とし、そのY座標を誤差として求め
るのである。
【0020】
【発明が解決しようとする課題】以上概観したように、
従来のベジェ曲線の描画方法においては、誤差評価ステ
ップと分割ステップからなる処理を再帰的に繰り返すこ
とにより、ベジェ曲線の直線近似を行っている。このよ
うな再帰的な処理によりベジェ曲線の直線近似を行う場
合には、不適切な状態で近似終了をしてしまう不具合を
避ける必要がある。そのためには、上記特開平4−22
3577号公報や特開平5−223577号公報に開示
されているような誤差評価関数を使用し、ベジェ曲線と
定義多角形との誤差を正確に求めることが望まれる。
従来のベジェ曲線の描画方法においては、誤差評価ステ
ップと分割ステップからなる処理を再帰的に繰り返すこ
とにより、ベジェ曲線の直線近似を行っている。このよ
うな再帰的な処理によりベジェ曲線の直線近似を行う場
合には、不適切な状態で近似終了をしてしまう不具合を
避ける必要がある。そのためには、上記特開平4−22
3577号公報や特開平5−223577号公報に開示
されているような誤差評価関数を使用し、ベジェ曲線と
定義多角形との誤差を正確に求めることが望まれる。
【0021】しかし、その一方、ベジェ曲線の直線近似
は、誤差評価ステップおよび分割ステップの再帰的繰り
返しにより行われるものであるため、直線近似が終了す
るまでの時間を短くするためには、誤差評価ステップの
実行時間を極力短くすることが望まれるのである。しか
るに例えば上記特開平4−223577号公報に開示の
技術では、誤差評価の際に定義多角形の2つの頂点から
ベースラインまでの距離を求める演算をしなけらばなら
ないため、1回の誤差評価当りの演算時間が長くなって
しまう。また、特開平5−223577号公報に開示の
技術では、ベースラインからペジェ曲線上の最遠点まで
の1種類の距離を求めればよいのであるが、この最遠点
を求めるために図形回転処理を行わねばならず、1回の
誤差評価当りの演算時間が長くなってしまう。
は、誤差評価ステップおよび分割ステップの再帰的繰り
返しにより行われるものであるため、直線近似が終了す
るまでの時間を短くするためには、誤差評価ステップの
実行時間を極力短くすることが望まれるのである。しか
るに例えば上記特開平4−223577号公報に開示の
技術では、誤差評価の際に定義多角形の2つの頂点から
ベースラインまでの距離を求める演算をしなけらばなら
ないため、1回の誤差評価当りの演算時間が長くなって
しまう。また、特開平5−223577号公報に開示の
技術では、ベースラインからペジェ曲線上の最遠点まで
の1種類の距離を求めればよいのであるが、この最遠点
を求めるために図形回転処理を行わねばならず、1回の
誤差評価当りの演算時間が長くなってしまう。
【0022】このように、従来の技術においては、ベジ
ェ曲線の直線近似を正確に行おうとすると、そのために
誤差評価ステップにおける演算時間が長くなってしま
い、直線近似が終了し描画が行われるまでの所要時間が
長くなってしまうという問題があったのである。
ェ曲線の直線近似を正確に行おうとすると、そのために
誤差評価ステップにおける演算時間が長くなってしま
い、直線近似が終了し描画が行われるまでの所要時間が
長くなってしまうという問題があったのである。
【0023】この発明は以上説明した事情に鑑みてなさ
れたものであり、従来よりも少ない演算量で正確にベジ
ェ曲線の直線近似を行い、その描画を行うことができる
ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベ
ジェ曲線の描画プログラムを記録した記録媒体を提供す
ることを目的としている。
れたものであり、従来よりも少ない演算量で正確にベジ
ェ曲線の直線近似を行い、その描画を行うことができる
ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベ
ジェ曲線の描画プログラムを記録した記録媒体を提供す
ることを目的としている。
【0024】
【課題を解決するための手段】上記課題を解決するた
め、この発明においては、描画対象であるベジェ曲線を
予め複数に分割し、この分割により得られた複数のベジ
ェ曲線の各々について、当該ベジェ曲線と当該ベジェ曲
線の定義多角形との誤差が許容範囲内に収るまで当該ベ
ジェ曲線を分割する処理を再帰的に繰り返し、最終的に
得られた複数のベジェ曲線の各定義多角形から前記描画
対象であるベジェ曲線を近似する直線群を求め、該直線
群の描画を行う。
め、この発明においては、描画対象であるベジェ曲線を
予め複数に分割し、この分割により得られた複数のベジ
ェ曲線の各々について、当該ベジェ曲線と当該ベジェ曲
線の定義多角形との誤差が許容範囲内に収るまで当該ベ
ジェ曲線を分割する処理を再帰的に繰り返し、最終的に
得られた複数のベジェ曲線の各定義多角形から前記描画
対象であるベジェ曲線を近似する直線群を求め、該直線
群の描画を行う。
【0025】
【発明の実施の形態】以下、図面を参照し、本発明の実
施の形態について説明する。図1はこの発明の一実施形
態である描画装置の構成を示すブロック図である。この
描画装置は、描画対象である曲線や図形を直線の集合に
よって近似し、その描画を行う機能を有するものであ
り、CPU101、ROM102、RAM103、入力
部104、出力部105およびこれらを相互に接続する
バス106により構成されている。
施の形態について説明する。図1はこの発明の一実施形
態である描画装置の構成を示すブロック図である。この
描画装置は、描画対象である曲線や図形を直線の集合に
よって近似し、その描画を行う機能を有するものであ
り、CPU101、ROM102、RAM103、入力
部104、出力部105およびこれらを相互に接続する
バス106により構成されている。
【0026】入力部104は、描画対象である曲線や図
形を特定する情報(以下、便宜上、描画対象特定情報と
称する)をホストコンピュータ(図示略)から通信路1
07を介して受け取る手段である。ここで、描画対象に
はベジェ曲線が含まれている。このベジェ曲線の描画を
行う場合には、そのベジェ曲線の各制御点の位置座標か
らなるベジェ曲線データが描画対象特定情報として入力
部104に与えられる。
形を特定する情報(以下、便宜上、描画対象特定情報と
称する)をホストコンピュータ(図示略)から通信路1
07を介して受け取る手段である。ここで、描画対象に
はベジェ曲線が含まれている。このベジェ曲線の描画を
行う場合には、そのベジェ曲線の各制御点の位置座標か
らなるベジェ曲線データが描画対象特定情報として入力
部104に与えられる。
【0027】CPU101は、入力部104を介して描
画対象特定情報を受け取り、ROM103に記憶された
描画プログラムに従って、当該描画対象を直線の集合に
よって近似し、その直線線分データを生成する描画処理
を行う。
画対象特定情報を受け取り、ROM103に記憶された
描画プログラムに従って、当該描画対象を直線の集合に
よって近似し、その直線線分データを生成する描画処理
を行う。
【0028】RAM103は、描画対象特定情報や描画
対象を近似する直線群を表す情報の記憶手段として使用
される他、描画処理の際にCPU101によってワーク
メモリとして使用される。
対象を近似する直線群を表す情報の記憶手段として使用
される他、描画処理の際にCPU101によってワーク
メモリとして使用される。
【0029】出力部105は、CPU101による制御
の下、描画対象を近似する直線群の描画を行う手段であ
り、当該直線群を表す直線線分データから描画用のビッ
トマップデータを作成し、可視情報として出力する。例
えば、かかる可視情報を記録紙に印刷する電子写真方
式、インクジェット方式などのプリンタ、あるいはCR
Tなどのディスプレイ装置がこの出力部105として使
用される。
の下、描画対象を近似する直線群の描画を行う手段であ
り、当該直線群を表す直線線分データから描画用のビッ
トマップデータを作成し、可視情報として出力する。例
えば、かかる可視情報を記録紙に印刷する電子写真方
式、インクジェット方式などのプリンタ、あるいはCR
Tなどのディスプレイ装置がこの出力部105として使
用される。
【0030】次に本実施形態の動作について説明する。
図2は、描画対象がベジェ曲線である場合にCPU10
1により実行される描画処理の内容を示すものである。
この図2に示すように、本実施形態におけるベジェ曲線
の描画処理は、曲線データ入力処理(ステップS1)、
ベジェ曲線の直線近似処理(ステップS2)および出力
処理(ステップS3)から成り立っている。
図2は、描画対象がベジェ曲線である場合にCPU10
1により実行される描画処理の内容を示すものである。
この図2に示すように、本実施形態におけるベジェ曲線
の描画処理は、曲線データ入力処理(ステップS1)、
ベジェ曲線の直線近似処理(ステップS2)および出力
処理(ステップS3)から成り立っている。
【0031】曲線データ入力処理(ステップS1)で
は、描画対象であるベジェ曲線を特定するベジェ曲線デ
ータを外部から取り込み、ベジェ曲線データファイルF
1としてRAM103内に保存する。ここで、ベジェ曲
線データは、当該ベジェ曲線の各制御点の位置座標を含
んでいる。次に直線近似処理(ステップS2)では、ベ
ジェ曲線データファイルF1内のベジェ曲線データによ
って表される3次のベジェ曲線を直線の集合によって近
似し、各直線を表す直線線分データを直線線分データフ
ァイルF2としてRAM103内に保存する。そして、
出力処理(ステップS3)では、直線線分データファイ
ルF2内の各直線線分データに従って、3次ベジェ曲線
を近似する直線群の描画を行うのである。以上がCPU
101により実行されるベジェ曲線の描画処理の概要で
ある。
は、描画対象であるベジェ曲線を特定するベジェ曲線デ
ータを外部から取り込み、ベジェ曲線データファイルF
1としてRAM103内に保存する。ここで、ベジェ曲
線データは、当該ベジェ曲線の各制御点の位置座標を含
んでいる。次に直線近似処理(ステップS2)では、ベ
ジェ曲線データファイルF1内のベジェ曲線データによ
って表される3次のベジェ曲線を直線の集合によって近
似し、各直線を表す直線線分データを直線線分データフ
ァイルF2としてRAM103内に保存する。そして、
出力処理(ステップS3)では、直線線分データファイ
ルF2内の各直線線分データに従って、3次ベジェ曲線
を近似する直線群の描画を行うのである。以上がCPU
101により実行されるベジェ曲線の描画処理の概要で
ある。
【0032】図3は、上記直線近似処理(ステップS
2)の詳細な処理内容を示すものである。この図3に示
すように、本実施形態では、ベジェ曲線データファイル
F1(図2参照)内のベジェ曲線データにより特定され
る3次のベジェ曲線を予め2分割し、第1および第2の
ベジェ曲線とする(ステップS21)。ここで、3次の
ベジェ曲線を2分割するための方法としては、ド・カス
テリョの分割手法を用いることができる。
2)の詳細な処理内容を示すものである。この図3に示
すように、本実施形態では、ベジェ曲線データファイル
F1(図2参照)内のベジェ曲線データにより特定され
る3次のベジェ曲線を予め2分割し、第1および第2の
ベジェ曲線とする(ステップS21)。ここで、3次の
ベジェ曲線を2分割するための方法としては、ド・カス
テリョの分割手法を用いることができる。
【0033】図4はこのステップS21におけるベジェ
曲線の分割手法を説明するフローチャートである。以
下、図5に例示する定義多角形P0P1P2P3により定義
された3次のベジェ曲線P(t)の2分割を行う場合を
例に、本実施形態におけるベジェ曲線の分割方法につい
て説明する。
曲線の分割手法を説明するフローチャートである。以
下、図5に例示する定義多角形P0P1P2P3により定義
された3次のベジェ曲線P(t)の2分割を行う場合を
例に、本実施形態におけるベジェ曲線の分割方法につい
て説明する。
【0034】まず、ステップS101では、制御点P0
〜P3の各位置ベクトルを用いて下記の式(2)〜
(4)の演算を行う。 L1=(P0+P1)/2 ……(2) H=(P1+P2)/2 ……(3) R2=(P2+P3)/2 ……(4)
〜P3の各位置ベクトルを用いて下記の式(2)〜
(4)の演算を行う。 L1=(P0+P1)/2 ……(2) H=(P1+P2)/2 ……(3) R2=(P2+P3)/2 ……(4)
【0035】この演算により、定義多角形P0P1P2P3
におけるベースラインP0P3を除く3辺、すなわち、図
6に示す辺P0P1、P1P2およびP2P3の中点L1、H
およびR2の位置ベクトルが得られる。
におけるベースラインP0P3を除く3辺、すなわち、図
6に示す辺P0P1、P1P2およびP2P3の中点L1、H
およびR2の位置ベクトルが得られる。
【0036】次に、ステップS102では、ステップS
101において得られた各中点L1、HおよびR2の位置
ベクトルを用いて以下の演算を行い、中点L1およびH
を結ぶ辺の中点L2並びに中点HおよびR2を結ぶ辺の中
点R1の各位置ベクトルを求める。 L2=(L1+H)/2 ……(5) R1=(H+R2)/2 ……(6)
101において得られた各中点L1、HおよびR2の位置
ベクトルを用いて以下の演算を行い、中点L1およびH
を結ぶ辺の中点L2並びに中点HおよびR2を結ぶ辺の中
点R1の各位置ベクトルを求める。 L2=(L1+H)/2 ……(5) R1=(H+R2)/2 ……(6)
【0037】次に、ステップS103では、ステップS
102において得られた各中点L2およびR1を結ぶ中点
L3の位置ベクトルを次式により求める。 L3=(L2+R1)/2 ……(7)
102において得られた各中点L2およびR1を結ぶ中点
L3の位置ベクトルを次式により求める。 L3=(L2+R1)/2 ……(7)
【0038】ここで、上記中点L3は、ベジェ曲線P
(t)上のt=0.5に対応した点と一致する。そこ
で、この中点L3を分割点とし、元のベジェ曲線P
(t)を分割点L3の左側のベジェ曲線Left(t)
と右側のベジェ曲線Right(t)に分割する。
(t)上のt=0.5に対応した点と一致する。そこ
で、この中点L3を分割点とし、元のベジェ曲線P
(t)を分割点L3の左側のベジェ曲線Left(t)
と右側のベジェ曲線Right(t)に分割する。
【0039】次に、ステップS104では、上記分割に
より得られたベジェ曲線Left(t)およびベジェ曲
線Right(t)の各曲線データを作成する。ここ
で、ベジェ曲線Left(t)の曲線データは、当該ベ
ジェ曲線の制御点L0、L1、L2およびL3の各位置ベク
トルにより構成されている。なお、制御点L0は、元の
ベジェ曲線の制御点P0に対応している。従って、制御
点P0の位置ベクトルがそのまま制御点L0の位置ベクト
ルとして用いられる。また、ベジェ曲線Right
(t)の曲線データは、当該ベジェ曲線の制御点R0、
R1、R2およびR3の各位置ベクトルにより構成されて
いる。なお、ベジェ曲線Right(t)の制御点R0
は、ベジェ曲線Left(t)の制御点L3と一致して
いる。従って、前掲式(7)により得られた制御点L3
の位置ベクトルがそのまま制御点R0の位置ベクトルと
して用られる。また、制御点R3は元のベジェ曲線の制
御点P3に対応している。従って、この制御点P3の位置
ベクトルがそのまま制御点R3の位置ベクトルとして用
いられる。
より得られたベジェ曲線Left(t)およびベジェ曲
線Right(t)の各曲線データを作成する。ここ
で、ベジェ曲線Left(t)の曲線データは、当該ベ
ジェ曲線の制御点L0、L1、L2およびL3の各位置ベク
トルにより構成されている。なお、制御点L0は、元の
ベジェ曲線の制御点P0に対応している。従って、制御
点P0の位置ベクトルがそのまま制御点L0の位置ベクト
ルとして用いられる。また、ベジェ曲線Right
(t)の曲線データは、当該ベジェ曲線の制御点R0、
R1、R2およびR3の各位置ベクトルにより構成されて
いる。なお、ベジェ曲線Right(t)の制御点R0
は、ベジェ曲線Left(t)の制御点L3と一致して
いる。従って、前掲式(7)により得られた制御点L3
の位置ベクトルがそのまま制御点R0の位置ベクトルと
して用られる。また、制御点R3は元のベジェ曲線の制
御点P3に対応している。従って、この制御点P3の位置
ベクトルがそのまま制御点R3の位置ベクトルとして用
いられる。
【0040】このように本分割手法によれば、元のベジ
ェ曲線の各制御点の位置ベクトルのみを用いた演算を行
うことにより、当該ベジェ曲線を2分割し、分割した各
ベジェ曲線について各々の制御点の位置ベクトルからな
る曲線データを求めることができるのである。
ェ曲線の各制御点の位置ベクトルのみを用いた演算を行
うことにより、当該ベジェ曲線を2分割し、分割した各
ベジェ曲線について各々の制御点の位置ベクトルからな
る曲線データを求めることができるのである。
【0041】以上が図3のステップS21において行わ
れるベジェ曲線の2分割処理の詳細である。
れるベジェ曲線の2分割処理の詳細である。
【0042】このようにして描画対象であるベジェ曲線
の2分割処理が終了すると、ステップS21では、分割
により得られた第1のベジェ曲線の各制御点の位置ベク
トルからなる第1のベジェ曲線データファイルF21
と、第2のベジェ曲線の各制御点の位置ベクトルからな
る第2のベジェ曲線データファイルF21とをRAM1
03内に保存する。
の2分割処理が終了すると、ステップS21では、分割
により得られた第1のベジェ曲線の各制御点の位置ベク
トルからなる第1のベジェ曲線データファイルF21
と、第2のベジェ曲線の各制御点の位置ベクトルからな
る第2のベジェ曲線データファイルF21とをRAM1
03内に保存する。
【0043】なお、上記ステップS21では描画対象で
あるベジェ曲線の2分割を行ったが、これはあくまでも
例示であり、描画対象であるベジェ曲線を3以上のベジ
ェ曲線に分割することを妨げるものではない。上記ステ
ップS21において3以上のn個のベジェ曲線への分割
を行う場合には、第1〜第nの各ベジェ曲線が、次に説
明するステップS22の処理対象となる。
あるベジェ曲線の2分割を行ったが、これはあくまでも
例示であり、描画対象であるベジェ曲線を3以上のベジ
ェ曲線に分割することを妨げるものではない。上記ステ
ップS21において3以上のn個のベジェ曲線への分割
を行う場合には、第1〜第nの各ベジェ曲線が、次に説
明するステップS22の処理対象となる。
【0044】次にステップS22では、ステップS21
により得られた第1のベジェ曲線および第2のベジェ曲
線の各々について、直線近似処理を実行する。以下、図
6に示すフローチャートを参照し、この直線近似処理の
処理内容について説明する。
により得られた第1のベジェ曲線および第2のベジェ曲
線の各々について、直線近似処理を実行する。以下、図
6に示すフローチャートを参照し、この直線近似処理の
処理内容について説明する。
【0045】まず、ステップS201では、直線近似の
対象であるベジェ曲線(最初は上記第1のベジェ曲線ま
たは第2のベジェ曲線)と当該ベジェ曲線の定義多角形
との間の誤差を所定の誤差評価関数により演算する。な
お、この誤差評価関数の具体例については後述する。
対象であるベジェ曲線(最初は上記第1のベジェ曲線ま
たは第2のベジェ曲線)と当該ベジェ曲線の定義多角形
との間の誤差を所定の誤差評価関数により演算する。な
お、この誤差評価関数の具体例については後述する。
【0046】次にステップS202では、ステップS2
01において求めた誤差が許容範囲内か否かを判定す
る。ここで、誤差が許容範囲を越えている場合には、以
下説明するステップS203〜S205を実行する。
01において求めた誤差が許容範囲内か否かを判定す
る。ここで、誤差が許容範囲を越えている場合には、以
下説明するステップS203〜S205を実行する。
【0047】まず、ステップS203では、直線近似の
対象であるベジェ曲線を2個のベジェ曲線Left
(t)およびRight(t)に分割する。このベジェ
曲線の2分割は、既に図4および図5を参照して説明し
たド・カステリョの分割手法により行うことができる。
対象であるベジェ曲線を2個のベジェ曲線Left
(t)およびRight(t)に分割する。このベジェ
曲線の2分割は、既に図4および図5を参照して説明し
たド・カステリョの分割手法により行うことができる。
【0048】次にステップS204では、ステップS2
03において分割された一方のベジェ曲線Left
(t)を直線近似の対象として、この図6に示すルーチ
ンを再帰的に呼び出す。
03において分割された一方のベジェ曲線Left
(t)を直線近似の対象として、この図6に示すルーチ
ンを再帰的に呼び出す。
【0049】次にステップS205では、ステップS2
03において分割された他方のベジェ曲線Right
(t)を直線近似の対象として、この図6に示すルーチ
ンを再帰的に呼び出す。
03において分割された他方のベジェ曲線Right
(t)を直線近似の対象として、この図6に示すルーチ
ンを再帰的に呼び出す。
【0050】このような再帰的呼び出しは、呼び出され
た後のステップS201の判定処理において、直線近似
の対象であるベジェ曲線と当該ベジェ曲線の定義多角形
との間の誤差が許容範囲内であると判定されるまで繰り
返すこととなる。
た後のステップS201の判定処理において、直線近似
の対象であるベジェ曲線と当該ベジェ曲線の定義多角形
との間の誤差が許容範囲内であると判定されるまで繰り
返すこととなる。
【0051】そして、上記誤差が許容範囲内になった場
合には、ステップS202からステップS206へと進
む。そして、分割の繰り返しにより最終的に得られた各
ベジェ曲線の定義多角形の外郭辺、すなわち、各定義多
角形の各ベースラインを除く各辺(例えば図5に示す定
義多角形P0P1P2P3では、辺P0P1、P1P2およびP
2P3)の直線線分データを直線線分データファイルF2
としてRAM103内に保存し、出力処理(図2におけ
るステップS3)に引き渡す。
合には、ステップS202からステップS206へと進
む。そして、分割の繰り返しにより最終的に得られた各
ベジェ曲線の定義多角形の外郭辺、すなわち、各定義多
角形の各ベースラインを除く各辺(例えば図5に示す定
義多角形P0P1P2P3では、辺P0P1、P1P2およびP
2P3)の直線線分データを直線線分データファイルF2
としてRAM103内に保存し、出力処理(図2におけ
るステップS3)に引き渡す。
【0052】以上がステップS22における直線近似処
理の詳細である。
理の詳細である。
【0053】既に説明したように、本実施形態では、描
画対象であるベジェ曲線が予め第1および第2のベジェ
曲線に2分割され、この分割された第1および第2のベ
ジェ曲線の各々が上記直線近似処理の対象となる。この
ため、たとえ描画対象であるベジェ曲線が図11や図1
2に例示するような複雑な形状を有していたとしても、
ステップS21における直線近似処理の対象となる各ベ
ジェ曲線は、図9に例示するような単純な形状のものと
なる。従って、ステップS101の誤差演算において必
要演算量の少ない簡便な誤差評価関数を用いても、何等
問題を生じることなく、正確な直線近似を行うことがで
きる。
画対象であるベジェ曲線が予め第1および第2のベジェ
曲線に2分割され、この分割された第1および第2のベ
ジェ曲線の各々が上記直線近似処理の対象となる。この
ため、たとえ描画対象であるベジェ曲線が図11や図1
2に例示するような複雑な形状を有していたとしても、
ステップS21における直線近似処理の対象となる各ベ
ジェ曲線は、図9に例示するような単純な形状のものと
なる。従って、ステップS101の誤差演算において必
要演算量の少ない簡便な誤差評価関数を用いても、何等
問題を生じることなく、正確な直線近似を行うことがで
きる。
【0054】次に図7を参照し、誤差評価関数の第1の
具体例について説明する。まず、図7に例示するよう
に、定義多角形P0P1P2P3により定義されたベジェ曲
線P(t)が直線近似の対象として与えられているとす
る。この第1の具体例では、ベジェ曲線P(t)上の任
意の点Cを評価点として求める。この場合、全体として
の演算処理量を少なくするため、ステップS203(図
6)において求められるベジェ曲線の分割点をこの評価
点Cとして使用するのが得策である。次にこの評価点C
と定義多角形のベースラインとの間の距離dを誤差とし
て求める。
具体例について説明する。まず、図7に例示するよう
に、定義多角形P0P1P2P3により定義されたベジェ曲
線P(t)が直線近似の対象として与えられているとす
る。この第1の具体例では、ベジェ曲線P(t)上の任
意の点Cを評価点として求める。この場合、全体として
の演算処理量を少なくするため、ステップS203(図
6)において求められるベジェ曲線の分割点をこの評価
点Cとして使用するのが得策である。次にこの評価点C
と定義多角形のベースラインとの間の距離dを誤差とし
て求める。
【0055】ここで、距離dの算出手順について説明す
ると次の通りである。まず、ベジェ曲線の始点P0の位
置座標を(XA,YA)、終点P3の位置座標を(XB,Y
B)、評価点Cの位置座標を(XC,YC)とした場合、
次式により与えられるαおよびβを求める。 α=(XC−XA)(XB−XA)+(YC−YA)(YB−YA) ……(8) β=(XB−XA)2+(YB−YA)2 ……(9)
ると次の通りである。まず、ベジェ曲線の始点P0の位
置座標を(XA,YA)、終点P3の位置座標を(XB,Y
B)、評価点Cの位置座標を(XC,YC)とした場合、
次式により与えられるαおよびβを求める。 α=(XC−XA)(XB−XA)+(YC−YA)(YB−YA) ……(8) β=(XB−XA)2+(YB−YA)2 ……(9)
【0056】次にこれらのαおよびβを用い、下記式に
より、評価点CのベースラインP0P3上の投影点Lの位
置座標(XL,YL)を求める。 XL=XA+α(XB−XA)/β ……(10) YL=YA+α(YB−YA)/β ……(11)
より、評価点CのベースラインP0P3上の投影点Lの位
置座標(XL,YL)を求める。 XL=XA+α(XB−XA)/β ……(10) YL=YA+α(YB−YA)/β ……(11)
【0057】距離dは、このようにして得られた投影点
Lの位置座標(XL,YL)と、評価点Cの位置座標(X
C,YC)とから下記式により求めることができる。 d=√{(XL−XC)2+(YL−YC)2} ……(12)
Lの位置座標(XL,YL)と、評価点Cの位置座標(X
C,YC)とから下記式により求めることができる。 d=√{(XL−XC)2+(YL−YC)2} ……(12)
【0058】次に図8を参照し、誤差評価関数の第2の
具体例について説明する。まず、図8に例示するよう
に、定義多角形P0P1P2P3により定義されたベジェ曲
線P(t)が直線近似の対象として与えられているとす
る。この第2の具体例においても、ベジェ曲線P(t)
上の任意の点Cを評価点として求める。この場合も、上
記第1の具体例と同様、ステップS203(図6)にお
いて求められるベジェ曲線の分割点をこの評価点Cとし
て使用するのが得策である。
具体例について説明する。まず、図8に例示するよう
に、定義多角形P0P1P2P3により定義されたベジェ曲
線P(t)が直線近似の対象として与えられているとす
る。この第2の具体例においても、ベジェ曲線P(t)
上の任意の点Cを評価点として求める。この場合も、上
記第1の具体例と同様、ステップS203(図6)にお
いて求められるベジェ曲線の分割点をこの評価点Cとし
て使用するのが得策である。
【0059】次にベジェ曲線P(t)の終点P3の位置
ベクトルから始点P0の位置ベクトルを減算し、さらに
減算結果の1/2を求める。このベクトル演算により、
始点P0からベースラインP0P3の中点に至る変位ベク
トルAが得られる。次にベジェ曲線P(t)の始点P0
から上記評価点Cに至る変位ベクトルBを求める。
ベクトルから始点P0の位置ベクトルを減算し、さらに
減算結果の1/2を求める。このベクトル演算により、
始点P0からベースラインP0P3の中点に至る変位ベク
トルAが得られる。次にベジェ曲線P(t)の始点P0
から上記評価点Cに至る変位ベクトルBを求める。
【0060】そして、このようにして得られたベクトル
BからベクトルAを減算する。このベクトル演算によ
り、ベースラインP0P3の中点からベジェ曲線P(t)
上の評価点Cに至る変位ベクトルEが得られる。このベ
クトルEの絶対値をベジェ曲線C(t)と定義多角形P
0P1P2P3との間の誤差とするのである。
BからベクトルAを減算する。このベクトル演算によ
り、ベースラインP0P3の中点からベジェ曲線P(t)
上の評価点Cに至る変位ベクトルEが得られる。このベ
クトルEの絶対値をベジェ曲線C(t)と定義多角形P
0P1P2P3との間の誤差とするのである。
【0061】既に説明したように、直線近似処理の対象
は、元の描画対象であるベジェ曲線を2分割した第1お
よび第2のベジェ曲線であるため、図7および図8に例
示するような単純な形状をなしている。このため、以上
の具体例において説明したような簡単な誤差評価関数を
用いたとしても、ベジェ曲線と定義多角形との間の誤差
を適切に求めることができ、不適切な状態で直線近似を
終了してしまう不具合を防止することができる。従っ
て、本実施形態によれば、少ない演算量で、正確にベジ
ェ曲線の直線近似を行い、その描画を行うことができ
る。
は、元の描画対象であるベジェ曲線を2分割した第1お
よび第2のベジェ曲線であるため、図7および図8に例
示するような単純な形状をなしている。このため、以上
の具体例において説明したような簡単な誤差評価関数を
用いたとしても、ベジェ曲線と定義多角形との間の誤差
を適切に求めることができ、不適切な状態で直線近似を
終了してしまう不具合を防止することができる。従っ
て、本実施形態によれば、少ない演算量で、正確にベジ
ェ曲線の直線近似を行い、その描画を行うことができ
る。
【0062】なお、以上説明した本実施形態はあくまで
も本発明の例示である。本発明はその趣旨を逸脱しない
範囲で上記実施形態に様々な変形を加えて実施すること
ができる。例えば以下のような他の実施形態が考えられ
る。
も本発明の例示である。本発明はその趣旨を逸脱しない
範囲で上記実施形態に様々な変形を加えて実施すること
ができる。例えば以下のような他の実施形態が考えられ
る。
【0063】(1)上記実施形態では、ド・カステリョ
の分割手法によりベジェ曲線の分割を行ったが、本発明
の実施に当っては、これに限らず、他の分割手法を用い
てもよい。
の分割手法によりベジェ曲線の分割を行ったが、本発明
の実施に当っては、これに限らず、他の分割手法を用い
てもよい。
【0064】(2)上記実施形態では、3次のベジェ曲
線を描画対象として挙げたが、4次以上のベジェ曲線の
描画に本発明を適用してもよい。この場合、さらに複雑
な形状のベジェ曲線が描画対象となることが予想される
ので、直線近似の前にベジェ曲線の分割(前掲図3にお
けるステップS21)を予め行う際に、描画対象である
ベジェ曲線を3以上のなるべく多数のベジェ曲線に分割
することが好ましい。
線を描画対象として挙げたが、4次以上のベジェ曲線の
描画に本発明を適用してもよい。この場合、さらに複雑
な形状のベジェ曲線が描画対象となることが予想される
ので、直線近似の前にベジェ曲線の分割(前掲図3にお
けるステップS21)を予め行う際に、描画対象である
ベジェ曲線を3以上のなるべく多数のベジェ曲線に分割
することが好ましい。
【0065】(3)上記実施形態では、直線近似が終了
した時点で、最終的に分割された各ベジェ曲線の定義多
角形の外郭辺を近似直線群として出力するようにした
が、各ベジェ曲線のベースラインを近似直線群として出
力するようにしてもよい。
した時点で、最終的に分割された各ベジェ曲線の定義多
角形の外郭辺を近似直線群として出力するようにした
が、各ベジェ曲線のベースラインを近似直線群として出
力するようにしてもよい。
【0066】(4)上記実施形態における描画プログラ
ムをFD(フロッピーディスク)等の記録媒体に記録し
てユーザに配付し、ユーザが描画プログラムをパーソナ
ルコンピュータ等にインストールし、本発明に係るベジ
ェ曲線の描画方法を実施するようにしてもよい。
ムをFD(フロッピーディスク)等の記録媒体に記録し
てユーザに配付し、ユーザが描画プログラムをパーソナ
ルコンピュータ等にインストールし、本発明に係るベジ
ェ曲線の描画方法を実施するようにしてもよい。
【0067】
【発明の効果】以上説明したように、この発明によれ
ば、描画対象であるベジェ曲線を予め複数に分割し、こ
の分割により得られた複数のベジェ曲線の各々につい
て、当該ベジェ曲線と当該ベジェ曲線の定義多角形との
誤差が許容範囲内に収るまで当該ベジェ曲線を分割する
処理を再帰的に繰り返し、最終的に得られた複数のベジ
ェ曲線の各定義多角形から前記描画対象であるベジェ曲
線を近似する直線群を求め、該直線群の描画を行うよう
にしたので、必要演算量の少ない簡単な誤差評価関数を
用いたとしても、不適切な状態で直線近似を終了してし
まう不具合を生じさせることなく、正確にベジェ曲線の
直線近似を行い、その描画を行うことができるという効
果が得られる。
ば、描画対象であるベジェ曲線を予め複数に分割し、こ
の分割により得られた複数のベジェ曲線の各々につい
て、当該ベジェ曲線と当該ベジェ曲線の定義多角形との
誤差が許容範囲内に収るまで当該ベジェ曲線を分割する
処理を再帰的に繰り返し、最終的に得られた複数のベジ
ェ曲線の各定義多角形から前記描画対象であるベジェ曲
線を近似する直線群を求め、該直線群の描画を行うよう
にしたので、必要演算量の少ない簡単な誤差評価関数を
用いたとしても、不適切な状態で直線近似を終了してし
まう不具合を生じさせることなく、正確にベジェ曲線の
直線近似を行い、その描画を行うことができるという効
果が得られる。
【図1】この発明の一実施形態であるベジェ曲線の描画
装置の構成を示すブロック図である。
装置の構成を示すブロック図である。
【図2】同実施形態における描画プログラムの処理内容
を示すフローチャートである。
を示すフローチャートである。
【図3】同実施形態における直線近似処理の処理内容を
示すフローチャートである。
示すフローチャートである。
【図4】同実施形態におけるベジェ曲線の分割手法を示
すフローチャートである。
すフローチャートである。
【図5】同実施形態におけるベジェ曲線の分割手法を示
す図である。
す図である。
【図6】同実施形態における分割後のベジェ曲線の直線
近似処理の処理内容を示すフローチャートである。
近似処理の処理内容を示すフローチャートである。
【図7】同実施形態における誤差評価関数の第1の具体
例を示す図である。
例を示す図である。
【図8】同実施形態における誤差評価関数の第2の具体
例を示す図である。
例を示す図である。
【図9】3次のベジェ曲線の例を示す図である。
【図10】従来のド・カステリョの分割手法を用いたベ
ジェ曲線の直線近似方法を説明する図である。
ジェ曲線の直線近似方法を説明する図である。
【図11】3次のベジェ曲線の他の例を示す図である。
【図12】3次のベジェ曲線の他の例を示す図である。
【図13】従来のベジェ曲線の描画方法においてベジェ
曲線の直線近似終了判定に使用している誤差評価関数の
例を示す図である。
曲線の直線近似終了判定に使用している誤差評価関数の
例を示す図である。
【図14】従来のベジェ曲線の描画方法においてベジェ
曲線の直線近似終了判定に使用している誤差評価関数の
他の例を示す図である。
曲線の直線近似終了判定に使用している誤差評価関数の
他の例を示す図である。
【符号の説明】 101……CPU、102……ROM、103……RA
M、104……入力部、105……出力部、106……
バス、S1……曲線データ入力処理、S2……ベジェ曲
線の直線近似処理、S3……出力処理、S21……ベジ
ェ曲線の2分割処理、S22……各ベジェ曲線の直線近
似処理、F1……ベジェ曲線の曲線データファイル、F
11……第1のベジェ曲線の曲線データファイル、F1
2……第2のベジェ曲線の曲線データファイル、F2…
…直線線分データファイル。
M、104……入力部、105……出力部、106……
バス、S1……曲線データ入力処理、S2……ベジェ曲
線の直線近似処理、S3……出力処理、S21……ベジ
ェ曲線の2分割処理、S22……各ベジェ曲線の直線近
似処理、F1……ベジェ曲線の曲線データファイル、F
11……第1のベジェ曲線の曲線データファイル、F1
2……第2のベジェ曲線の曲線データファイル、F2…
…直線線分データファイル。
Claims (7)
- 【請求項1】 ベジェ曲線を直線の集合により近似し描
画するベジェ曲線の描画方法において、 対象であるベジェ曲線を予め複数に分割する分割処理
と、 前記分割処理により得られた複数のベジェ曲線の各々に
ついて、当該ベジェ曲線と当該ベジェ曲線を定義する定
義多角形との誤差を判定する誤差判定ステップと、前記
誤差が許容範囲を越えている場合に当該ベジェ曲線を分
割し、分割により新たに得られたベジェ曲線を前記誤差
判定ステップの判定対象とする分割ステップとからなる
処理を、前記誤差が許容範囲内に収るまで再帰的に繰り
返し、最終的に得られた複数のベジェ曲線の各定義多角
形から前記描画対象であるベジェ曲線を近似する直線群
を求める直線近似処理とを具備することを特徴とするベ
ジェ曲線の描画方法。 - 【請求項2】 前記直線近似処理において、前記最終的
に得られた複数のベジェ曲線の各定義多角形の各外郭辺
を前記描画対象であるベジェ曲線を近似する直線群とす
ることを特徴とする請求項1に記載のベジェ曲線の描画
方法。 - 【請求項3】 前記直線近似処理において、前記最終的
に得られた複数のベジェ曲線の各定義多角形の各ベース
ラインを前記描画対象であるベジェ曲線を近似する直線
群とすることを特徴とする請求項1に記載のベジェ曲線
の描画方法。 - 【請求項4】 前記誤差判定ステップにおいて、前記分
割ステップにおける前記ベジェ曲線の分割を行う点から
当該ベジェ曲線を定義する定義多角形のベースラインま
での距離を前記誤差として判定することを特徴とする請
求項1〜3のいずれか1の請求項に記載のベジェ曲線の
描画方法。 - 【請求項5】 前記誤差判定ステップにおいて、前記分
割ステップにおける前記ベジェ曲線の分割を行う点と当
該ベジェ曲線を定義する定義多角形のベースラインの中
点との距離を前記誤差として判定することを特徴とする
請求項1〜3のいずれか1の請求項に記載のベジェ曲線
の描画方法。 - 【請求項6】 ベジェ曲線を直線の集合により近似し描
画するベジェ曲線の描画装置において、 対象であるベジェ曲線を予め複数に分割する分割手段
と、 前記分割処理により得られた複数のベジェ曲線の各々に
ついて、当該ベジェ曲線と当該ベジェ曲線を定義する定
義多角形との誤差を判定する誤差判定ステップと、前記
誤差が許容範囲を越えている場合に当該ベジェ曲線を分
割し、分割により新たに得られたベジェ曲線を前記誤差
判定ステップの判定対象とする分割ステップとからなる
処理を、前記誤差が許容範囲内に収るまで再帰的に繰り
返し、最終的に得られた複数のベジェ曲線の各定義多角
形から前記描画対象であるベジェ曲線を近似する直線群
を求める直線近似手段とを具備することを特徴とするベ
ジェ曲線の描画装置。 - 【請求項7】 ベジェ曲線を直線の集合により近似し描
画するベジェ曲線の描画プログラムを記録した記録媒体
において、 前記描画プログラムが、 対象であるベジェ曲線を予め複数に分割する分割処理
と、 前記分割処理により得られた複数のベジェ曲線の各々に
ついて、当該ベジェ曲線と当該ベジェ曲線を定義する定
義多角形との誤差を判定する誤差判定ステップと、前記
誤差が許容範囲を越えている場合に当該ベジェ曲線を分
割し、分割により新たに得られたベジェ曲線を前記誤差
判定ステップの判定対象とする分割ステップとからなる
処理を、前記誤差が許容範囲内に収るまで再帰的に繰り
返し、最終的に得られた複数のベジェ曲線の各定義多角
形から前記描画対象であるベジェ曲線を近似する直線群
を求める直線近似処理とを具備することを特徴とする記
録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP798798A JPH11203489A (ja) | 1998-01-19 | 1998-01-19 | ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP798798A JPH11203489A (ja) | 1998-01-19 | 1998-01-19 | ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11203489A true JPH11203489A (ja) | 1999-07-30 |
Family
ID=11680785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP798798A Pending JPH11203489A (ja) | 1998-01-19 | 1998-01-19 | ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11203489A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100388290C (zh) * | 2006-06-02 | 2008-05-14 | 胡平 | 一种快速建立车身概念设计几何模型的方法 |
JP2012053691A (ja) * | 2010-09-01 | 2012-03-15 | Canon Inc | 画像処理方法、画像処理装置、及び、プログラム |
-
1998
- 1998-01-19 JP JP798798A patent/JPH11203489A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100388290C (zh) * | 2006-06-02 | 2008-05-14 | 胡平 | 一种快速建立车身概念设计几何模型的方法 |
JP2012053691A (ja) * | 2010-09-01 | 2012-03-15 | Canon Inc | 画像処理方法、画像処理装置、及び、プログラム |
US8787677B2 (en) | 2010-09-01 | 2014-07-22 | Canon Kabushiki Kaisha | Image processing method, image processing apparatus, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7038700B2 (en) | Morphing method for structure shape, its computer program, and computer-readable storage medium | |
EP1865467B1 (en) | Image processing system and program | |
US6563501B2 (en) | Bicubic surface rendering | |
US20020094132A1 (en) | Method, apparatus and computer program product for generating perspective corrected data from warped information | |
US7295202B2 (en) | System for approximating and displaying three dimensional CAD data, and system for executing method thereof | |
MX2007014662A (es) | Deformacion de engranaje sin limitaciones utilizando grafica volumetrica laplaciana. | |
WO2000002165A1 (fr) | Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees | |
JPH06124314A (ja) | コンピュータ支援設計システムおよびそのシステムにおける幾何学的対象を修正する方法 | |
JPH11203489A (ja) | ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体 | |
WO2004053741A1 (ja) | 三角形と線分の交点計算方法とそのプログラム | |
JP2001357082A (ja) | 3次元モデル解析装置 | |
US7280108B2 (en) | Bicubic surface rendering | |
US7222057B2 (en) | Topology modeler | |
JPH06176107A (ja) | 距離画像処理方法及び装置 | |
JP2002207777A (ja) | 中立面モデルの生成方法 | |
JP2002117411A (ja) | 曲線描画方法、曲線描画装置および曲線描画プログラムを記録した記録媒体 | |
JP2655056B2 (ja) | テクスチャデータ生成装置 | |
JP2003006552A (ja) | シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム | |
CN112991221B (zh) | 用于对异形定制区域的uv展开图进行矫正的方法及装置 | |
US20030189570A1 (en) | Bicubic surface rendering | |
JP3066060B2 (ja) | ベゼー曲線区間の多角形近似方式 | |
JP3039387B2 (ja) | 3次元cadにおけるb−スプライン曲線と直線との交点算出装置 | |
JP2001076172A (ja) | 曲面発生方法及びその装置並びに記憶媒体 | |
JPH06231261A (ja) | 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム | |
JP2003296378A (ja) | 3次元形状計測装置、3次元形状計測方法、プログラム及び記憶媒体 |