(57)【要約】【課題】複数の直線によって近似する方法によりベジェ曲線を生成する場合には、本来の曲線との誤差が大きくなり、滑らかな曲線が得られないという問題があった。【解決手段】本発明は、ベジェ曲線の分割数に応じて、ベジェ曲線を生成するための制御点の座標に対し、乗算を行うための乗算回路、加算を行うための加算回路、およびビットシフト回路とを備えるベジェ曲線生成回路である。【選択図】図１
2007206944.tif 000002
【特許請求の範囲】
【請求項１】
ベジェ曲線の座標を決定するための演算を、乗算、加算およびビットシフトにより行うことを特徴とするベジェ曲線生成回路。
【請求項２】
ベジェ曲線の分割数に対応した整数値を持つ複数ビットの信号を入力して乗算を行う第一の乗算器と、前記第一の乗算器の演算結果をビットシフトする第一のビットシフト回路と、前記第一のビットシフト回路でビットシフトした信号と整数値を持つ複数ビットの入力信号を入力して乗算を行う第二の乗算器と、前記第二の乗算器の演算結果をビットシフトする第二のビットシフト回路と、前記第二のビットシフト回路でビットシフトした信号と制御点の座標値とを入力して乗算を行う第三の乗算器とからなる複数の演算回路と、
前記複数の演算回路の出力を加算する加算器と、
前記加算器の加算結果をビットシフトする第三のビットシフト回路と、
を備え、
前記複数の演算回路の前記第三の乗算器に複数の制御点の座標値を入力し、前記第一の乗算器及び前記第二の乗算器に分割値に対応した変化する整数値あるいは所定の固定値を入力して、ベジェ曲線のｘ座標及びｙ座標を決定し、第三のビットシフト回路から出力することを特徴とするベジェ曲線生成回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベジェ曲線生成回路に関する。
【背景技術】
【０００２】
従来、ベジェ曲線を生成する場合には、ベジェ曲線を複数の直線によって近似する方法が用いられていた。
【０００３】
例えば、特許文献１には、再帰的に直線近似を行うことによって、ベジェ曲線の直線近似のハードウェア化を可能にし、処理の高速化を図ることが開示されている。
【特許文献１】特開平３−６３８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来の方法によると、ベジェ曲線を複数の直線により近似するため、本来の曲線との誤差が大きくなり、滑らかな曲線が得られないという問題があった。
【０００５】
本発明は以上のような問題点を改善すべくなされたものであり、乗算、加算およびビットシフトによるハードウェア演算によりベジェ曲線を生成することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ベジェ曲線の分割数に応じて、ベジェ曲線を生成するための制御点の座標に対し、乗算を行うための乗算回路、加算を行うための加算回路、およびビットシフト回路とを備えるベジェ曲線生成回路である。
【発明の効果】
【０００７】
本発明におけるベジェ曲線生成回路を用いることにより、ベジェ曲線を精度良く生成することが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、図面に基づき本発明の実施形態であるベジェ曲線生成回路を詳しく説明する。
【実施例１】
【０００９】
実施例１を説明する。まず、本発明におけるベジェ曲線生成回路について、図に基づいて説明する。
【００１０】
本実施例においては、４つの制御点により３次ベジェ曲線を生成する場合について説明する。４つの制御点の座標をＰ０（Ｐｘ（０）、Ｐｙ（０））、Ｐ１（Ｐｘ（１）、Ｐｙ（１））、Ｐ２（Ｐｘ（２）、Ｐｙ（２））、Ｐ３（Ｐｘ（３）、Ｐｙ（３））とし、各座標値は、０から１０２３までの整数値を持つ１０ビットの信号とする。また分割数ｎは４０９５とする。
【００１１】
尚、３次ベジェ曲線は、ｔを［０、１］のパラメータとして、以下の式により計算される。
【数１】
2007206944.tif 000003
図１は、本実施例におけるベジェ曲線生成回路の構成を示したブロック図である。本実施例におけるベジェ曲線生成回路は、第一の乗算器１、第一のビットシフト回路２、第二の乗算器３、第二のビットシフト回路４、第三の乗算器５、第一乗算器６、第一のビットシフト回路７、第二の乗算器８、第二のビットシフト回路９、第三の乗算器１０、第一の乗算器１１、第一のビットシフト回路１２、第二の乗算器１３、第二のビットシフト回路１４、第三の乗算器１５、第一の乗算器１６、第一のビットシフト回路１７、第二の乗算器１８、第二のビットシフト回路１９、第三の乗算器２０、加算器２１、および第三のビットシフト回路２２とを備えている。
【００１２】
第一の乗算器１、第一のビットシフト回路２、第二の乗算器３、第二のビットシフト回路４、第三の乗算器５は、第一の演算回路３１を構成し、第一乗算器６、第一のビットシフト回路７、第二の乗算器８、第二のビットシフト回路９、第三の乗算器１０は、第二の演算回路３２を構成し、第一の乗算器１１、第一のビットシフト回路１２、第二の乗算器１３、第二のビットシフト回路１４、第三の乗算器１５は第三の演算回路３３を構成し、第一の乗算器１６、第一のビットシフト回路１７、第二の乗算器１８、第二のビットシフト回路１９、第三の乗算器２０は第四の演算回路３４を構成する。
【００１３】
入力信号ｉは０から分割数４０９５までの整数値を持つ１２ビットの信号である。このｉを０から４０９５まで変化させ、ベジェ曲線のｘ座標およびｙ座標を計算する。
【００１４】
まずｉ＝０、つまりｎ−ｉ＝４０９５の場合に、ベジェ曲線のｘ座標を計算する。
第一の乗算器１により、ｎ−ｉとｎ−ｉとの乗算を行う。次に第一のビットシフト回路２により、この乗算の結果の値を右に１０ビットシフトさせ、１４ビットの信号とする。次に第二の乗算器３により、この１４ビットの信号とｎ−ｉとの乗算を行う。次に第二のビットシフト回路４により、この乗算の結果の値を右に１２ビットシフトさせ、１４ビットの信号とする。次に第３の乗算器５により、この１４ビットの信号とＰｘ（０）との乗算を行う。
【００１５】
更に第一の乗算器６により、ｎ−ｉとｎ−ｉとの乗算を行う。次に第一のビットシフト回路７により、この乗算の結果の値を右に１０ビットシフトさせ、１４ビットの信号とする。次に第二の乗算器８により、この１４ビットの信号とｉおよび定数３との乗算を行う。次に第二のビットシフト回路９により、この乗算の結果の値を右に１２ビットシフトさせ、１４ビットの信号とする。次に第三の乗算器１０により、この１４ビットの信号とＰｘ（１）との乗算を行う。
【００１６】
更に第一の乗算器１１により、ｎ−ｉとｉとの乗算を行う。次に第二のビットシフト回路１２により、この乗算の結果の値を右に１０ビットシフトさせ、１４ビットの信号とする。次に第二の乗算器１３により、この１４ビットの信号とｉおよび定数３との乗算を行う。次に第二のビットシフト回路１４により、この乗算の結果の値を右に１２ビットシフトさせ、１４ビットの信号とする。次に第三の乗算器１５により、この１４ビットの信号とＰｘ（２）との乗算を行う。
【００１７】
更に第一の乗算器１６により、ｉとｉとの乗算を行う。次に第一のビットシフト回路１７により、この乗算の結果の値を右に１０ビットシフトさせ、１４ビットの信号とする。次に第二の乗算器１８により、この１４ビットの信号とｉとの乗算を行う。次に第二のビットシフト回路１９により、この乗算の結果の値を右に１２ビットシフトさせ、１４ビットの信号とする。次に第三の乗算器２０により、この１４ビットの信号とＰｘ（３）との乗算を行う。
【００１８】
更に加算器２１により、第三の乗算器５、１０、１５、２０の各出力信号、即ち、演算回路３１、３２、３３、３４の各出力信号の加算を行う。次に第三のビットシフト回路２２により、この加算の結果の値を右に１４ビットシフトさせ、ｉ＝０に対応する１０ビットのベジェ曲線のｘ座標Ｂｘ（０）を得る。
【００１９】
次に、ｉを１とし、同様の計算を行い、ｉ＝１に対応する１０ビットのベジェ曲線のｘ座標Ｂｘ（１）を得る。これをｉ＝４０９５まで繰り返し、ベジェ曲線のｘ座標Ｂｘ（ｉ）（ｉ＝０〜４０９５）を得る。
【００２０】
また、ベジェ曲線のｙ座標に対してもｘ座標と同じ計算を行い、ベジェ曲線のｙ座標Ｂｙ（ｉ）（ｉ＝０〜４０９５）を得る。
【００２１】
以上により、得られた点列（Ｂｘ（０）、Ｂｙ（０））、（Ｂｘ（１）、Ｂｙ（１））・・・（Ｂｘ（４０９５）、Ｂｙ（４０９５））が求めるベジェ曲線である。
【００２２】
また、精度が必要な場合には分割数ｎを大きくしたり、回路規模の縮小が必要な場合には逆に分割数ｎを小さくするなどして分割数を制御することにより、ベジェ曲線生成回路の回路規模およびベジェ曲線の精度を調整することができる。
【００２３】
また、同様に、各ビットシフト回路のシフトビット数を適切に変化させることによっても同様の制御をすることができる。また、上記の実施例１では、４つの制御点により３次ベジェ曲線を生成する場合について説明したが、制御点の数を変更し、また、３次に限らず異なる次数のベジェ曲線を生成するように変更することも可能である。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明の実施例１におけるベジェ曲線生成回路の構成を示したブロック図である。
【符号の説明】
【００２５】
１    第一の乗算器
２    第一のビットシフト回路
３    第二の乗算器
４    第二のビットシフト回路
５    第三の乗算器
６    第一の乗算器
７    第一のビットシフト回路
８    第二の乗算器
９    第二のビットシフト回路
１０    第三の乗算器
１１    第一の乗算器
１２    第一のビットシフト回路
１３    第二の乗算器
１４    第二のビットシフト回路
１５    第三の乗算器
１６    第一の乗算器
１７    第一のビットシフト回路
１８    第二の乗算器
１９    第二のビットシフト回路
２０    第三の乗算器
２１    加算器
２２    第三のビットシフト回路
３１    第一の演算回路
３２    第二の演算回路
３３    第三の演算回路
３４    第四の演算回路
【図１】
2007206944.tif 000004