説明

描画装置および描画プログラム

【課題】 ユーザの入力に対して迅速に追従し、かつ、滑らかな曲線を描画する。
【解決手段】 入力された複数の点列に基づいて、補間された点を生成して表示装置16の画面上に描画する描画装置10は、入力された点列を構成する各サンプル点の座標値を取得する点列データ取得部31と、取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化処理部33と、 表示装置16の画面上において補間された座標値に応答する位置に点を描画する描画処理部35手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タブレットペンなどによる入力に基づく描画を作成する描画装置および描画プログラムに関する。
【背景技術】
【0002】
現在、タブレットペンとタブレットとの間の電磁誘導などにより、タブレットペンのタブレット上の位置情報(座標値)などを取得する技術が知られている。これを応用して、タブレットペンの動きに応じて、表示装置の画面上に描画する描画装置が提案されている。たとえば、特許文献1には、ユーザが望むような線幅を修正して表示する技術、特許文献2には、自然な毛筆画を表示する技術、特許文献3には、筆圧値に応じた描画を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−181515号公報
【特許文献2】特開2004−139411号公報
【特許文献3】特開2002−196878号公報
【非特許文献】
【0004】
【非特許文献1】「Cによるスプライン関数 データ解析CG 微分方程式」桜井明監修、菅野敬祐、吉村和美、高山文雄著、東京電機大学出版局、1993年発行
【非特許文献2】「Bernstein−Bezier Methods for Computer−Aided Design for Free−Form Curves and Surface」 William J. Gordon,Richard F.RiesenFeld著、Journal of the Association for Computing Machinery, Vol. 21, No.2, April 1974、1974年4月発行
【発明の概要】
【発明が解決しようとする課題】
【0005】
また、上記タブレット上の位置情報は、点列を構成する点の座標値、つまり、離散値として与えられる。したがって、離散値の間を滑らかにつなぐ補間技術が必要となる。このような補間技術して、スプラインが良く知られている(たとえば、非特許文献1)。たとえば、B−スプラインにおいては、離散的な点列の間をつなぐために(K−1)次のB−スプラインBi,K(x)を適用した、(K−1)次のスプライン関数
S(x)=Σαi,K(x)
が利用される。より具体的には、与えられたデータ点(x,y)(i=0,1,・・・,N−1)に対して、 y=S(x)を満足するようなαを決定する。αを決定するには、入力された点列が確定している必要がある。したがって、スプラインを用いた補間においては、追従性が悪い、つまり、描画までに時間を要するという問題点があった。
【0006】
さらに、従来の描画においては、スプラインなどを用いて得られた補間された点の間を直線でつないでいる。つまり、補間された点も表示画面上においては離散された点であるため、その間をさらに直線で結んでいる。したがって、滑らかな曲線を再現することが難しいという問題点もあった。
【0007】
本発明は、ユーザの入力に対して迅速に追従する描画装置および描画プログラムを提供することを目的とする。また、本発明は、滑らかな曲線を描画することができる描画装置および描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の目的は、入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画する描画装置であって、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段と、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段と、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段と、を備えたことを特徴とする描画装置により達成される。
【0009】
好ましい実施態様においては、前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されている。
【0010】
より好ましい実施態様においては、前記補間された座標値に応答する位置の点を部分的に重ね合わせる。
【0011】
また別の好ましい実施態様においては、前記補間された座標値に応答する位置の点を透明度を持って重畳する。
【0012】
別の好ましい実施態様においては、前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されている。
【0013】
より好ましい実施態様においては、前記補間・平滑化手段が、前記取得された座標値に基づき、B−スプライン関数の積和演算として、
【0014】
【数1】

(ただし、X,Yは、それぞれ、入力された点列中、第i番の点のX座標およびY座標であり、Bi,K(t)は、(K−1)次のB−スプラインである。また、パラメータtは、i番目の座標値に対して、i≦t<i+1(i=0,1,・・・,N−2)の範囲の値をとる。)を実行し、補間された座標値(X(t)、Y(t))を算出する。
【0015】
さらに別の好ましい実施態様においては、前記補間・平滑化手段が、前記取得された座標値に基づき、B−スプライン関数の積和演算として、
【0016】
【数2】

(ただし、X,Y,Pは、それぞれ、入力された点列中、第i番の点のX座標、Y座標および筆圧を示す値であり、Bi,K(t)は、(K−1)次のB−スプラインである。また、パラメータtは、i番目の座標値に対して、i≦t<i+1(i=0,1,・・・,N−2)の範囲の値をとる。)を実行し、補間された座標値(X(t)、Y(t))および筆圧を示す値P(t)を算出する。
【0017】
また、好ましい実施態様においては、前記座標値取得手段が、前記入力したサンプル点の所定範囲に他のサンプル点が存在する場合には、上記入力したサンプル点を、取得するサンプル点から除外するように構成されている。
【0018】
また、好ましい実施態様においては、前記描画手段が、補間された座標値が示す点の所定範囲に、他の補間された座標値が示す点が存在する場合には、当該補間された座標値が示す点を描画対象から除外するように構成されている。
【0019】
また、本発明の目的は、入力装置および表示装置を備えたコンピュータにおいて、入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画するための描画プログラムであって、前記コンピュータを、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段、並びに、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段、として機能させることを特徴とする描画プログラムにより達成される。
【0020】
好ましい実施態様においては、前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されている。
【0021】
より好ましい実施態様においては、前記補間された座標値に応答する位置の点を部分的に重ね合わせる。
【0022】
また別の好ましい実施態様においては、前記補間された座標値に応答する位置の点を透明度を持って重畳する。別の好ましい実施態様においては、前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されている。
【発明の効果】
【0023】
本発明によれば、ユーザの入力に対して迅速に追従する描画装置および描画プログラムを提供することが可能となる。また、本発明によれば、滑らかな曲線を描画することができる描画装置および描画プログラムを提供することが可能となる。
【図面の簡単な説明】
【0024】
【図1】図1は、本実施の形態にかかる描画装置の構成を示すブロックダイヤグラムである。
【図2】図2は、本発明の実施の形態にかかる描画装置の外観を示す斜視図である。
【図3】図3は、本実施の形態にかかる描画装置の機能ブロックダイヤグラムである。
【図4】図4は、本実施の形態にかかる描画装置において実行されるメインフローの例を示すフローチャートである。
【図5】図5は、本実施の形態にかかる点列データ取得処理の例を示すフローチャートである。
【図6】図6は、本実施の形態にかかる補間処理の例を示すフローチャートである。
【図7】図7は本実施の形態にかかる補間・平滑化処理の例を示すフローチャートである。
【図8】図8は、本実施の形態にかかる描画前処理の例を示すフローチャートである。
【図9】図9は、本実施の形態にかかる筆圧・ドット対応テーブルの例を示す図である。
【図10】図10は、本実施の形態にかかる描画処理を概略的に示す図である。
【図11】図11は、本実施の形態にかかる点列データの例を示す図である。
【図12】図12は、本実施の形態にかかる処理により表示装置の画面上に表示された曲線の例を示す図である。
【発明を実施するための形態】
【0025】
[全体構成]
以下、添付図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかる描画装置の構成を示すブロックダイヤグラムである。図1に示すように、本実施の形態にかかる描画装置10は、CPU11、ROM12、RAM13、入力部14、補助記憶装置15、表示装置16、タブレット17を有する。
【0026】
CPU11は、描画装置10全体の制御、タブレットペン(スタイラスペン)18を用いてタブレットに入力された点列を構成する点の座標値の取得処理、取得した座標値に基づく描画すべき点の座標値の算出処理、表示装置16の画面上への描画処理など、種々の処理を実行する。
【0027】
ROM12は、CPU11に実行させる種々の処理、たとえば、タブレットペン18を用いてタブレット17に入力された点列を構成する点の座標値の取得処理、取得した座標値に基づく描画すべき点(描画対象点)の座標値の算出処理、表示装置16の画面上への描画処理などのプログラムを格納する。或いは、上記プログラムは、補助記憶装置15に格納されていても良い。
【0028】
RAM13は、ROM12から読み出されたプログラムや、処理の過程で生成されたデータを記憶する。後述するように、本実施の形態においては、タブレットペン18を用いてタブレット17に入力された点列を構成する点の座標値、補間処理の過程で生じた点の座標値、描画すべき点の座標値などがRAM13に記憶される。入力部14は、キーボードやマウスなどを含む。補助記憶装置15は、たとえば、ハードディスク装置やSSD(Solid State Drive)から構成される。
【0029】
なお、本実施の形態において、CPU11は、取得した座標値に基づく描画すべき点の座標値の算出処理、表示装置16の画面上への描画処理など、GPU(Graphics Processing Unit)の機能も備える。無論、CPU11と別体として、GPUを備えても良い。
【0030】
図2に示すように、タブレット17は、表示装置16と重ねあわされて配置されている。しかしながら、これに限定されず、タブレット17は表示装置16と離間して配置されても良い。タブレット17は、タブレットペン(スタイラスペン)18との間の電磁誘導により、タブレットペン18が位置している平面座標(X座標およびY座標)などを得ることができる。なお、座標取得の方法は、電磁誘導に限らず、抵抗膜方法や、超音波方式、光学センサと画像処理を組み合わせて座標を読み取る方式などでもよい。また、本実施の形態においては、タブレットペン18によるタブレット17上の筆圧を示す値を取得することもできる。これは、ペンに内蔵された感圧素子の値を電磁授受作用によって取得しても良いし、タブレット17に配置された圧力を感知する膜などを利用しても良い。したがって、本実施の形態において、タブレットペン18を、タブレット17上(表示装置16上)で文字や図形などを描くように移動させると、当該タブレットペン18の移動軌跡の入力に基づいて、表示装置16の画面上に、滑らかな文字や図形などが表示される。また、タブレットペン18の移動は、マウス操作などでも代替することができる。
【0031】
[処理の概略]
図3は、本実施の形態にかかる描画装置の機能ブロックダイヤグラム、図4は、本実施の形態にかかる描画装置において実行されるメインフローの例を示すフローチャートである。図3に示すように、描画装置10は、点列データ取得部31、補間処理部32、描画前処理部34および描画処理部35を有する。点列データ取得部31、補間処理部32、描画前処理部34において生成された種々のデータは、記憶部36に記憶される。
【0032】
点列データ取得部31は、タブレット17から、タブレットペン18の位置(X座標、Y座標)および筆圧を示す値を含む3次元のデータを受け入れて、点列データを生成して記憶部36に記憶する。補間処理部32は、補間・平滑化処理部33を含み、点列データが示す点の座標値に基づき、補間処理を実行して、一連の補間された座標値群を生成して、記憶部36に記憶する。描画前処理部34は、記憶部36に記憶された座標値群に基づいて、描画すべき点の座標値を算出する。描画処理部35は、算出された座標値に基づいて、表示装置16の画面上に複数の点(点列)を表示する。なお、各構成部分において算出された座標値などは記憶部36に格納されて後続する処理において利用される。
【0033】
本実施の形態において、点列データ取得部31、補間処理部32、描画前処理部34、描画処理部35の機能は、主としてCPU11により実現される。また、記憶部36は、たとえば、RAM13および補助記憶装置15に相当する。なお、CPU11とは別体のGPUを設けた場合には、点列データ取得部31、補間処理部32、描画前処理部34、描画処理部35の機能の一部が、GPUにより代替され得る。
【0034】
図4に示すように、本実施の形態にかかる描画装置10において、電源が投入され、或いは、描画の開始を示す指示が入力部14から与えられると、メインフローは起動し、後述するステップ402〜405の処理が繰り返し実行される。CPU11は、RAM13中のデータや、表示装置16の画面のクリアを含むイニシャライズ処理(初期化処理)を実行する(ステップ401)。イニシャライズ処理(ステップ401)が終了すると、CPU11(特に、点列データ取得部31)は、点列データ取得処理を実行する(ステップ402)。図5は、本実施の形態にかかる点列データ取得処理の例を示すフローチャートである。
【0035】
[点列データ取得処理]
図5に示すように、点列データ取得部31は、タブレット17から、現在の時刻Tiにおけるタブレット17上のタブレットペン18の位置(サンプル点の位置)および筆圧を示す3次元の座標値(XTi,YTi,PTi)を取得する(ステップ501)。ここに、(XTi,YTi)はタブレットペン18の位置を示し、PTiは、タブレットペン18がタブレット17に与えている筆圧の大きさを示している。前回に取得した座標値(時刻Ti−1)の座標値(XTi−1,YTi−1,PTi−1)と、取得した座標値(XTi,YTi,PTi)が同一であれば(ステップ502でYes)、ステップ501に戻る。ステップ502でNoと判断された場合には、隣接する点との間の距離を算出する(ステップ503)。本実施の形態においては、ステップ501で得られた座標値(XTi,YTi,PTi)を、第k番の座標値(X,Y,P)として、その位置(X,Y)と、記憶部36に記憶された第(k−1)番の座標値(Xk−1,Yk−1,Pk−1)における位置(Xk−1,Yk−1)との間の距離を算出している。なお、サンプル点の位置は、ほぼ一定のサンプリング周期Δtごとに距離が取得されるため、取得された距離は、サンプリング周期Δtを単位時間とする速度と考えることもできる。たとえば、距離としてユークリッド距離を採用すれば、距離d(速度V)は、以下のように算出される。
【0036】
d=((X−Xk−1+(Y−Yk−11/2
なお、ユークリッド距離に限定されるものではなく、他の距離、たとえば、メトロポリタン距離などが採用されても良い。
【0037】
点列データ取得部31は、座標値(X,Y,P)を点列データの一部(点列を構成する点のデータ)として記憶部36に記憶する(ステップ504)。次いで、点列データ取得部31は、(X,Y,P)に隣接する点、つまり、座標値(Xk−1,Yk−1,Pk−1)の点が、所定の距離内に位置しているか否かを判断する(ステップ505)。ここでは、上記距離dが、所定の閾値dth以下であるか否かを判断すれば良い。ステップ505でYesと判断された場合には、CPU11は、今回得られた座標値(X,Y,P)を点列データから除去する(ステップ506)。つまり、点列の間引き処理を実行する。ステップ505でNoと判断された場合、或いは、ステップ506が実行された後に、点列データ取得処理は終了する。
【0038】
[補間処理]
点列データ取得処理(ステップ402)が終了すると、CPU11は、補間処理を実行する(ステップ403)。図6は、本実施の形態にかかる補間処理の例を示すフローチャートである。CPU11(補間処理部32)は、点列データを参照して、点列データに対して移動平均処理を施す。本実施の形態において、補間処理部32は、第k番の点の座標値(X,Y,P)として、第(k−3)番の点の座標値(Xk−3,Yk−3,Pk−3)から第k番の点の座標値(X,Y,P)の平均値を算出して、これを新たに第k番の点の座標値(X,Y,P)とする。
【0039】
すなわち、新たな第k番の点の座標値はそれぞれ以下のような値をとる。
【0040】
=(Xk−3+Xk−2+Xk−1+X)/4
=(Yk−3+Yk−2+Yk−1+Y)/4
=(Pk−3+Pk−2+Pk−1+P)/4
なお、移動平均フィルタ処理は、点列の変化の度合いを小さくする、つまり、平滑化するために行なっているが、これは省略しても良い。
【0041】
次いで、補間処理部32は、取得された点の個数が所定値以上であるかを判断し(ステップ602)、所定値以上(ステップ602でYes)であれば補間・平滑化処理を実行する(ステップ603)。本実施の形態においては、3次のスプライン処理が実行されるため、点の個数は4以上であれば良く、この場合に、ステップ602でYesと判断される。ステップ602でYesと判断された場合には、補間・平滑化処理が実行される(ステップ603)。図7は本実施の形態にかかる補間・平滑化処理の例を示すフローチャートである。
【0042】
図7に示すように、補間・平滑化処理において、補間・平滑化処理部33は、演算に利用する配列や変数を初期化し(ステップ701)、節点を算出して追加し(ステップ702)、追加された節点を用いて関数値を演算する(ステップ703)。特に、本実施の形態においては、取得座標値を距離dに応じて細分化しパラメータ化した値と、B−スプライン関数の積和演算を行って関数値を取得する。本実施の形態にかかるB−スプライン関数の積和演算については後述する。
【0043】
B−スプラインについては、たとえば、非特許文献1などに記載された周知の技術であるが、以下に簡単に説明する。
【0044】
[B−スプライン]
(K−1)次のB−スプラインを、Bi,K(x)とすると、以下のように定義される。
【0045】
i,K(x)=(qi+K−q)M(x:q,qi+1,・・・,qi+K
ここで、M(x:q,qi+1,・・・,qi+K)は、
【0046】
【数3】

に対して、q,qi+1,・・・,qi+K(q≦qi+1≦・・・≦qi+K)の節点でqに関するK階の差分商をとったものである。
【0047】
【数4】

であるから、BスプラインBi,K(x)は一般式として以下のように表される。
【0048】
【数5】

(K−1)次のスプライン関数S(x)は、B−スプラインBi,K(x)を基底とする1次結合として、以下のように表すことができる。
【0049】
【数6】

(K−1)次のスプラインは、たとえば、与えられたデータ点(x,y)、(x,y)、・・・、(xN−1,yN−1)に対して、
=S(x) (i=0,1,・・・,N−1)
を満足するような係数αを算出することにより得ることができる。
【0050】
つまり、
Aα=y ただし、A、α、yは以下に示すものである。
【0051】
【数7】

上述したように、B−スプラインによれば、入力された点列が確定することで、係数αを求めることができる。しかしながら、全ての点列が確定しない限り、補間処理を実行することができないことを意味している。
【0052】
[本実施の形態にかかるB−スプライン関数の補間演算]
本実施の形態においては、与えられたN個のデータ点を、曲線の形状を決める制御点として利用するいわゆるベジェ曲線の基底関数に、B−スプラインを利用する。この手法は、たとえば非特許文献2に開示されている。
【0053】
たとえば、本件の点列データ取得処理にて取得された3次元の座標値(X,Y,P)について、本実施の形態においては、以下のようなデータ値を得ることができる。
【0054】
【数8】

,Y,Pは、それぞれ、ユーザ入力された点列中、第i番の点のX座標、Y座標および筆圧を示す値であり、Bi,K(t)は、K階の((K−1)次の)B−スプラインである。また、パラメータtは、第i番の座標値に対して、i≦t<i+1(i=0,1,・・・,N−2)の範囲の値をとる。
【0055】
得られたX(t)、Y(t)、P(t)による座標値(X(t),Y(t),P(t))が補間された座標値となる。本実施の形態においては、パラメータtによる媒介変数により関数が表され、また、データ値(座標値)と、B−スプラインとにより、新たな補間された座標値が得られるため、B−スプラインBi,K(t)が算出できるだけのデータ点(点列)が得られた段階で、補間演算が実行されて、補間されたデータ値を得ることが可能となる。
【0056】
本実施の形態においては、3次のスプライン処理が実行されるため、点の個数は4以上であれば良い。たとえば、初期的には、座標値(X,Y,P)〜(X,Y,P)が取得された時点で、補間・平滑化処理が実行される(図6のステップ602、603)参照。以後の処理でも、4つの点(座標値((Xi−3,Yi−3,Pi−3)〜(X,Y,P)を用いてスプライン処理が実行されて、補間された座標値が得られる。補間された座標値は、記憶部36に格納される。
【0057】
以下、4つの点(座標値((Xi−3,Yi−3,Pi−3)〜(X,Y,P))から得られた補間された点を、(x,y,p)と表す。
【0058】
[描画前処理]
補間処理(ステップ403)が終了すると、CPU11(描画前処理部34)は、描画前処理を実行する(ステップ404)。ステップ404においては、表示装置の画面上に表示すべき最終的な点列(描画対象点からなる点列)の座標値を算出する。図8は、本実施の形態にかかる描画前処理の例を示すフローチャートである。図8に示すように、描画前処理部34は、記憶部36に記憶された、4つの点(座標値((Xi−3,Yi−3,Pi−3)〜(X,Y,P))から得られた補間された点の座標(x,y,p)を読み出し、始点と終点とを特定する(ステップ801)。補間された点の座標において始点と終点はかならず描画するため、ステップ801において上記2点が特定される。次いで、描画前処理部34は、第j番の座標(x,y,p)における位置(x,y)を参照し、第j−1番の座標(xj−1,yj−1,pj−1)における位置(xj−1,yj−1)との距離を算出する。ここでは、たとえば、ユークリッド距離
d=((x−xj−1+(y−yj−11/2
を算出すれば良い。
【0059】
次いで、描画前処理部34は、距離dが、最新の筆圧値や表示装置の分解能などに応じて決まる所定の閾値dth以下であるか否かを判断する(ステップ803)。ステップ803でYesと判断された場合には、座標値(x,y,p)を描画対象点から除去する(ステップ804)。すなわち、点列の間引き処理を実行する。上記ステップ803、804は、図5のステップ505、506と同様である。ステップ803でYesと判断された場合、或いは、ステップ804が終了した後に、描画前処理部34は、筆圧値pと、描画すべき点のドットの大きさとの対応付けを行なう(ステップ805)。図9は、本実施の形態にかかる筆圧・ドット対応テーブルの例を示す図である。
【0060】
図9に示すように、本実施の形態においては、所定の筆圧値の範囲ごとに、当該範囲と描画すべき点のドットの大きさを示す値Dとが関連付けられたテーブル900が、たとえば、補助記憶装置15に格納され、描画前処理34において、当該テーブルがRAM13にコピーされている。本実施の形態にかかるテーブル900では、筆圧(の範囲)とドットの大きさを示す値とがリニアに変化するようになっている。たとえば、筆圧値が256段階中(1〜256)、1〜8であれば、ドットの大きさを示す値が「1」であり(符号901参照)、筆圧値が9〜16であれば、ドットの大きさを示す値が「2」となる(符号902参照)。無論、このようにリニアであることに限定されず、非線形に、ドットの大きさを示す値が変化しても良い。また、筆圧とドットの大きさも、図9に示すような対応に限定されないことは言うまでも無い。さらに前記ドットには、アンチエイリアス処理が施された描画要素が用いられるため、筆圧とドットの大きさ(ピクセルクラスタ)は、必ずしも明確に対応しない。
【0061】
描画前処理部34は、RAM13中のテーブルを参照して、筆圧値Pに対応するドットの大きさを示す値Dを特定する。これにより、位置を示す値x、yおよびドットの大きさを示す値Dからなる描画対象点のデータ(x,y,D)を得ることができる。得られた描画対象点のデータ(x,y,D)は、記憶部36に格納される。描画前処理部34は、終点になるまで、ステップ802〜805の処理を繰り返す。これにより、最新の筆圧値や表示装置の分解能などに応じて決まる距離dthだけ相互にほどよく離間した点列のデータを得ることが可能となる。
【0062】
[描画処理]
次に、描画処理(図4のステップ405)について説明する。本実施の形態において、描画処理は、上記描画対象点のデータを読み出して、描画対象点が示す位置(x,y)に、Dで示される大きさの点を描画する。すなわち、本実施の形態においては、描画対象点の間を、ある太さの線で結ぶのではなく、多数の描画対象点を、画面上に最適な間隔で描画することで曲線や直線を表す。これが従来の手法との大きな違いである。また、本実施の形態においては描画前処理が繰り返し実行される。したがって、それぞれの描画前処理において生成された描画対象点のデータが、順次、所定の透明度を持った点として、所定の色の濃さになるように重畳され、画面に表示される。たとえば、描画対象点に描画される色の濃さ(透明度)は予め定められる。また、この描画対象点は、それぞれ、前述したように、ドットの大きさDが対応付けられているため、描画対象点はそれぞれ筆圧に応じた大きさで描画される。
【0063】
なお、取得された描画対象点全てを重ね合わせるのではなく、描画対象点のうち選択された所定の一部を重ね合わせるように構成しても良い。
【0064】
図10は、本実施の形態にかかる描画処理を概略的に示す図である。たとえば、タブレット17に入力された4つの点列Pi−3〜Pにより、描画対象点の点列1001が得られている。同様に、4つの点列Pi−2〜Pi+1、Pi−1〜Pi+2、P〜Pi+3(図示せず)により、描画対象点の点列1102、1103、1104がそれぞれ得られている。本実施の形態においては、表示装置16の画面上に表示される曲線1010は、上記点列1001〜1004が重ね合わせられたものである。たとえば、曲線1010の領域1013は、点列1001〜1003の重ね合わせであり、領域1014は、点列1002〜1004の重ね合わせである。また、他の領域(たとえば、領域1011、1012,01015)も、同様に、図示した点列および他の点列の重ね合わせであることが理解できるであろう。
【0065】
さらに、本実施の形態においては、ステップ402〜404の処理が繰り返されることにより、入力された4つの点列により、順次、描画対象点の点列が作られていく。したがって、ほぼ点列の入力(つまり、タブレットペンの動作)に応じてほぼリアルタイムで、描画対象点により構成された曲線を、その筆圧に応じた太さで再現することが可能となる。
【0066】
図11は、ユーザがタブレット17上でタブレットペン18を動かして、その結果、点列データ取得部31により取得された点列データの例を示す図である。また、図12は、本実施の形態にかかる処理により表示装置16の画面上に表示された曲線の例を示す図である。図12の例においては、補間処理部32によって補間・平滑化され、描画前処理部34において、点列が適度に間引かれ、描画処理部35により、描画対象点が最終的に所定の色の濃さになるよう重ねあわされて表示された結果、タブレットペン18の動きが曲線により再現されている。
【0067】
本実施の形態によれば、入力された点(サンプル点)が、補間に必要な数だけ存在する場合に、当該必要数により補間された値を算出することが可能な補間・平滑化関数を通して、補間された点列を構成する点の座標値を算出する。これにより、全ての点列が得られるまで処理の開始を待つことなく、補間に必要な数だけサンプル点が得られた段階で、演算を実行することが可能となる。
【0068】
また、本実施の形態によれば、上記補間に必要な数だけサンプル点が得られた段階で実行された演算により得られた補間された座標値に基づく点列を、既に表示装置の画面上に表示されている点列に重ね合わせて描画していく。これにより、隣接する点の間を直線で結ぶ必要なく、滑らかな曲線を再現することが可能となる。
【0069】
[他の例]
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【0070】
たとえば、前記実施の形態においては、タブレットペンがタブレット上で接触した状態で、その位置を点列として取得しているがこれに限定されるものではなく、タブレットペンがタブレットに接近しているが接触しない状態であっても、タブレットペンの位置を点列として取得することができる。これは、タブレット17と、タブレットペン(スタイラスペン)18との間の電磁誘導授受作用により位置検出することから実現できる。
【0071】
また、前記実施の形態においては、タブレットペンの位置している平面座標(X座標、Y座標)および筆圧により、座標値(X,Y,P)を取得しているが、筆圧に加えて、タブレットペンの傾斜Aを検出して、座標値(X,Y,P,A)を取得しても良い。この場合には、タブレットペン18の傾斜についても、数8に示す数式と同様に、以下のように補間された傾斜値が求められても良い。
【0072】
A(t)=ΣAi,K(t)
さらに、傾斜値と、描画のための要素(たとえば、筆圧と同様にドットの大きさであっても良いし、色やドットの濃度など他の要素であっても良い)とを対応付けることで、タブレットペンの傾斜に応じた描画が実現される。
【0073】
或いは、筆圧の代わりに、タブレットペンの傾斜を利用して、座標値(X,Y,A)を取得しても良い。
【0074】
さらに、前記実施の形態においては、描画されるドットの形状は円形であっても楕円形であっても良い。無論、筆圧に応じてその大きさが決定されるものであれば他の形状であっても良い。
【0075】
また、前記実施の形態においては、取得座標値を距離dに応じて細分化してパラメータ化した値と、B−スプライン関数との積和演算を行い、補間された座標値を算出して、補間および平滑化を実現している。しかしながら、使用できる補間・平滑化関数は上述した関数に限定されるものでなく、たとえば、ガウス関数を適用しても良い。ガウス関数Gを利用した場合には、数8の数式と同様の表現をすると、以下のように表すことができる。なお、ガウス関数の形状を決めるパラメータには、筆圧Pや距離dなどが、逐次、考慮されることが望ましい。
【0076】
X(t)=ΣXG(t)
Y(t)=ΣYG(t)
P(t)=ΣPG(t)
釣鐘型の関数であればガウス関数以外の関数も利用され得る。
【0077】
さらに、前記実施の形態においては、数8に示すように、以下の数式を用いて補間された座標値を算出した。
【0078】
X(t)=ΣXi,K(t)
Y(t)=ΣYi,K(t)
P(t)=ΣPi,K(t)
これによると、入力された点(サンプル点)を制御点として用いるため、補間された座標値からなる点列は、サンプル点を通らない。そこで、より好ましい実施の形態として、筆記速度が速く、点列がまばらになった際(点列を構成する点の間の距離dが大きくなった場合)にも、サンプル点に、より接近した位置に補間点列が計算されるように、以下のような数式を用いて補間・平滑化される座標値を算出しても良い。
【0079】
X(t)=w(d)ΣXi,K(t)
Y(t)=w(d)ΣYi,K(t)
P(t)=w(d)ΣPi,K(t)
ここに、w(d)は、速度(距離)の関数値としての重みである。
【0080】
また、前記実施の形態にいては、描画前処理においても、隣接する点の間が所定の距離内であれば点列の間引き処理を実行している(ステップ504、505)が、これは省略しても良い。
【符号の説明】
【0081】
10 描画装置
11 CPU
12 ROM
13 RAM
14 入力部
15 補助記憶装置
16 表示装置
17 タブレット
18 タブレットペン
31 点列データ取得部
32 補間処理部
33 補間・平滑化処理部
34 描画前処理部
35 描画処理部
36 記憶部

【特許請求の範囲】
【請求項1】
入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画する描画装置であって、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段と、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段と、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段と、を備えたことを特徴とする描画装置。
【請求項2】
前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されたことを特徴とする請求項1に記載の描画装置。
【請求項3】
前記描画手段が、前記補間された座標値に応答する位置の点の所定の一部を重ね合わせるように構成されたことを特徴とする請求項2に記載の描画装置。
【請求項4】
前記描画手段が、前記補間された座標値に応答する位置の点を所定の透明度にて重ねあわせるように構成されたことを特徴とする請求項2または3に記載の描画装置。
【請求項5】
前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されたことを特徴とする請求項1ないし4の何れか一項に記載の描画装置。
【請求項6】
前記補間・平滑化手段が、前記取得された座標値に基づき、B−スプライン関数の積和演算として、
【数9】

(ただし、X,Yは、それぞれ、入力された点列中、第i番の点のX座標およびY座標であり、Bi,K(t)は、(K−1)次のB−スプラインである。また、パラメータtは、i番目の座標値に対して、i≦t<i+1(i=0,1,・・・,N−2)の範囲の値をとる。)を実行し、補間された座標値(X(t)、Y(t))を算出することを特徴とする請求項1ないし4の何れか一項に記載の描画装置。
【請求項7】
前記補間・平滑化手段が、前記取得された座標値に基づき、B−スプライン関数の積和演算として、
【数10】

(ただし、X,Y,Pは、それぞれ、入力された点列中、第i番の点のX座標、Y座標および筆圧を示す値であり、Bi,K(t)は、(K−1)次のB−スプラインである。また、パラメータtは、i番目の座標値に対して、i≦t<i+1(i=0,1,・・・,N−2)の範囲の値をとる。)を実行し、補間された座標値(X(t)、Y(t))および筆圧を示す値P(t)を算出することを特徴とする請求項5に記載の描画装置。
【請求項8】
前記座標値取得手段が、前記入力したサンプル点の所定範囲に他のサンプル点が存在する場合には、上記入力したサンプル点を、取得するサンプル点から除外するように構成されたことを特徴とする請求項1ないし6の何れか一項に記載の描画装置。
【請求項9】
前記描画手段が、補間された座標値が示す点の所定範囲に、他の補間された座標値が示す点が存在する場合には、当該補間された座標値が示す点を描画対象から除外するように構成されたことを特徴とする請求項1ないし8の何れか一項に記載の描画装置。
【請求項10】
入力装置および表示装置を備えたコンピュータにおいて、入力された複数の点列に基づいて、補間された点を生成して表示装置の画面上に描画するための描画プログラムであって、前記コンピュータを、
入力された点列を構成する各サンプル点の座標値を取得する座標値取得手段、
前記座標値取得手段により取得されたサンプル点の数が、所定数のサンプル点が存在する場合に当該所定数のサンプル点に基づき補間された値を算出可能な補間・平滑化関数における前記所定数に達したときに、当該所定数のサンプル点の座標値に、前記補間・平滑化関数を適用して、補間された座標値を生成する補間・平滑化手段、並びに、
表示装置の画面上において、前記補間された座標値に応答する位置に点を描画する描画手段、として機能させることを特徴とする描画プログラム。
【請求項11】
前記描画手段が、前記表示装置の画面上に既に描画された点列に、前記補間・平滑化手段により生成された、補間された座標値に応答する位置の点を重ね合わせることにより描画するように構成されたことを特徴とする請求項10に記載の描画プログラム。
【請求項12】
前記描画手段が、前記補間された座標値に応答する位置の点の所定の一部を重ね合わせるように構成されたことを特徴とする請求項11に記載の描画プログラム。
【請求項13】
前記描画手段が、前記補間された座標値に応答する位置の点を所定の透明度にて重ねあわせるように構成されたことを特徴とする請求項11または12に記載の描画プログラム。
【請求項14】
前記座標値取得手段が、前記入力された点列を構成するサンプル点における筆圧を示す値を取得し、
前記補間・平滑化手段が、前記サンプル点における筆圧を示す値に、前記補間・平滑化関数を適用して、補間された筆圧を示す値を算出し、
前記描画手段が、前記補間された座標値が示す位置において、前記補間された筆圧を示す値に応じた大きさの点を描画するように構成されたことを特徴とする請求項10ないし13の何れか一項に記載の描画プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2011−22685(P2011−22685A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−165401(P2009−165401)
【出願日】平成21年7月14日(2009.7.14)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】