(57)【要約】   【課題】  ユーザの入力に対して迅速に追従し、かつ、滑らかな曲線を描画する。  【解決手段】  入力された複数の点列に基づいて、補間された点を生成して表示装置１６の画面上に描画する描画装置１０は、入力された点列を構成する各サンプル点の座標値を取得する点列データ取得部３１と、取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化処理部３３と、  表示装置１６の画面上において補間された座標値に応答する位置に点を描画する描画処理部３５手段と、を備える。【選択図】  図３
2011022685.tif 000002
【特許請求の範囲】
【請求項１】
入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画する描画装置であって、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段と、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段と、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段と、を備えたことを特徴とする描画装置。
【請求項２】
前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されたことを特徴とする請求項１に記載の描画装置。
【請求項３】
前記描画手段が、前記補間された座標値に応答する位置の点の所定の一部を重ね合わせるように構成されたことを特徴とする請求項２に記載の描画装置。
【請求項４】
前記描画手段が、前記補間された座標値に応答する位置の点を所定の透明度にて重ねあわせるように構成されたことを特徴とする請求項２または３に記載の描画装置。
【請求項５】
前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されたことを特徴とする請求項１ないし４の何れか一項に記載の描画装置。
【請求項６】
前記補間・平滑化手段が、前記取得された座標値に基づき、Ｂ−スプライン関数の積和演算として、
【数９】
2011022685.tif 000011
（ただし、Ｘｉ，Ｙｉは、それぞれ、入力された点列中、第ｉ番の点のＸ座標およびＹ座標であり、Ｂｉ，Ｋ（ｔ）は、（Ｋ−１）次のＢ−スプラインである。また、パラメータｔは、ｉ番目の座標値に対して、ｉ≦ｔ＜ｉ＋１（ｉ＝０，１，・・・，Ｎ−２）の範囲の値をとる。）を実行し、補間された座標値（Ｘ（ｔ）、Ｙ（ｔ））を算出することを特徴とする請求項１ないし４の何れか一項に記載の描画装置。
【請求項７】
前記補間・平滑化手段が、前記取得された座標値に基づき、Ｂ−スプライン関数の積和演算として、
【数１０】
2011022685.tif 000012
（ただし、Ｘｉ，Ｙｉ，Ｐｉは、それぞれ、入力された点列中、第ｉ番の点のＸ座標、Ｙ座標および筆圧を示す値であり、Ｂｉ，Ｋ（ｔ）は、（Ｋ−１）次のＢ−スプラインである。また、パラメータｔは、ｉ番目の座標値に対して、ｉ≦ｔ＜ｉ＋１（ｉ＝０，１，・・・，Ｎ−２）の範囲の値をとる。）を実行し、補間された座標値（Ｘ（ｔ）、Ｙ（ｔ））および筆圧を示す値Ｐ（ｔ）を算出することを特徴とする請求項５に記載の描画装置。
【請求項８】
前記座標値取得手段が、前記入力したサンプル点の所定範囲に他のサンプル点が存在する場合には、上記入力したサンプル点を、取得するサンプル点から除外するように構成されたことを特徴とする請求項１ないし６の何れか一項に記載の描画装置。
【請求項９】
前記描画手段が、補間された座標値が示す点の所定範囲に、他の補間された座標値が示す点が存在する場合には、当該補間された座標値が示す点を描画対象から除外するように構成されたことを特徴とする請求項１ないし８の何れか一項に記載の描画装置。
【請求項１０】
入力装置および表示装置を備えたコンピュータにおいて、入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画するための描画プログラムであって、前記コンピュータを、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段、並びに、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段、として機能させることを特徴とする描画プログラム。
【請求項１１】
前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されたことを特徴とする請求項１０に記載の描画プログラム。
【請求項１２】
前記描画手段が、前記補間された座標値に応答する位置の点の所定の一部を重ね合わせるように構成されたことを特徴とする請求項１１に記載の描画プログラム。
【請求項１３】
前記描画手段が、前記補間された座標値に応答する位置の点を所定の透明度にて重ねあわせるように構成されたことを特徴とする請求項１１または１２に記載の描画プログラム。
【請求項１４】
前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されたことを特徴とする請求項１０ないし１３の何れか一項に記載の描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タブレットペンなどによる入力に基づく描画を作成する描画装置および描画プログラムに関する。
【背景技術】
【０００２】
現在、タブレットペンとタブレットとの間の電磁誘導などにより、タブレットペンのタブレット上の位置情報（座標値）などを取得する技術が知られている。これを応用して、タブレットペンの動きに応じて、表示装置の画面上に描画する描画装置が提案されている。たとえば、特許文献１には、ユーザが望むような線幅を修正して表示する技術、特許文献２には、自然な毛筆画を表示する技術、特許文献３には、筆圧値に応じた描画を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１８１５１５号公報
【特許文献２】特開２００４−１３９４１１号公報
【特許文献３】特開２００２−１９６８７８号公報
【非特許文献】
【０００４】
【非特許文献１】「Ｃによるスプライン関数  データ解析ＣＧ 微分方程式」桜井明監修、菅野敬祐、吉村和美、高山文雄著、東京電機大学出版局、１９９３年発行
【非特許文献２】「Ｂｅｒｎｓｔｅｉｎ−Ｂｅｚｉｅｒ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ  ｆｏｒ  Ｆｒｅｅ−Ｆｏｒｍ  Ｃｕｒｖｅｓ  ａｎｄ  Ｓｕｒｆａｃｅ」  Ｗｉｌｌｉａｍ  Ｊ．  Ｇｏｒｄｏｎ，Ｒｉｃｈａｒｄ  Ｆ．ＲｉｅｓｅｎＦｅｌｄ著、Ｊｏｕｒｎａｌ  ｏｆ  ｔｈｅ  Ａｓｓｏｃｉａｔｉｏｎ  ｆｏｒ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｒｙ，  Ｖｏｌ．  ２１，  Ｎｏ．２，  Ａｐｒｉｌ  １９７４、１９７４年４月発行
【発明の概要】
【発明が解決しようとする課題】
【０００５】
また、上記タブレット上の位置情報は、点列を構成する点の座標値、つまり、離散値として与えられる。したがって、離散値の間を滑らかにつなぐ補間技術が必要となる。このような補間技術して、スプラインが良く知られている（たとえば、非特許文献１）。たとえば、Ｂ−スプラインにおいては、離散的な点列の間をつなぐために（Ｋ−１）次のＢ−スプラインＢｉ，Ｋ（ｘ）を適用した、（Ｋ−１）次のスプライン関数
Ｓ（ｘ）＝ΣαｉＢｉ，Ｋ（ｘ）
が利用される。より具体的には、与えられたデータ点（ｘｉ，ｙｉ）（ｉ＝０，１，・・・，Ｎ−１）に対して、  ｙｉ＝Ｓ（ｘｉ）を満足するようなαｉを決定する。αｉを決定するには、入力された点列が確定している必要がある。したがって、スプラインを用いた補間においては、追従性が悪い、つまり、描画までに時間を要するという問題点があった。
【０００６】
さらに、従来の描画においては、スプラインなどを用いて得られた補間された点の間を直線でつないでいる。つまり、補間された点も表示画面上においては離散された点であるため、その間をさらに直線で結んでいる。したがって、滑らかな曲線を再現することが難しいという問題点もあった。
【０００７】
本発明は、ユーザの入力に対して迅速に追従する描画装置および描画プログラムを提供することを目的とする。また、本発明は、滑らかな曲線を描画することができる描画装置および描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的は、入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画する描画装置であって、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段と、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段と、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段と、を備えたことを特徴とする描画装置により達成される。
【０００９】
好ましい実施態様においては、前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されている。
【００１０】
より好ましい実施態様においては、前記補間された座標値に応答する位置の点を部分的に重ね合わせる。
【００１１】
また別の好ましい実施態様においては、前記補間された座標値に応答する位置の点を透明度を持って重畳する。
【００１２】
別の好ましい実施態様においては、前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されている。
【００１３】
より好ましい実施態様においては、前記補間・平滑化手段が、前記取得された座標値に基づき、Ｂ−スプライン関数の積和演算として、
【００１４】
【数１】
2011022685.tif 000003
（ただし、Ｘｉ，Ｙｉは、それぞれ、入力された点列中、第ｉ番の点のＸ座標およびＹ座標であり、Ｂｉ，Ｋ（ｔ）は、（Ｋ−１）次のＢ−スプラインである。また、パラメータｔは、ｉ番目の座標値に対して、ｉ≦ｔ＜ｉ＋１（ｉ＝０，１，・・・，Ｎ−２）の範囲の値をとる。）を実行し、補間された座標値（Ｘ（ｔ）、Ｙ（ｔ））を算出する。
【００１５】
さらに別の好ましい実施態様においては、前記補間・平滑化手段が、前記取得された座標値に基づき、Ｂ−スプライン関数の積和演算として、
【００１６】
【数２】
2011022685.tif 000004
（ただし、Ｘｉ，Ｙｉ，Ｐｉは、それぞれ、入力された点列中、第ｉ番の点のＸ座標、Ｙ座標および筆圧を示す値であり、Ｂｉ，Ｋ（ｔ）は、（Ｋ−１）次のＢ−スプラインである。また、パラメータｔは、ｉ番目の座標値に対して、ｉ≦ｔ＜ｉ＋１（ｉ＝０，１，・・・，Ｎ−２）の範囲の値をとる。）を実行し、補間された座標値（Ｘ（ｔ）、Ｙ（ｔ））および筆圧を示す値Ｐ（ｔ）を算出する。
【００１７】
また、好ましい実施態様においては、前記座標値取得手段が、前記入力したサンプル点の所定範囲に他のサンプル点が存在する場合には、上記入力したサンプル点を、取得するサンプル点から除外するように構成されている。
【００１８】
また、好ましい実施態様においては、前記描画手段が、補間された座標値が示す点の所定範囲に、他の補間された座標値が示す点が存在する場合には、当該補間された座標値が示す点を描画対象から除外するように構成されている。
【００１９】
また、本発明の目的は、入力装置および表示装置を備えたコンピュータにおいて、入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画するための描画プログラムであって、前記コンピュータを、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段、並びに、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段、として機能させることを特徴とする描画プログラムにより達成される。
【００２０】
好ましい実施態様においては、前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されている。
【００２１】
より好ましい実施態様においては、前記補間された座標値に応答する位置の点を部分的に重ね合わせる。
【００２２】
また別の好ましい実施態様においては、前記補間された座標値に応答する位置の点を透明度を持って重畳する。別の好ましい実施態様においては、前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されている。
【発明の効果】
【００２３】
本発明によれば、ユーザの入力に対して迅速に追従する描画装置および描画プログラムを提供することが可能となる。また、本発明によれば、滑らかな曲線を描画することができる描画装置および描画プログラムを提供することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】図１は、本実施の形態にかかる描画装置の構成を示すブロックダイヤグラムである。
【図２】図２は、本発明の実施の形態にかかる描画装置の外観を示す斜視図である。
【図３】図３は、本実施の形態にかかる描画装置の機能ブロックダイヤグラムである。
【図４】図４は、本実施の形態にかかる描画装置において実行されるメインフローの例を示すフローチャートである。
【図５】図５は、本実施の形態にかかる点列データ取得処理の例を示すフローチャートである。
【図６】図６は、本実施の形態にかかる補間処理の例を示すフローチャートである。
【図７】図７は本実施の形態にかかる補間・平滑化処理の例を示すフローチャートである。
【図８】図８は、本実施の形態にかかる描画前処理の例を示すフローチャートである。
【図９】図９は、本実施の形態にかかる筆圧・ドット対応テーブルの例を示す図である。
【図１０】図１０は、本実施の形態にかかる描画処理を概略的に示す図である。
【図１１】図１１は、本実施の形態にかかる点列データの例を示す図である。
【図１２】図１２は、本実施の形態にかかる処理により表示装置の画面上に表示された曲線の例を示す図である。
【発明を実施するための形態】
【００２５】
［全体構成］
以下、添付図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかる描画装置の構成を示すブロックダイヤグラムである。図１に示すように、本実施の形態にかかる描画装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、入力部１４、補助記憶装置１５、表示装置１６、タブレット１７を有する。
【００２６】
ＣＰＵ１１は、描画装置１０全体の制御、タブレットペン（スタイラスペン）１８を用いてタブレットに入力された点列を構成する点の座標値の取得処理、取得した座標値に基づく描画すべき点の座標値の算出処理、表示装置１６の画面上への描画処理など、種々の処理を実行する。
【００２７】
ＲＯＭ１２は、ＣＰＵ１１に実行させる種々の処理、たとえば、タブレットペン１８を用いてタブレット１７に入力された点列を構成する点の座標値の取得処理、取得した座標値に基づく描画すべき点（描画対象点）の座標値の算出処理、表示装置１６の画面上への描画処理などのプログラムを格納する。或いは、上記プログラムは、補助記憶装置１５に格納されていても良い。
【００２８】
ＲＡＭ１３は、ＲＯＭ１２から読み出されたプログラムや、処理の過程で生成されたデータを記憶する。後述するように、本実施の形態においては、タブレットペン１８を用いてタブレット１７に入力された点列を構成する点の座標値、補間処理の過程で生じた点の座標値、描画すべき点の座標値などがＲＡＭ１３に記憶される。入力部１４は、キーボードやマウスなどを含む。補助記憶装置１５は、たとえば、ハードディスク装置やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）から構成される。
【００２９】
なお、本実施の形態において、ＣＰＵ１１は、取得した座標値に基づく描画すべき点の座標値の算出処理、表示装置１６の画面上への描画処理など、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の機能も備える。無論、ＣＰＵ１１と別体として、ＧＰＵを備えても良い。
【００３０】
図２に示すように、タブレット１７は、表示装置１６と重ねあわされて配置されている。しかしながら、これに限定されず、タブレット１７は表示装置１６と離間して配置されても良い。タブレット１７は、タブレットペン（スタイラスペン）１８との間の電磁誘導により、タブレットペン１８が位置している平面座標（Ｘ座標およびＹ座標）などを得ることができる。なお、座標取得の方法は、電磁誘導に限らず、抵抗膜方法や、超音波方式、光学センサと画像処理を組み合わせて座標を読み取る方式などでもよい。また、本実施の形態においては、タブレットペン１８によるタブレット１７上の筆圧を示す値を取得することもできる。これは、ペンに内蔵された感圧素子の値を電磁授受作用によって取得しても良いし、タブレット１７に配置された圧力を感知する膜などを利用しても良い。したがって、本実施の形態において、タブレットペン１８を、タブレット１７上（表示装置１６上）で文字や図形などを描くように移動させると、当該タブレットペン１８の移動軌跡の入力に基づいて、表示装置１６の画面上に、滑らかな文字や図形などが表示される。また、タブレットペン１８の移動は、マウス操作などでも代替することができる。
【００３１】
［処理の概略］
図３は、本実施の形態にかかる描画装置の機能ブロックダイヤグラム、図４は、本実施の形態にかかる描画装置において実行されるメインフローの例を示すフローチャートである。図３に示すように、描画装置１０は、点列データ取得部３１、補間処理部３２、描画前処理部３４および描画処理部３５を有する。点列データ取得部３１、補間処理部３２、描画前処理部３４において生成された種々のデータは、記憶部３６に記憶される。
【００３２】
点列データ取得部３１は、タブレット１７から、タブレットペン１８の位置（Ｘ座標、Ｙ座標）および筆圧を示す値を含む３次元のデータを受け入れて、点列データを生成して記憶部３６に記憶する。補間処理部３２は、補間・平滑化処理部３３を含み、点列データが示す点の座標値に基づき、補間処理を実行して、一連の補間された座標値群を生成して、記憶部３６に記憶する。描画前処理部３４は、記憶部３６に記憶された座標値群に基づいて、描画すべき点の座標値を算出する。描画処理部３５は、算出された座標値に基づいて、表示装置１６の画面上に複数の点（点列）を表示する。なお、各構成部分において算出された座標値などは記憶部３６に格納されて後続する処理において利用される。
【００３３】
本実施の形態において、点列データ取得部３１、補間処理部３２、描画前処理部３４、描画処理部３５の機能は、主としてＣＰＵ１１により実現される。また、記憶部３６は、たとえば、ＲＡＭ１３および補助記憶装置１５に相当する。なお、ＣＰＵ１１とは別体のＧＰＵを設けた場合には、点列データ取得部３１、補間処理部３２、描画前処理部３４、描画処理部３５の機能の一部が、ＧＰＵにより代替され得る。
【００３４】
図４に示すように、本実施の形態にかかる描画装置１０において、電源が投入され、或いは、描画の開始を示す指示が入力部１４から与えられると、メインフローは起動し、後述するステップ４０２〜４０５の処理が繰り返し実行される。ＣＰＵ１１は、ＲＡＭ１３中のデータや、表示装置１６の画面のクリアを含むイニシャライズ処理（初期化処理）を実行する（ステップ４０１）。イニシャライズ処理（ステップ４０１）が終了すると、ＣＰＵ１１（特に、点列データ取得部３１）は、点列データ取得処理を実行する（ステップ４０２）。図５は、本実施の形態にかかる点列データ取得処理の例を示すフローチャートである。
【００３５】
［点列データ取得処理］
図５に示すように、点列データ取得部３１は、タブレット１７から、現在の時刻Ｔｉにおけるタブレット１７上のタブレットペン１８の位置（サンプル点の位置）および筆圧を示す３次元の座標値（ＸＴｉ，ＹＴｉ，ＰＴｉ）を取得する（ステップ５０１）。ここに、（ＸＴｉ，ＹＴｉ）はタブレットペン１８の位置を示し、ＰＴｉは、タブレットペン１８がタブレット１７に与えている筆圧の大きさを示している。前回に取得した座標値（時刻Ｔｉ−１）の座標値（ＸＴｉ−１，ＹＴｉ−１，ＰＴｉ−１）と、取得した座標値（ＸＴｉ，ＹＴｉ，ＰＴｉ）が同一であれば（ステップ５０２でＹｅｓ）、ステップ５０１に戻る。ステップ５０２でＮｏと判断された場合には、隣接する点との間の距離を算出する（ステップ５０３）。本実施の形態においては、ステップ５０１で得られた座標値（ＸＴｉ，ＹＴｉ，ＰＴｉ）を、第ｋ番の座標値（Ｘｋ，Ｙｋ，Ｐｋ）として、その位置（Ｘｋ，Ｙｋ）と、記憶部３６に記憶された第（ｋ−１）番の座標値（Ｘｋ−１，Ｙｋ−１，Ｐｋ−１）における位置（Ｘｋ−１，Ｙｋ−１）との間の距離を算出している。なお、サンプル点の位置は、ほぼ一定のサンプリング周期Δｔごとに距離が取得されるため、取得された距離は、サンプリング周期Δｔを単位時間とする速度と考えることもできる。たとえば、距離としてユークリッド距離を採用すれば、距離ｄ（速度Ｖ）は、以下のように算出される。
【００３６】
ｄ＝（（Ｘｋ−Ｘｋ−１）２＋（Ｙｋ−Ｙｋ−１）２）１／２
なお、ユークリッド距離に限定されるものではなく、他の距離、たとえば、メトロポリタン距離などが採用されても良い。
【００３７】
点列データ取得部３１は、座標値（Ｘｋ，Ｙｋ，Ｐｋ）を点列データの一部（点列を構成する点のデータ）として記憶部３６に記憶する（ステップ５０４）。次いで、点列データ取得部３１は、（Ｘｋ，Ｙｋ，Ｐｋ）に隣接する点、つまり、座標値（Ｘｋ−１，Ｙｋ−１，Ｐｋ−１）の点が、所定の距離内に位置しているか否かを判断する（ステップ５０５）。ここでは、上記距離ｄが、所定の閾値ｄｔｈ以下であるか否かを判断すれば良い。ステップ５０５でＹｅｓと判断された場合には、ＣＰＵ１１は、今回得られた座標値（Ｘｋ，Ｙｋ，Ｐｋ）を点列データから除去する（ステップ５０６）。つまり、点列の間引き処理を実行する。ステップ５０５でＮｏと判断された場合、或いは、ステップ５０６が実行された後に、点列データ取得処理は終了する。
【００３８】
［補間処理］
点列データ取得処理（ステップ４０２）が終了すると、ＣＰＵ１１は、補間処理を実行する（ステップ４０３）。図６は、本実施の形態にかかる補間処理の例を示すフローチャートである。ＣＰＵ１１（補間処理部３２）は、点列データを参照して、点列データに対して移動平均処理を施す。本実施の形態において、補間処理部３２は、第ｋ番の点の座標値（Ｘｋ，Ｙｋ，Ｐｋ）として、第（ｋ−３）番の点の座標値（Ｘｋ−３，Ｙｋ−３，Ｐｋ−３）から第ｋ番の点の座標値（Ｘｋ，Ｙｋ，Ｐｋ）の平均値を算出して、これを新たに第ｋ番の点の座標値（Ｘｋ，Ｙｋ，Ｐｋ）とする。
【００３９】
すなわち、新たな第ｋ番の点の座標値はそれぞれ以下のような値をとる。
【００４０】
Ｘｋ＝（Ｘｋ−３＋Ｘｋ−２＋Ｘｋ−１＋Ｘｋ）／４
Ｙｋ＝（Ｙｋ−３＋Ｙｋ−２＋Ｙｋ−１＋Ｙｋ）／４
Ｐｋ＝（Ｐｋ−３＋Ｐｋ−２＋Ｐｋ−１＋Ｐｋ）／４
なお、移動平均フィルタ処理は、点列の変化の度合いを小さくする、つまり、平滑化するために行なっているが、これは省略しても良い。
【００４１】
次いで、補間処理部３２は、取得された点の個数が所定値以上であるかを判断し（ステップ６０２）、所定値以上（ステップ６０２でＹｅｓ）であれば補間・平滑化処理を実行する（ステップ６０３）。本実施の形態においては、３次のスプライン処理が実行されるため、点の個数は４以上であれば良く、この場合に、ステップ６０２でＹｅｓと判断される。ステップ６０２でＹｅｓと判断された場合には、補間・平滑化処理が実行される（ステップ６０３）。図７は本実施の形態にかかる補間・平滑化処理の例を示すフローチャートである。
【００４２】
図７に示すように、補間・平滑化処理において、補間・平滑化処理部３３は、演算に利用する配列や変数を初期化し（ステップ７０１）、節点を算出して追加し（ステップ７０２）、追加された節点を用いて関数値を演算する（ステップ７０３）。特に、本実施の形態においては、取得座標値を距離ｄに応じて細分化しパラメータ化した値と、Ｂ−スプライン関数の積和演算を行って関数値を取得する。本実施の形態にかかるＢ−スプライン関数の積和演算については後述する。
【００４３】
Ｂ−スプラインについては、たとえば、非特許文献１などに記載された周知の技術であるが、以下に簡単に説明する。
【００４４】
［Ｂ−スプライン］
（Ｋ−１）次のＢ−スプラインを、Ｂｉ，Ｋ（ｘ）とすると、以下のように定義される。
【００４５】
Ｂｉ，Ｋ（ｘ）＝（ｑｉ＋Ｋ−ｑｉ）ＭＫ（ｘ：ｑｉ，ｑｉ＋１，・・・，ｑｉ＋Ｋ）
ここで、ＭＫ（ｘ：ｑｉ，ｑｉ＋１，・・・，ｑｉ＋Ｋ）は、
【００４６】
【数３】
2011022685.tif 000005
に対して、ｑｉ，ｑｉ＋１，・・・，ｑｉ＋Ｋ（ｑｉ≦ｑｉ＋１≦・・・≦ｑｉ＋Ｋ）の節点でｑに関するＫ階の差分商をとったものである。
【００４７】
【数４】
2011022685.tif 000006
であるから、ＢスプラインＢｉ，Ｋ（ｘ）は一般式として以下のように表される。
【００４８】
【数５】
2011022685.tif 000007
（Ｋ−１）次のスプライン関数Ｓ（ｘ）は、Ｂ−スプラインＢｉ，Ｋ（ｘ）を基底とする１次結合として、以下のように表すことができる。
【００４９】
【数６】
2011022685.tif 000008
（Ｋ−１）次のスプラインは、たとえば、与えられたデータ点（ｘ０，ｙ０）、（ｘ１，ｙ１）、・・・、（ｘＮ−１，ｙＮ−１）に対して、
ｙｉ＝Ｓ（ｘｉ）  （ｉ＝０，１，・・・，Ｎ−１）
を満足するような係数αｉを算出することにより得ることができる。
【００５０】
つまり、
Ａα＝ｙ  ただし、Ａ、α、ｙは以下に示すものである。
【００５１】
【数７】
2011022685.tif 000009
上述したように、Ｂ−スプラインによれば、入力された点列が確定することで、係数αｉを求めることができる。しかしながら、全ての点列が確定しない限り、補間処理を実行することができないことを意味している。
【００５２】
［本実施の形態にかかるＢ−スプライン関数の補間演算］
本実施の形態においては、与えられたＮ個のデータ点を、曲線の形状を決める制御点として利用するいわゆるベジェ曲線の基底関数に、Ｂ−スプラインを利用する。この手法は、たとえば非特許文献２に開示されている。
【００５３】
たとえば、本件の点列データ取得処理にて取得された３次元の座標値（Ｘｉ，Ｙｉ，Ｐｉ）について、本実施の形態においては、以下のようなデータ値を得ることができる。
【００５４】
【数８】
2011022685.tif 000010
Ｘｉ，Ｙｉ，Ｐｉは、それぞれ、ユーザ入力された点列中、第ｉ番の点のＸ座標、Ｙ座標および筆圧を示す値であり、Ｂｉ，Ｋ（ｔ）は、Ｋ階の（（Ｋ−１）次の）Ｂ−スプラインである。また、パラメータｔは、第ｉ番の座標値に対して、ｉ≦ｔ＜ｉ＋１（ｉ＝０，１，・・・，Ｎ−２）の範囲の値をとる。
【００５５】
得られたＸ（ｔ）、Ｙ（ｔ）、Ｐ（ｔ）による座標値（Ｘ（ｔ），Ｙ（ｔ），Ｐ（ｔ））が補間された座標値となる。本実施の形態においては、パラメータｔによる媒介変数により関数が表され、また、データ値（座標値）と、Ｂ−スプラインとにより、新たな補間された座標値が得られるため、Ｂ−スプラインＢｉ，Ｋ（ｔ）が算出できるだけのデータ点（点列）が得られた段階で、補間演算が実行されて、補間されたデータ値を得ることが可能となる。
【００５６】
本実施の形態においては、３次のスプライン処理が実行されるため、点の個数は４以上であれば良い。たとえば、初期的には、座標値（Ｘ０，Ｙ０，Ｐ０）〜（Ｘ３，Ｙ３，Ｐ３）が取得された時点で、補間・平滑化処理が実行される（図６のステップ６０２、６０３）参照。以後の処理でも、４つの点（座標値（（Ｘｉ−３，Ｙｉ−３，Ｐｉ−３）〜（Ｘｉ，Ｙｉ，Ｐｉ）を用いてスプライン処理が実行されて、補間された座標値が得られる。補間された座標値は、記憶部３６に格納される。
【００５７】
以下、４つの点（座標値（（Ｘｉ−３，Ｙｉ−３，Ｐｉ−３）〜（Ｘｉ，Ｙｉ，Ｐｉ））から得られた補間された点を、（ｘｊ，ｙｊ，ｐｊ）と表す。
【００５８】
［描画前処理］
補間処理（ステップ４０３）が終了すると、ＣＰＵ１１（描画前処理部３４）は、描画前処理を実行する（ステップ４０４）。ステップ４０４においては、表示装置の画面上に表示すべき最終的な点列（描画対象点からなる点列）の座標値を算出する。図８は、本実施の形態にかかる描画前処理の例を示すフローチャートである。図８に示すように、描画前処理部３４は、記憶部３６に記憶された、４つの点（座標値（（Ｘｉ−３，Ｙｉ−３，Ｐｉ−３）〜（Ｘｉ，Ｙｉ，Ｐｉ））から得られた補間された点の座標（ｘｊ，ｙｊ，ｐｊ）を読み出し、始点と終点とを特定する（ステップ８０１）。補間された点の座標において始点と終点はかならず描画するため、ステップ８０１において上記２点が特定される。次いで、描画前処理部３４は、第ｊ番の座標（ｘｊ，ｙｊ，ｐｊ）における位置（ｘｊ，ｙｊ）を参照し、第ｊ−１番の座標（ｘｊ−１，ｙｊ−１，ｐｊ−１）における位置（ｘｊ−１，ｙｊ−１）との距離を算出する。ここでは、たとえば、ユークリッド距離
ｄ＝（（ｘｊ−ｘｊ−１）２＋（ｙｊ−ｙｊ−１）２）１／２
を算出すれば良い。
【００５９】
次いで、描画前処理部３４は、距離ｄが、最新の筆圧値や表示装置の分解能などに応じて決まる所定の閾値ｄｔｈ以下であるか否かを判断する（ステップ８０３）。ステップ８０３でＹｅｓと判断された場合には、座標値（ｘｊ，ｙｊ，ｐｊ）を描画対象点から除去する（ステップ８０４）。すなわち、点列の間引き処理を実行する。上記ステップ８０３、８０４は、図５のステップ５０５、５０６と同様である。ステップ８０３でＹｅｓと判断された場合、或いは、ステップ８０４が終了した後に、描画前処理部３４は、筆圧値ｐｊと、描画すべき点のドットの大きさとの対応付けを行なう（ステップ８０５）。図９は、本実施の形態にかかる筆圧・ドット対応テーブルの例を示す図である。
【００６０】
図９に示すように、本実施の形態においては、所定の筆圧値の範囲ごとに、当該範囲と描画すべき点のドットの大きさを示す値Ｄとが関連付けられたテーブル９００が、たとえば、補助記憶装置１５に格納され、描画前処理３４において、当該テーブルがＲＡＭ１３にコピーされている。本実施の形態にかかるテーブル９００では、筆圧（の範囲）とドットの大きさを示す値とがリニアに変化するようになっている。たとえば、筆圧値が２５６段階中（１〜２５６）、１〜８であれば、ドットの大きさを示す値が「１」であり（符号９０１参照）、筆圧値が９〜１６であれば、ドットの大きさを示す値が「２」となる（符号９０２参照）。無論、このようにリニアであることに限定されず、非線形に、ドットの大きさを示す値が変化しても良い。また、筆圧とドットの大きさも、図９に示すような対応に限定されないことは言うまでも無い。さらに前記ドットには、アンチエイリアス処理が施された描画要素が用いられるため、筆圧とドットの大きさ（ピクセルクラスタ）は、必ずしも明確に対応しない。
【００６１】
描画前処理部３４は、ＲＡＭ１３中のテーブルを参照して、筆圧値Ｐｊに対応するドットの大きさを示す値Ｄを特定する。これにより、位置を示す値ｘｊ、ｙｊおよびドットの大きさを示す値Ｄからなる描画対象点のデータ（ｘｊ，ｙｊ，Ｄ）を得ることができる。得られた描画対象点のデータ（ｘｊ，ｙｊ，Ｄ）は、記憶部３６に格納される。描画前処理部３４は、終点になるまで、ステップ８０２〜８０５の処理を繰り返す。これにより、最新の筆圧値や表示装置の分解能などに応じて決まる距離ｄｔｈだけ相互にほどよく離間した点列のデータを得ることが可能となる。
【００６２】
［描画処理］
次に、描画処理（図４のステップ４０５）について説明する。本実施の形態において、描画処理は、上記描画対象点のデータを読み出して、描画対象点が示す位置（ｘｊ，ｙｊ）に、Ｄで示される大きさの点を描画する。すなわち、本実施の形態においては、描画対象点の間を、ある太さの線で結ぶのではなく、多数の描画対象点を、画面上に最適な間隔で描画することで曲線や直線を表す。これが従来の手法との大きな違いである。また、本実施の形態においては描画前処理が繰り返し実行される。したがって、それぞれの描画前処理において生成された描画対象点のデータが、順次、所定の透明度を持った点として、所定の色の濃さになるように重畳され、画面に表示される。たとえば、描画対象点に描画される色の濃さ（透明度）は予め定められる。また、この描画対象点は、それぞれ、前述したように、ドットの大きさＤが対応付けられているため、描画対象点はそれぞれ筆圧に応じた大きさで描画される。
【００６３】
なお、取得された描画対象点全てを重ね合わせるのではなく、描画対象点のうち選択された所定の一部を重ね合わせるように構成しても良い。
【００６４】
図１０は、本実施の形態にかかる描画処理を概略的に示す図である。たとえば、タブレット１７に入力された４つの点列Ｐｉ−３〜Ｐｉにより、描画対象点の点列１００１が得られている。同様に、４つの点列Ｐｉ−２〜Ｐｉ＋１、Ｐｉ−１〜Ｐｉ＋２、Ｐｉ〜Ｐｉ＋３（図示せず）により、描画対象点の点列１１０２、１１０３、１１０４がそれぞれ得られている。本実施の形態においては、表示装置１６の画面上に表示される曲線１０１０は、上記点列１００１〜１００４が重ね合わせられたものである。たとえば、曲線１０１０の領域１０１３は、点列１００１〜１００３の重ね合わせであり、領域１０１４は、点列１００２〜１００４の重ね合わせである。また、他の領域（たとえば、領域１０１１、１０１２，０１０１５）も、同様に、図示した点列および他の点列の重ね合わせであることが理解できるであろう。
【００６５】
さらに、本実施の形態においては、ステップ４０２〜４０４の処理が繰り返されることにより、入力された４つの点列により、順次、描画対象点の点列が作られていく。したがって、ほぼ点列の入力（つまり、タブレットペンの動作）に応じてほぼリアルタイムで、描画対象点により構成された曲線を、その筆圧に応じた太さで再現することが可能となる。
【００６６】
図１１は、ユーザがタブレット１７上でタブレットペン１８を動かして、その結果、点列データ取得部３１により取得された点列データの例を示す図である。また、図１２は、本実施の形態にかかる処理により表示装置１６の画面上に表示された曲線の例を示す図である。図１２の例においては、補間処理部３２によって補間・平滑化され、描画前処理部３４において、点列が適度に間引かれ、描画処理部３５により、描画対象点が最終的に所定の色の濃さになるよう重ねあわされて表示された結果、タブレットペン１８の動きが曲線により再現されている。
【００６７】
本実施の形態によれば、入力された点（サンプル点）が、補間に必要な数だけ存在する場合に、当該必要数により補間された値を算出することが可能な補間・平滑化関数を通して、補間された点列を構成する点の座標値を算出する。これにより、全ての点列が得られるまで処理の開始を待つことなく、補間に必要な数だけサンプル点が得られた段階で、演算を実行することが可能となる。
【００６８】
また、本実施の形態によれば、上記補間に必要な数だけサンプル点が得られた段階で実行された演算により得られた補間された座標値に基づく点列を、既に表示装置の画面上に表示されている点列に重ね合わせて描画していく。これにより、隣接する点の間を直線で結ぶ必要なく、滑らかな曲線を再現することが可能となる。
【００６９】
［他の例］
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【００７０】
たとえば、前記実施の形態においては、タブレットペンがタブレット上で接触した状態で、その位置を点列として取得しているがこれに限定されるものではなく、タブレットペンがタブレットに接近しているが接触しない状態であっても、タブレットペンの位置を点列として取得することができる。これは、タブレット１７と、タブレットペン（スタイラスペン）１８との間の電磁誘導授受作用により位置検出することから実現できる。
【００７１】
また、前記実施の形態においては、タブレットペンの位置している平面座標（Ｘ座標、Ｙ座標）および筆圧により、座標値（Ｘｋ，Ｙｋ，Ｐｋ）を取得しているが、筆圧に加えて、タブレットペンの傾斜Ａｋを検出して、座標値（Ｘｋ，Ｙｋ，Ｐｋ，Ａｋ）を取得しても良い。この場合には、タブレットペン１８の傾斜についても、数８に示す数式と同様に、以下のように補間された傾斜値が求められても良い。
【００７２】
Ａ（ｔ）＝ΣＡｉＢｉ，Ｋ（ｔ）
さらに、傾斜値と、描画のための要素（たとえば、筆圧と同様にドットの大きさであっても良いし、色やドットの濃度など他の要素であっても良い）とを対応付けることで、タブレットペンの傾斜に応じた描画が実現される。
【００７３】
或いは、筆圧の代わりに、タブレットペンの傾斜を利用して、座標値（Ｘｋ，Ｙｋ，Ａｋ）を取得しても良い。
【００７４】
さらに、前記実施の形態においては、描画されるドットの形状は円形であっても楕円形であっても良い。無論、筆圧に応じてその大きさが決定されるものであれば他の形状であっても良い。
【００７５】
また、前記実施の形態においては、取得座標値を距離ｄに応じて細分化してパラメータ化した値と、Ｂ−スプライン関数との積和演算を行い、補間された座標値を算出して、補間および平滑化を実現している。しかしながら、使用できる補間・平滑化関数は上述した関数に限定されるものでなく、たとえば、ガウス関数を適用しても良い。ガウス関数Ｇを利用した場合には、数８の数式と同様の表現をすると、以下のように表すことができる。なお、ガウス関数の形状を決めるパラメータには、筆圧Ｐや距離ｄなどが、逐次、考慮されることが望ましい。
【００７６】
Ｘ（ｔ）＝ΣＸｉＧ（ｔ）
Ｙ（ｔ）＝ΣＹｉＧ（ｔ）
Ｐ（ｔ）＝ΣＰｉＧ（ｔ）
釣鐘型の関数であればガウス関数以外の関数も利用され得る。
【００７７】
さらに、前記実施の形態においては、数８に示すように、以下の数式を用いて補間された座標値を算出した。
【００７８】
Ｘ（ｔ）＝ΣＸｉＢｉ，Ｋ（ｔ）
Ｙ（ｔ）＝ΣＹｉＢｉ，Ｋ（ｔ）
Ｐ（ｔ）＝ΣＰｉＢｉ，Ｋ（ｔ）
これによると、入力された点（サンプル点）を制御点として用いるため、補間された座標値からなる点列は、サンプル点を通らない。そこで、より好ましい実施の形態として、筆記速度が速く、点列がまばらになった際（点列を構成する点の間の距離ｄが大きくなった場合）にも、サンプル点に、より接近した位置に補間点列が計算されるように、以下のような数式を用いて補間・平滑化される座標値を算出しても良い。
【００７９】
Ｘ（ｔ）＝ｗ（ｄ）ΣＸｉＢｉ，Ｋ（ｔ）
Ｙ（ｔ）＝ｗ（ｄ）ΣＹｉＢｉ，Ｋ（ｔ）
Ｐ（ｔ）＝ｗ（ｄ）ΣＰｉＢｉ，Ｋ（ｔ）
ここに、ｗ（ｄ）は、速度（距離）の関数値としての重みである。
【００８０】
また、前記実施の形態にいては、描画前処理においても、隣接する点の間が所定の距離内であれば点列の間引き処理を実行している（ステップ５０４、５０５）が、これは省略しても良い。
【符号の説明】
【００８１】
１０        描画装置
１１        ＣＰＵ
１２        ＲＯＭ
１３        ＲＡＭ
１４        入力部
１５        補助記憶装置
１６        表示装置
１７        タブレット
１８        タブレットペン
３１        点列データ取得部
３２        補間処理部
３３        補間・平滑化処理部
３４        描画前処理部
３５        描画処理部
３６        記憶部
【図１】
2011022685.tif 000013
【図２】
2011022685.tif 000014
【図３】
2011022685.tif 000015
【図４】
2011022685.tif 000016
【図５】
2011022685.tif 000017
【図６】
2011022685.tif 000018
【図７】
2011022685.tif 000019
【図８】
2011022685.tif 000020
【図９】
2011022685.tif 000021
【図１０】
2011022685.tif 000022
【図１１】
2011022685.tif 000023
【図１２】
2011022685.tif 000024