(57)【要約】【課題】描画品質を維持して描画速度を向上できるベジェ曲線描画装置およびその方法を提供する。【解決手段】制御点座標入力部１０は、ベジェ曲線の制御点の座標を取得する。制御点間距離演算部１１は、ベジェ曲線を表示する解像度の最小距離を単位として、ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、ベジェ曲線の制御点間について合計した和を含む値を、ベジェ曲線の長さの指標として算出する。分割数設定部１２は、制御点間距離演算部１１で算出したベジェ曲線の長さの指標に応じて、ベジェ曲線を分割して描画する場合の分割数を設定する。ベジェ分割頂点演算部１６は、分割数設定部１２で設定した分割数に従って、ベジェ曲線を分割した各部分の端点の座標を算出する。【選択図】図２
2010113624.tif 000002
【特許請求の範囲】
【請求項１】
ベジェ曲線の制御点の座標を取得する制御点取得手段と、
前記ベジェ曲線を表示する解像度の最小距離を単位として、前記ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、該ベジェ曲線の制御点間について合計した和を含む値を、前記ベジェ曲線の長さの指標として算出する距離指標算出手段と、
前記長さの指標に応じて、前記ベジェ曲線を分割して描画する場合の分割数を設定する分割数設定手段と、
前記分割数設定手段で設定した分割数に従って、前記ベジェ曲線を分割した各部分の端点の座標を算出する分割点演算手段と、
を備えることを特徴とするベジェ曲線描画装置。
【請求項２】
前記分割数設定手段は、前記長さの指標を２進数で表した場合に、１である最大の桁の桁数に応じて段階的に前記分割数を設定することを特徴とする請求項１に記載のベジェ曲線描画装置。
【請求項３】
前記分割数設定手段は、前記長さの指標が２進数で４桁以下の場合、４桁を超え８桁以下の場合、８桁を超え１０桁以下の場合、および１０桁を超える場合に分けて、それぞれの場合に対応して前記分割数を設定することを特徴とする請求項２に記載のベジェ曲線描画装置。
【請求項４】
前記分割数設定手段は、前記分割数を２のべき乗の数とすることを特徴とする請求項１ないし３のいずれか１項に記載のベジェ曲線描画装置。
【請求項５】
前記分割数設定手段は、前記分割数を８、１６、３２、または６４ののいずれかに設定することを特徴とする請求項４に記載のベジェ曲線描画装置。
【請求項６】
ベジェ曲線の制御点の座標を取得する制御点取得ステップと、
前記ベジェ曲線を表示する解像度の最小距離を単位として、前記ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、該ベジェ曲線の制御点間について合計した和を含む値を、前記ベジェ曲線の長さの指標として算出する距離指標算出ステップと、
前記長さの指標に応じて、前記ベジェ曲線を分割して描画する場合の分割数を設定する分割数設定ステップと、
前記分割数設定手段で設定した分割数に従って、前記ベジェ曲線を分割した各部分の端点の座標を算出する分割点演算ステップと、
を備えることを特徴とするベジェ曲線描画方法。
【請求項７】
前記分割数設定ステップは、前記長さの指標を２進数で表した場合に、１である最大の桁の桁数に応じて段階的に前記分割数を設定することを特徴とする請求項６に記載のベジェ曲線描画方法。
【請求項８】
前記分割数設定ステップは、前記長さの指標が２進数で４桁以下の場合、４桁を超え８桁以下の場合、８桁を超え１０桁以下の場合、および１０桁を超える場合に分けて、それぞれの場合に対応して前記分割数を設定することを特徴とする請求項７に記載のベジェ曲線描画方法。
【請求項９】
前記分割数設定ステップは、前記分割数を２のべき乗の数とすることを特徴とする請求項６ないし８のいずれか１項に記載のベジェ曲線描画方法。
【請求項１０】
前記分割数設定ステップは、前記分割数を８、１６、３２、または６４ののいずれかに設定することを特徴とする請求項９に記載のベジェ曲線描画方法。
【請求項１１】
コンピュータに、
ベジェ曲線の制御点の座標を取得する制御点取得ステップと、
前記ベジェ曲線を表示する解像度の最小距離を単位として、前記ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、該ベジェ曲線の制御点間について合計した和を、前記ベジェ曲線の長さの指標として算出する距離指標算出ステップと、
前記長さの指標に応じて、前記ベジェ曲線を分割して描画する場合の分割数を設定する分割数設定ステップと、
前記分割数設定手段で設定した分割数に従って、前記ベジェ曲線を分割した各部分の端点の座標を算出する分割点演算ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベジェ曲線を表示装置などに描画するベジェ曲線描画装置、ベジェ曲線描画方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータ上で滑らかな曲線を書く場合にベジェ曲線を利用することが多い。任意の曲線を複数のベジェ曲線で近似して滑らかに表示することができる。ベジェ曲線はベクターグラフィクス、とりわけ文字の描画に用いられる。
【０００３】
実際にコンピュータの画面上にベジェ曲線を表示する場合、ベジェ曲線を分割して各部分を線分で近似した折れ線で描くことが行われている。この分割数を決める方法がいくつか提案されている。例えば、特許文献１は、ベジェ曲線の制御点列を用いて当該ベジェ曲線を折れ線近似し、近似された折れ線データの描画を行う構成とする。折れ線近似は、再分割を行うか否かを評価し、再分割が必要と評価された場合にのみ対象となる曲線を再分割する。そして、折れ線近似は、再帰的に実行される。また、再分割を行うか否かの評価は、ベジェ曲線の弦長さ見積値と、ベジェ曲線の弧長さ見積値とを評価基準として利用する。
【０００４】
特許文献２の方法では、標準形のセグメントに対し、２制御点の中点と始点終点を結ぶ直線との距離が許容値以下になるまで再帰的に分割を行い、前記距離が許容値以下になった場合は、当該セグメントを線分近似する。また、特許文献３では、３次のベジェ曲線を予め２分割し、第１および第２のベジェ曲線とする。次いで各ベジェ曲線について、誤差判定ステップと分割ステップからなる直線近似処理を再帰的に繰り返し、最終的に得られた各ベジェ曲線の各定義多角形の外郭辺を元のベジェ曲線の近似直線群とする。
【０００５】
ベジェ曲線を折れ線近似する各分割の近似度を評価して再帰的に分割する方法以外に、特許文献４の方法では、ベジェ曲線を決定する座標点の間の距離の和に比例して、そのベジェ曲線を直線近似する際の近似直線の数であるサンプリング数を決定する。
【０００６】
【特許文献１】特開２００２−１１７４１１号公報
【特許文献２】特開平１１−２０３４８９号公報
【特許文献３】特開平１０−１９８８１１号公報
【特許文献４】特開平０２−１２６３７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ベジェ曲線を表示装置などに描画する場合、ベジェ曲線を複数の部分に分割して、分割する点を結ぶ線分で近似して表示する方法が用いられている。ベジェ曲線を複数の線分に分割して表示する方法では、ベジェ曲線の大きさに関わらず分割数を一定にしてしまうと、形状の小さいベジェ曲線では過剰な分割数となり演算処理量に比較して表示された曲線の滑らかさの向上効果が小さく、分割数が多いため描画速度が低下する。一方、形状の大きいベジェ曲線に関しては、分割数が不足するといったケースが発生し、結果描画品質として満足できないものとなってしまう。
【０００８】
しかし、前述の各分割の近似度を評価して再帰的に分割する方法では、ベジェ曲線の形状に応じた滑らかな表示を得ることができるが、近似度の評価の演算処理に距離の評価が必要であり、分割数に比例して演算処理量が増大する。また、特許文献４の方法では、制御点間の距離を計算するために、２乗と平方根の計算が必要である。
【０００９】
本発明は上述の事情に鑑みてなされたもので、描画品質を維持して描画速度を向上できるベジェ曲線描画装置およびその方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の観点に係るベジェ曲線描画装置は、
ベジェ曲線の制御点の座標を取得する制御点取得手段と、
前記ベジェ曲線を表示する解像度の最小距離を単位として、前記ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、該ベジェ曲線の制御点間について合計した和を含む値を、前記ベジェ曲線の長さの指標として算出する距離指標算出手段と、
前記長さの指標に応じて、前記ベジェ曲線を分割して描画する場合の分割数を設定する分割数設定手段と、
前記分割数設定手段で設定した分割数に従って、前記ベジェ曲線を分割した各部分の端点の座標を算出する分割点演算手段と、
を備えることを特徴とする。
【００１１】
本発明の第２の観点に係るベジェ曲線描画方法は、
ベジェ曲線の制御点の座標を取得する制御点取得ステップと、
前記ベジェ曲線を表示する解像度の最小距離を単位として、前記ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、該ベジェ曲線の制御点間について合計した和を含む値を、前記ベジェ曲線の長さの指標として算出する距離指標算出ステップと、
前記長さの指標に応じて、前記ベジェ曲線を分割して描画する場合の分割数を設定する分割数設定ステップと、
前記分割数設定手段で設定した分割数に従って、前記ベジェ曲線を分割した各部分の端点の座標を算出する分割点演算ステップと、
を備えることを特徴とする。
【００１２】
本発明の第３の観点に係るプログラムは、コンピュータに、
ベジェ曲線の制御点の座標を取得する制御点取得ステップと、
前記ベジェ曲線を表示する解像度の最小距離を単位として、前記ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、該ベジェ曲線の制御点間について合計した和を、前記ベジェ曲線の長さの指標として算出する距離指標算出ステップと、
前記長さの指標に応じて、前記ベジェ曲線を分割して描画する場合の分割数を設定する分割数設定ステップと、
前記分割数設定手段で設定した分割数に従って、前記ベジェ曲線を分割した各部分の端点の座標を算出する分割点演算ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ベジェ曲線の大きさに応じて分割数を設定するので、形状が小さいベジェ曲線では、画質を維持しながら演算処理量を削減し、形状が大きいベジェ曲線では適切な演算処理量で画質を向上させることができる。その結果、描画品質を維持して描画速度を向上できる。
【発明を実施するための最良の形態】
【００１４】
ベクターグラフィックで用いられる滑らかな曲線を描く場合にベジェ曲線が利用される。図１を用いてベジェ曲線の概略を説明する。ベクターグラフィックの曲線描画では、主に２次ベジェ曲線１０１、３次ベジェ曲線１０２が利用される。２次ベジェ曲線１０１はｔを媒介変数として次の式（１）で表される。
ｘ ＝ ｘ0・（1 − ｔ）２ ＋ 2・ｘ1・（1 − ｔ）・ｔ ＋ ｘ2・ｔ２
ｙ ＝ ｙ0・（1 − ｔ）２ ＋ 2・ｙ1・（1 − ｔ）・ｔ ＋ ｙ2・ｔ２
0 ≦ ｔ ≦ 1                                                    （１）
２次ベジェ曲線１０１の制御点の座標は、（ｘ0，ｙ0）、（ｘ1，ｙ1）、（ｘ2，ｙ2）で与えられる。媒介変数ｔの値を０から１まで変化させることにより、２次ベジェ曲線１０１が得られる。
【００１５】
また、３次ベジェ曲線１０２は次の式（２）で表される。
ｘ ＝ ｘ0・（1 − ｔ）３ ＋ 3・ｘ1・（1 − ｔ）２・ｔ
＋ 3・ｘ2・（1 − ｔ）・ｔ２ ＋ ｘ3・ｔ３
ｙ ＝ ｙ0・（1 − ｔ）３ ＋ 3・ｙ1・（1 − ｔ）２・ｔ
＋ 3・ｙ2・（1 − ｔ）・ｔ２ ＋ ｙ3・ｔ３
0 ≦ ｔ ≦ 1                                                    （２）
３次ベジェ曲線１０２の制御点の座標は、（ｘ0，ｙ0）、（ｘ1，ｙ1）、（ｘ2，ｙ2）、（ｘ3，ｙ3）で与えられる。媒介変数ｔの値を０から１まで変化させることにより、３次ベジェ曲線１０２が得られる。
【００１６】
図２は、本発明の実施の形態に係る描画装置の構成例を示すブロック図である。ベジェ曲線描画装置１は、制御点座標入力部１０、制御点間距離演算部１１、分割数設定部１２およびベジェ分割頂点演算部１６を備える。分割数設定部１２は、ベジェ分割テーブル１２ａを含む。
【００１７】
図３は、ベジェ曲線描画装置を含む描画装置の構成例を示すブロック図である。描画装置１００は、ベジェ曲線描画装置１、座標変換１０３、輪郭生成１０４、アンチエイリアス回路１０５、アウトラインバッファ１０６、マスク生成１０７、塗りつぶし１０８、合成部１０９、ディザー１１０、イメージバッファ１１１、フィルタ１１２および色変換１１３から構成される。ベジェ曲線描画装置１は描画装置１００のうち、ベジェ曲線を規定する制御点の座標からベジェ曲線を折れ線近似する分割点の座標を演算する部分である。図２の線分描画部１８は、図３の座標変換１０３以降に相当する。
【００１８】
描画装置１００の処理の概要を説明する。ベジェ曲線描画装置１が、ベジェ曲線を折れ線近似する分割点の座標を出力すると、座標変換１０３は分割点の座標を、表示する画面全体の中の座標に変換する。輪郭生成１０４は、分割点の座標から各線分が通る画素をアウトラインバッファ１０６に設定する。表示する解像度に応じて、アンチエイリアシング処理を行い、輪郭データからマスクデータを生成する。そして、マスクデータに従って、塗りつぶし処理を行う。
【００１９】
一方、ビットマップなどの画素ごとの色および輝度のデータで表された画像データと重ね合わせる場合に、その画像データはイメージバッファ１１１に設定される。画像データはフィルタ１１２でエッジ強調、特異点除去などの処理が施されて、表示装置に合わせて色変換したのち、輪郭データから生成された画像と合成される。最後に、画面で見やすいようにディザー効果をかけて、描画データ１９（図２）を生成する。
【００２０】
図２に戻って、ベジェ曲線描画装置１の構成を説明する。制御点座標入力部１０は、ベジェ曲線の制御点の座標を入力する。制御点の組で表されるベジェ曲線は、図示しないベジェ曲線生成部で生成されるか、または、別の装置からデータで与えられる。
【００２１】
制御点間距離演算部１１は、制御点座標入力部１０で入力されたベジェ曲線の制御点の座標から、ベジェ曲線の長さの指標である距離パラメータ１３を算出する。制御点間距離演算部１１は、算出した距離パラメータ１３を分割数設定部１２に入力する。分割数設定部１２は、距離パラメータ１３を受け取ると、距離パラメータ１３に応じた分割数１４をベジェ分割頂点演算部１６に出力する。この分割数１４は、ベジェ曲線の式の媒介変数ｔの分割数を決定するのに用いられる。
【００２２】
距離パラメータ１３は、ベジェ曲線を表示するときの、折れ線で近似する分割数を設定するための値であって、ベジェ曲線の長さの指標である。ベジェ曲線の折れ線近似の分割数は、同じ制御点座標のベジェ曲線であっても、表示する解像度によって変化する。したがって、距離パラメータ１３は、ベジェ曲線を表示する解像度の最小距離を単位として算出する。制御点座標入力部１０は、制御点座標を表示解像度に換算する尺度を入力する。そして、制御点間距離演算部１１は、制御点座標を尺度で換算して、表示する解像度の最小距離を単位として距離パラメータ１３を算出する。または、あらかじめ表示する解像度に換算された制御点座標が与えられてもよい。以下では、制御点座標を表示解像度に換算されたものとして説明する。
【００２３】
制御点間距離演算部１１は、ベジェ分割頂点演算部１６に座標パラメータ１５を出力する。この座標パラメータ１５は、制御点の座標と同一である。ベジェ分割頂点演算部１６は、座標パラメータ１５および分割数１４を用いて、ベジェ曲線を線分パラメータ１７に分割する。この線分パラメータ１７を線分描画部１８に出力することにより、ベジェ曲線を表示装置に表示するための描画データ１９が得られる。
【００２４】
制御点間距離演算部１１では、距離パラメータ１３を以下のように演算する。ベジェ曲線の長さは、制御点の間の距離の和に概ね比例すると考えられる。さらに、制御点の間の距離は、隣り合う制御点のｘ座標の差とｙ座標の差のいずれか大きい方で評価できる。そこで、隣り合う制御点のｘ座標の差の絶対値（水平距離）とｙ座標の差の絶対値（垂直距離）のいずれか大きい方を、制御点間について合計した値を、距離パラメータ１３として演算する。すなわち、数式で記述すれば、以下のように表せる。
【００２５】
距離パラメータ１３をＬとして、２次のベジェ曲線の場合は、
Ｌ01 ＝ ｍａｘ（｜ｘ0 − ｘ1｜，｜ｙ0 − ｙ1｜）
Ｌ12 ＝ ｍａｘ（｜ｘ1 − ｘ2｜，｜ｙ1 − ｙ2｜）
Ｌ ＝ Ｌ01 ＋ Ｌ12
である。
【００２６】
３次のベジェ曲線の場合の距離パラメータ１３（Ｌ）は、
Ｌ01 ＝ ｍａｘ（｜ｘ0 − ｘ1｜，｜ｙ0 − ｙ1｜）
Ｌ12 ＝ ｍａｘ（｜ｘ1 − ｘ2｜，｜ｙ1 − ｙ2｜）
Ｌ23 ＝ ｍａｘ（｜ｘ2 − ｘ3｜，｜ｙ2 − ｙ3｜）
Ｌ ＝ Ｌ01 ＋ Ｌ12 ＋ Ｌ23
である。
【００２７】
一般に、ｎ次のベジェ曲線の距離パラメータ１３（Ｌ）は、
Ｌ01 ＝ ｍａｘ（｜ｘ0 − ｘ1｜，｜ｙ0 − ｙ1｜）
Ｌ12 ＝ ｍａｘ（｜ｘ1 − ｘ2｜，｜ｙ1 − ｙ2｜）
・・・
Ｌn-1n ＝ ｍａｘ（｜ｘn-1 − ｘn｜，｜ｙn-1 − ｙn｜）
Ｌ ＝ Ｌ01 ＋ Ｌ12 ＋ ・・・ ＋ Ｌn-1n
と表される。
【００２８】
上述の距離パラメータ１３（Ｌ）は、制御点間のユークリッド距離の合計より小さい値になっているが、距離パラメータ１３（Ｌ）は概ねベジェ曲線の大きさを表しているので、距離パラメータ１３（Ｌ）に対応する分割数をうまく調節することによって、ベジェ曲線の表示品質を保って折れ線近似できる。
【００２９】
算出された距離パラメータ１３（Ｌ）は、分割数設定部１２に入力される。分割数設定部１２は、ベジェ分割テーブル１２ａを参照して、分割数を算出する。この分割数は、ベジェ曲線の媒介変数ｔの値の分割数として利用される。
【００３０】
図４は、距離パラメータ１３（Ｌ）から分割数を設定する一例を示す図である。図４に示すように、距離パラメータ１３（Ｌ）を２のべき乗の数値で区切って、その段階ごとに分割数を設定する。言い換えれば、距離パラメータ１３（Ｌ）を２進数で表した場合に、１である最大の桁の桁数に応じて段階的に分割数を設定する。
【００３１】
図４の例では、距離パラメータ１３が２進数で４桁以下（０≦Ｌ＜１６）の場合、４桁を超え８桁以下（１６≦Ｌ＜２５６）の場合、８桁を超え１０桁以下（２５６≦Ｌ＜１０２４）の場合、および１０桁を超える（１０２４≦Ｌ）場合に分けて、それぞれの場合に対応して分割数を設定する。図４の例は、表示画面横幅の解像度の最大値を２０４８とした場合に、その１／２（２０４８・１／２＝１０２４）で区切り、次は１／２の２乗の１／４（１０２４・１／４＝２５６）で区切っている。さらに同様にして、１／４の２乗の１／１６（２５６・１／１６＝１６）で区切っている。
【００３２】
図４の例ではさらに、分割数を２のべき乗に設定する。すなわち、距離パラメータ１３が２進数で
４桁以下（０≦Ｌ＜１６）の場合は、分割数を２３＝８に、
４桁を超え８桁以下（１６≦Ｌ＜２５６）の場合は、２４＝１６に、
８桁を超え１０桁以下（２５６≦Ｌ＜１０２４）の場合は、２５＝３２に、および、
１０桁を超える（１０２４≦Ｌ）場合は、２６＝６４に設定する。
【００３３】
距離パラメータ１３の段階と分割数を２のべき乗とすることにより、分割数設定部１２の演算処理が極めて簡単になる。これらの演算は、ビットシフトとビットの論理演算でできるので、回路で実装する場合にも極めて簡単である。また、人間の感覚はおおよそ対数関数的であって、以上のようにべき乗で段階と分割数を設定すると、感覚的に均一なスケールが得られる。
【００３４】
分割数設定部１２は、分割数１４をベジェ分割頂点演算部１６に出力する。ベジェ分割頂点演算部１６は、与えられた座標パラメータ１５および分割数１４により線分パラメータ１７の算出を行う。
【００３５】
図５を参照して、分割数が２３＝８、および分割数が２４＝１６の場合を例に説明する。分割数が２３のとき、ベジェ分割頂点演算部１６では、２３＋１回＝合計９回の演算を行う。媒介変数ｔの最小値および最大値は、必ず０および１となる。媒介変数ｔを増加させるたびに、図１のベジェ曲線の演算を行い、それぞれの媒介変数ｔの値に対する座標（ｘ，ｙ）を算出する。ここで、分割数を２のべき乗に設定すると、媒介変数ｔの値は、２進数のカウンタで演算することができる。
【００３６】
分割数が２４＝１６の場合は、ｔの入力回数（合計１７回）にしたがって、それぞれ図１の式により（ｘ，ｙ）が合計１７回算出される。この（ｘ，ｙ）を線分描画部１８で直線につなげたものが描画データ１９となる。ここでも、分割数が２のべき乗に設定されているので、媒介変数ｔの値は、２進数のカウンタで演算することができる。
【００３７】
図６は、本実施の形態に係るベジェ曲線分割処理の動作の一例を示すフローチャートである。図６のベジェ曲線分割処理は、描画処理の中でベジェ曲線を読み込むごとに起動される。ベジェ曲線分割処理が起動されると、制御点座標入力部１０は、そのベジェ曲線の制御点の座標を入力する（ステップＳ１）。前述のとおり、同時に制御点座標を表示解像度に換算する尺度を入力する。
【００３８】
制御点間距離演算部１１は、制御点座標を表示解像度の尺度に変換して、隣り合う制御点のｘ座標の差の絶対値（水平距離）とｙ座標の差の絶対値（垂直距離）のいずれか大きい方を、制御点間について合計した値を、距離パラメータ１３として演算する（ステップＳ２）。そして、距離パラメータ１３を分割数設定部１２に入力する。同時に、ベジェ曲線の制御点の座標である座標パラメータ１５をベジェ分割頂点演算部１６に入力する。
【００３９】
分割数設定部１２は、例えば図４に示すようなベジェ分割テーブル１２ａを参照して、距離パラメータ１３からベジェ曲線の分割数１４を設定する（ステップＳ３）。距離パラメータ１３を２のべき乗の数値で区切る場合には、２進数で表した距離パラメータ１３の桁数で判定できる。また、分割数が２のべき乗の場合は、分割数を２進数のいずれかのビットを１にすることになる。分割数設定部１２は、設定した分割数１４をベジェ分割頂点演算部１６に入力する。
【００４０】
ベジェ分割頂点演算部１６は、分割数１４と座標パラメータ１５から、ベジェ曲線の媒介変数ｔの定義域を分割数の区間に分割して、各端点（折れ線頂点）のｘ座標とｙ座標を演算する（ステップＳ４）。ベジェ分割頂点演算部１６は、ベジェ曲線を近似する折れ線の各頂点の座標を、線分描画部１８に送って１つのベジェ曲線の分割処理を終了する。
【００４１】
本実施の形態のベジェ曲線描画装置１によれば、ベジェ曲線の制御点の間の距離に応じたパラメータ（指標）に基づいて、ベジェ曲線を描画するための分割数が設定される。そして、小さいベジェ曲線では分割数を少なく、大きいベジェ曲線は分割数を多く設定することができる。
【００４２】
なお、実施の形態の例に挙げた距離パラメータ１３の段階の数値および分割数の数値は、好ましい例であって、表示する画面の大きさ、解像度、およびベジェ曲線に合わせて任意に設定することができる。例えば、ベジェ曲線を印刷する場合には、その解像度に合わせて、距離パラメータ１３の段階とその区切りの数値、および分割数を変更することが望ましい。
【００４３】
また、ｘ座標の差の絶対値とｙ座標の差の絶対値の和を、制御点間について合計した値を距離パラメータとすることもできる。その場合は、距離パラメータは、制御点間のユークリッド距離の合計より大きい値になっているが、距離パラメータに対応する分割数をうまく調節することによって、ベジェ曲線の表示品質を保って折れ線近似できる。この場合は、ｘ座標の差とｙ座標の差を比較して判断する必要がない。
【００４４】
図７は、ベジェ曲線描画装置１をコンピュータに実装する場合の、物理的な構成の一例を示すブロック図である。本実施の形態に係るベジェ曲線描画装置１は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができる。ベジェ曲線描画装置１は、図７に示すように、制御部２１、主記憶部２２、外部記憶部２３、操作部２４、表示部２５および入出力部２６を備える。主記憶部２２、外部記憶部２３、操作部２４、表示部２５および入出力部２６はいずれも内部バス２０を介して制御部２１に接続されている。
【００４５】
制御部２１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部２３に記憶されているプログラム３０に従って、ベジェ曲線を描画するための処理を実行する。
【００４６】
主記憶部２２はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部２３に記憶されているプログラム３０をロードし、制御部２１の作業領域として用いられる。上述のベジェ分割テーブル１２ａは、外部記憶部２３からロードされて主記憶部２２の中に構成される。
【００４７】
外部記憶部２３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、前記の処理を制御部２１に行わせるためのプログラム３０を予め記憶し、また、制御部２１の指示に従って、このプログラム３０が記憶するデータを制御部２１に供給し、制御部２１から供給されたデータを記憶する。
【００４８】
操作部２４はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス２０に接続するインターフェース装置から構成されている。操作部２４を介して、ベジェ曲線を含む画像データの作成、入力、送受信などの指示、表示する画像の指定、描画領域の範囲、拡大率、描画領域の表示装置における位置などが入力され、制御部２１に供給される。
【００４９】
表示部２５は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、描画された画像を表示する。
【００５０】
入出力部２６は、無線送受信機、無線モデムまたは網終端装置、およびそれらと接続するシリアルインタフェースまたはＬＡＮ（Local Area Network）インタフェース等から構成されている。入出力部２６を介して、ベジェ曲線を含む画像データを受信し、また送信できる。
【００５１】
本発明によるベジェ曲線描画装置１は、上記のベジェ曲線を描画する機能を実現する回路を組み込んだＬＳＩ（Large Scale Integration）等のハードウェア部品から構成される回路を実装して、電子回路として構成することができる。また、上記の各機能を行うベジェ曲線描画プログラムを、コンピュータ処理装置上の制御部２１で実行することにより、ソフトウェア的にベジェ曲線描画装置１を実現することができる。その場合、制御部２１のＣＰＵは、外部記憶部２３に格納されているプログラム３０を、主記憶部２２にロードして実行し、各部の動作を制御して上記の各機能を行わせることによって、ベジェ曲線描画装置１の処理を実行する。
【００５２】
上述のとおり、本実施の形態のベジェ曲線描画装置１では、ベジェ曲線の分割数を算出する処理は、単純な加減算、ビットシフトおよび論理演算で構成できる。媒介変数ｔの算出までに乗算および除算は現れない。したがって、演算処理および回路が簡単に構成できて、ベジェ曲線描画の演算処理を高速に行うことができる。
【００５３】
以上に説明したように、本実施の形態のベジェ曲線描画装置１によれば、以下に記載するような効果を奏する。
第１の効果は、制御点間距離演算部で、ベジェ曲線の距離パラメータを算出することにより、ベジェ曲線の線分分割数を動的に変更できる。これにより、サイズの比較的小さいベジェ曲線では、分割数を減らすことにより、ベジェ分割頂点演算部の処理回数を減らすことができ、サイズの比較的多いベジェ曲線では、分割数を増やすことにより、描画されるベジェ曲線の品質を向上できる。
【００５４】
第２の効果は、制御点間距離演算部の処理を簡易にすることによりハードウェアでの処理回路を小さくできる。ベジェ曲線の隣り合う制御点の間の水平方向の距離または垂直方向の距離のいずれか大きい方を、ベジェ曲線の制御点間について合計した和を含む値を、ベジェ曲線の長さの指標として算出するので、ベジェ曲線の大きさの指標の演算が簡単である。さらに、長さの指標を２のべき乗の数で区切って、段階的に分割数を設定するので、分割数を設定する演算が簡単である。
【００５５】
第３の効果は、分割数を２のべき乗にすることにより、ベジェ曲線の媒介変数ｔの増分が２進数の１桁で表現しやすい形式となり、演算回路をハードウェアに実装しやすい。
第４の効果は、分割数の設定値が可変であることが挙げられる。要求される描画性能や描画品質に応じて、ベジェ曲線の分割数を変更することが容易である。
【００５６】
その他、本発明の好適な変形として、以下の構成が含まれる。
【００５７】
本発明の第１の観点に係るベジェ曲線描画装置について、
好ましくは、前記分割数設定手段は、前記長さの指標を２進数で表した場合に、１である最大の桁の桁数に応じて段階的に前記分割数を設定することを特徴とする。
【００５８】
好ましくは、前記分割数設定手段は、前記長さの指標が２進数で４桁以下の場合、４桁を超え８桁以下の場合、８桁を超え１０桁以下の場合、および１０桁を超える場合に分けて、それぞれの場合に対応して前記分割数を設定することを特徴とする。
【００５９】
好ましくは、前記分割数設定手段は、前記分割数を２のべき乗の数とすることを特徴とする。
【００６０】
さらに好ましくは、前記分割数設定手段は、前記分割数を８、１６、３２、または６４ののいずれかに設定することを特徴とする。
【００６１】
本発明の第２の観点に係るベジェ曲線描画方法について、
好ましくは、前記分割数設定ステップは、前記長さの指標を２進数で表した場合に、１である最大の桁の桁数に応じて段階的に前記分割数を設定することを特徴とする。
【００６２】
好ましくは、前記分割数設定ステップは、前記長さの指標が２進数で４桁以下の場合、４桁を超え８桁以下の場合、８桁を超え１０桁以下の場合、および１０桁を超える場合に分けて、それぞれの場合に対応して前記分割数を設定することを特徴とする。
【００６３】
好ましくは、前記分割数設定ステップは、前記分割数を２のべき乗の数とすることを特徴とする。
【００６４】
さらに好ましくは、前記分割数設定ステップは、前記分割数を８、１６、３２、または６４ののいずれかに設定することを特徴とする。
【００６５】
その他、前記のハードウエェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００６６】
制御部２１、主記憶部２２、外部記憶部２３、操作部２４、入出力部２６および内部バス２０などから構成されるベジェ曲線描画装置１の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するベジェ曲線描画装置１を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでベジェ曲線描画装置１を構成してもよい。
【００６７】
また、ベジェ曲線描画装置１の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００６８】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【００６９】
【図１】ベジェ曲線を説明する図である。
【図２】本発明の実施の形態に係るベジェ曲線描画装置の構成例を示すブロック図である。
【図３】ベジェ曲線描画装置を含む描画装置の構成例を示すブロック図である。
【図４】分割数を設定する一例を示す図である。
【図５】ベジェ曲線を分割して計算するパラメータの一例を示す図である。
【図６】実施の形態に係るベジェ曲線分割処理の動作の一例を示すフローチャートである。
【図７】ベジェ曲線描画装置をコンピュータに実装する場合の、物理的な構成の一例を示すブロック図である。
【符号の説明】
【００７０】
１    ベジェ曲線描画装置
１０    制御点座標入力部
１１    制御点間距離演算部
１２    分割数設定部
１２ａ  ベジェ分割テーブル
１６    ベジェ分割頂点演算部
１８    線分描画部
２１    制御部
２２    主記憶部
２３    外部記憶部
２４    操作部
２５    表示部
２６    入出力部
３０    プログラム
【図１】
2010113624.tif 000003
【図２】
2010113624.tif 000004
【図３】
2010113624.tif 000005
【図４】
2010113624.tif 000006
【図５】
2010113624.tif 000007
【図６】
2010113624.tif 000008
【図７】
2010113624.tif 000009