説明

手書き文字描画方法およびその方法をコンピュータに実行させるプログラム

【課題】手書き文字品質を向上させると共に、画像処理にかかる負担を軽減して表示遅れを少なくし、違和感のない手書き文字描画を行うようにする。
【解決手段】座標指示器(マウス、タッチペン等)を用いて画面122上で文字描画操作を行う場合は、その操作位置をマウスデータ(マウス座標)152に変換し、手書き文字描画制御部121へ通知する。手書き文字描画制御部121では、始点座標と終点座標から描画領域の頂点座標を算出し(描画領域算出部123)、描画領域の交点座標を検索して、接続時の補完領域を算出し(補完領域算出部124)、交点座標を算出する(交点座標算出部125)。そして、有効画素面積を算出し(画素面積算出部126)、その面積比に相当する描画色を画像メモリに設定して、画面122上に描画表示する(画素描画部127)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、手書き文字描画方法およびその方法をコンピュータに実行させるプログラムに関するものである。
【背景技術】
【0002】
近年、PDP(プラズマディスプレイパネル)や液晶ディスプレイ等が大型化し、低価格化する傾向にあるため、その表示画面上にタッチパネルを装着して専用ペンや指などで直接操作可能なタッチパネルディスプレイが会議、プレゼンテーション等に用いられるようになってきている。
【0003】
タッチパネルディスプレイを使ってペン操作を行う場合の最大の利点は、手書き文字が容易に描画できる点にある。しかし、電子黒板と比較した場合、手書き文字の輪郭部分のギザギザが目立って文字品質が大きく劣るため、電子黒板を代替するには至らず、ディスプレイとしての需要に留まっている。
【0004】
そこで、拡大描画を行い、1ピクセル(画素)に相当する拡大領域の描画部分を検索することにより面積比率によるブレンド比を求めて、グラデーション色を決定し、保存する多階調文字発生方法及びその装置が開示されている(特許文献1参照)。
【0005】
また、拡大描画して、1ピクセル(画素)に相当する拡大領域の描画部分を検索することにより面積比を算出して、これを複数の描画プロセッサにより実行するアンチエイリアス描画装置が開示されている(特許文献2参照)。
【0006】
さらに、最小二乗法を用いた演算によって擬似的に描画軌跡を求め、描画軌跡間のギザギザを補正する手書き入力表示装置が開示されている(特許文献3参照)。
【0007】
【特許文献1】特開平4−188192号公報
【特許文献2】特開2003−303349号公報
【特許文献3】特開平8−179874号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記特許文献のように、アンチエイリアス処理を施すことにより、ある程度の手書き文字品質の向上を図ることができる。そして、文字品質を向上させるためには、描画部分を拡大描画し、1画素に相当する領域の描画部を検索して、描画部の比率を求める方法が一般的に知られている。しかしながら、この方法を用いると、拡大描画と実描画とで2度の描画処理が発生するため、描画処理に時間がかかって表示が遅れてしまい、違和感を覚えるという問題があった。
【0009】
本発明は、上記に鑑みてなされたものであって、手書き文字品質を向上させると共に、画像処理にかかる負担を軽減して表示遅れを少なくし、違和感のない手書き文字描画方法およびその方法をコンピュータに実行させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、請求項1にかかる手書き文字描画方法は、座標指示物を使って手書き文字を描画する手書き文字描画方法であって、描画座標軌跡間を予め設定された線色と線幅による描画領域の頂点座標を算出する描画領域算出ステップと、前記描画領域算出ステップにより算出された頂点座標に基づいて前記描画領域とX軸、Y軸との交点座標を算出する交点座標算出ステップと、前記交点座標算出ステップにより算出された交点座標に基づいて画素単位での前記描画領域の面積を算出する画素面積算出ステップと、前記画素面積算出ステップにより算出された画素単位での前記描画領域の面積から画素面積比を求め、その画素面積比に相当するグラデーション色にて描画する画素描画ステップとを含む。
【0011】
また、請求項2にかかる発明は、請求項1に記載の手書き文字描画方法において、前記画素面積算出ステップは、1画素の画素長を整数倍して拡大し、画素面積の算出を行うことを特徴とする。
【0012】
また、請求項3にかかる発明は、請求項1または2に記載の手書き文字描画方法において、前記交点座標算出ステップは、前記描画領域の端部のX軸交点座標を求めるX軸交点座標算出ステップと、前記描画領域の端部のY軸交点座標を求めるY軸交点座標算出ステップとを含み、前記X軸交点座標算出ステップと前記Y軸交点座標算出ステップとで算出された交点座標に基づいて画素単位で描画領域の面積を算出することを特徴とする。
【0013】
また、請求項4にかかる発明は、請求項1〜3のいずれか一つに記載の手書き文字描画方法において、前記描画領域算出ステップと前記交点座標算出ステップとの間に、前記描画座標軌跡の直線接続時に形成される非描画領域としての補完領域の頂点座標を算出する補完領域算出ステップをさらに含み、算出された補完領域の頂点座標に基づいて前記交点座標算出ステップで前記非描画領域とX軸、Y軸との交点座標を算出し、前記画素面積算出ステップで画素単位の非描画領域の面積を算出して、前記画素描画ステップで画素面積比に相当するグラデーション色にて描画することを特徴とする。
【0014】
また、請求項5にかかる発明は、請求項1〜4のいずれか一つに記載の手書き文字描画方法において、描画済みの画素に再描画された場合は、前記画素面積算出ステップにて画素面積を加算し、前記画素描画ステップにより前記加算された画素面積の画素面積比に相当するグラデーション色にて再描画することを特徴とする。
【0015】
また、請求項6にかかる発明は、前記請求項1〜5のいずれか一つに記載の手書き文字描画方法をコンピュータに実行させるプログラムである。
【発明の効果】
【0016】
請求項1にかかる手書き文字描画方法は、座標指示物を使って手書き文字を描画する際に、描画領域算出ステップにより描画座標軌跡間を予め設定された線色と線幅による描画領域の頂点座標を算出し、その頂点座標に基づいて交点座標算出ステップで描画領域とX軸、Y軸との交点座標を算出する。画素面積算出ステップでは、交点座標算出ステップで算出された交点座標に基づいて画素単位での描画領域の面積を算出し、その算出された画素面積から画素描画ステップにより画素面積比を求め、画素面積比に相当するグラデーション色にて描画する。このため、手書き文字描画時における輪郭部分のギザギザが目立たなくなって手書き文字の品質が向上するので、タッチパネルディスプレイを電子黒板代わりに利用可能となる。これにより、電子データはプロジェクタやディスプレイに表示し、議事録やメモなどの手書き文字は、電子黒板を用いるといった使い分けが不要となり、利便性の向上が図れるという効果を奏する。
【0017】
請求項2にかかる手書き文字描画方法は、画素面積算出ステップにおいて、1画素の画素長を整数倍して拡大し、画素面積を算出する。このため、画素面積を算出するための拡大描画処理が不要となる(拡大描画処理による遅れがなくなる)ことから、描画操作に追従して表示され、操作と表示の遅延による違和感がなくなるという効果を奏する。
【0018】
請求項3にかかる手書き文字描画方法は、交点座標算出ステップにX軸交点座標算出ステップとY軸交点座標算出ステップとが含まれ、それぞれのステップで算出された交点座標に基づいて画素単位で描画領域の面積を算出する。このため、画素面積比を精度良く求めることができると共に、違和感のない描画表示を行うことができる。
【0019】
請求項4にかかる手書き文字描画方法は、描画領域算出ステップと交点座標算出ステップとの間に、描画座標軌跡の直線接続時に形成される非描画領域としての補完領域の頂点座標を算出する補完領域算出ステップを含み、補完領域の頂点座標に基づいてX軸、Y軸との交点座標を算出し、画素単位の非描画領域の面積を算出し、画素面積比に相当するグラデーション色にて描画する。このため、手書き文字描画時における輪郭部分のギザギザが目立たなくなって手書き文字の品質が向上し、タッチパネルディスプレイを電子黒板代わりに利用することができ、利便性の向上が図れるという効果を奏する。
【0020】
請求項5にかかる手書き文字描画方法は、描画済みの画素に再描画された場合、画素面積算出ステップにて画素面積を加算し、画素描画ステップにより加算された画素面積の画素面積比に相当するグラデーション色にて再描画する。このため、手書き文字を上書きする場合であっても、良好な手書き文字品質を維持することができるという効果を奏する。
【0021】
請求項6にかかるプログラムは、請求項1〜5のいずれか一つに記載の手書き文字描画方法をコンピュータに実行させることができるという効果を奏する。
【発明を実施するための最良の形態】
【0022】
以下に、本発明にかかる手書き文字描画方法、その方法をコンピュータに実行させるプログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0023】
図1は、本発明の手書き文字描画方法を実施するコンピュータシステムの構成を説明するブロック図であり、図2−1は、座標データの構造を示す図であり、図2−2は、座標ステータスの状態説明図であり、図3−1は、マウスデータの構造を示す図であり、図3−2は、マウスステータスの状態説明図である。
【0024】
図1に示すコンピュータシステム10は、タッチパネル11の付いたディスプレイ12とパーソナルコンピュータ(以下、PCという)15とが組み合わされて構成されている。タッチパネル11から入力された手書き文字の座標データは、PC15内で文字品質を向上させるための画像処理が行われ、その画像処理された画像データに基づいてディスプレイ12上に描画するものである。
【0025】
(座標入力制御)
図1に示すディスプレイ12面に接触する座標指示物(電子ペンなど)の描画位置をタッチパネル11で検出し、座標算出制御装置13により座標位置を算出して、その座標データ14をPCI/F(PCインターフェース)を介してPC15へ送信する。PCI/Fとしては、RS232CやUSB等を使うことができる。なお、図1では、座標位置を算出する座標算出制御装置13が説明の便宜上、タッチパネル11とPC15の間に描かれているが、実際にはディスプレイ12内に格納されている。
【0026】
座標データ14の構造は、図2−1に示すように、座標の状態を表す座標ステータスと、座標位置を表すX座標、Y座標とを含んでいる。座標ステータスには、タッチ座標、停止座標、移動座標、デタッチ座標の4つがあり、それぞれのデータフレームが「1」であればその座標状態を表し、「0」であれば無効を表している。
【0027】
座標データにおける座標ステータスの具体的な内容として、図2−2に示すように、タッチ座標とは、座標指示物が非検知状態から最初に検知された座標のことである。停止座標とは、接触中の座標指示物が前回検知(10ms周期)したのと同一座標のことである。移動座標とは、接触中の座標指示物が前回検知(10ms周期)から移動した座標のことである。デタッチ座標とは、座標指示物が非検知状態となった座標のことである。
【0028】
PCI/Fを介してPC15へ送信された座標データ14は、PC15内のタッチパネルドライバ151で受信して、OS(オペレーティング・システム)の定義するマウスデータ152に変換される。タッチパネルドライバ151で変換されたマウスデータ152は、OSの提供するマウスI/F(マウスインターフェース)153へ出力される。
【0029】
上記したマウスデータ152は、PC15に接続されるマウスによって出力されるデータと同一の形式であって、アプリケーションプログラム154はマウス操作の場合と同一に扱うことができる。通常マウスは右ボタンと左ボタンを有し、中ボタンを有するマウスも存在する。これに対して、タッチパネル11には、これらのボタンに相当するものが存在しないため、タッチ操作をボタンON、デタッチ操作をボタンOFFとして扱い、ボタン種別(右、中、左)についてはタッチパネルドライバが提供するプロパティによりユーザが選択するものとする。
【0030】
マウスデータ152の構造は、図3−1に示すように、マウスの状態を表すマウスステータスと、マウスの座標位置を表すX座標、Y座標とを含んでいる。マウスステータスには、左ボタン、中ボタン、右ボタンの3つがあり、それぞれのデータフレームが「1」であれば当該ボタンのON状態を表し、「0」であれば当該ボタンのOFF状態を表している。
【0031】
マウスデータにおけるマウスステータスの具体的な内容として、図3−2に示すように、座標ステータスがタッチ座標の場合は、マウスステータスをユーザ選択ボタンONとする。座標ステータスが停止座標の場合は、マウスステータスを未出力とする。座標ステータスが移動座標の場合は、マウスステータスをユーザ選択ボタンONとする。座標ステータスがデタッチ座標の場合は、マウスステータスをユーザ選択ボタンOFFとする。
【0032】
図1に戻って、PC15のOSにより実行権が与えられているアプリケーションプログラム154は、マウスI/F153からマウスデータを受け取ると、マウス座標下の情報(メニューやボタン等)に定義されている機能を実行する。その実行結果として画面表示が変更され、画像データ155が更新されて、RGB信号に変換され、ディスプレイ12上に描画像として表示される。
【0033】
上記図1のコンピュータシステムの一例としては、タブレットPCなどがある。以下、手書き文字描画を行うタブレットPCの構成例について図4〜図6を用いて説明する。なお、このタブレットPCのタッチパネルは、電磁誘導センサーユニットと電子ペンなどによって構成されている。
【0034】
(タブレットPC)
図4は、ノート型のタブレットPCの概略図であり、図5は、図4のタッチパネルを構成する電磁誘導センサーユニットの構成説明図であり、図6は、電子ペンにより発生する誘導起電圧分布を示す図である。
【0035】
図4に示すタブレットPC20は、キーボード21とマウス操作を前提とする既存のPCとは異なり、電子ペン23を用いてマウスの代わりに操作を行い、あるいは、キーボードに代えてテキスト入力を手書き文字描画と文字認識とによって行えるよう、ディスプレイ22にタッチパネル22が標準装備されている。また、マイクロソフト社からタブレットPC用のOS(例えば、「Windows(登録商標) PC Tablet PC Edition」など)がリリースされており、手書き文字認識エンジン、あるいは音声認識エンジンなどが提供されている。
【0036】
タブレットPC20は、一般的なノートPCと同様に、液晶ディスプレイ、キーボード、マウスなどで構成され、同様の操作が可能である。図4には、ディスプレイ22を180度回転させて折り畳んだ状態が示されている。この折り畳んだ状態でのディスプレイ22の内部構造は、上から強化ガラス221、液晶ディスプレイユニット222、電磁誘導センサーユニット223の順に配置されており、ディスプレイ表示と電子ペン23による座標指示の両方を行うことができる。
【0037】
電磁誘導センサーユニット223は、タブレットPC20に内蔵されていて、ディスプレイ上の電子ペン23の位置(座標)により、マウスのクリック、ドラッグ操作をエミュレートする。水平のディスプレイ22と電子ペン23によりマウス操作では困難な手書き文字が、紙に文字を書く感覚で描画可能となる。
【0038】
電磁誘導センサーユニット223の電子ペン描画面の構成は、図4に示したように、電子ペン23が直接接触する面には強化ガラス221が設置され、液晶ディスプレイユニット222に傷つくのを防止している。また、液晶ディスプレイユニット222の下に電子ペンの位置を検知する電磁誘導センサーユニット223が設置されているため、ディスプレイの画像品質が損なわれない構造となっている。図4のタブレットPC20では、ディスプレイ22を回転して折り畳む形式を示したが、ディスプレイ22の部分を取りはずせるようにしても良い。
【0039】
図5に示す電磁誘導による座標検知方式は、コイル231とコンデンサ232で構成された共振回路233が電子ペン23に内蔵されていて、電磁誘導センサーユニット223のセンサーコイル30に流れる電流による磁界により、電子ペン23のコイル231に誘導起電圧が生じ、コンデンサ232とからなる共振回路233が励振され共振電流が流れる。
【0040】
電磁誘導センサーユニット223のセンサーコイル30は、座標検知精度に比例した密度に設置されている。図5は、X軸方向を検知するためのセンサーコイルの1部を示している。また、図示していないが、これと直角の方向にY軸方向を検知するためのセンサーコイルも設置されている。
【0041】
座標算出制御装置13は、送受切替スイッチ32を制御し、送受切替スイッチ32をA−Cに接続して、交流電源31からセンサーコイル30に電流を流し、X軸コイル切替スイッチ33を制御して、高速にスイッチを切替えながら順次センサーコイル30へ電流を流す。これによりセンサーコイル30上に順次磁界が発生する。この磁界により電子ペン23が共振することになる。
【0042】
次に、送受切替スイッチ32をB−Cに接続し、X軸コイル切替スイッチ33を順次高速に切り替える。この時、電子ペン32の共振電流により発する磁界により、センサーコイル30に誘導起電圧が発生する。このように、センサーコイル30に発生する誘導起電圧は、増幅し、電圧(V)を測定する。図6の誘導起電圧分布図には、この時検知された誘導起電圧分布の状態が示されている。
【0043】
例えば、電子ペン23が図5のセンサーコイル30の「2」上にある場合、その「2」のコイルから受信される誘導起電圧が最も高くなる。これにより、図6に示す誘導起電圧分布の最も高い点「2」を検出することで、X座標が確定する。また、図示していないが、Y座標も同様にして確定する。
【0044】
このようにして検知した電子ペン23の座標は、PCI/F(例えば、RS232C、USBなどの汎用I/F、又は専用I/F)によりPC15へ座標データとして通知される。また、座標算出制御装置13は、ディスプレイ22に内蔵されている。
【0045】
(タッチパネルディスプレイ)
図7は、タッチパネルディスプレイの概略図である。図7のタッチパネルディスプレイ40は、ディスプレイ41として、PDP(プラズマ・パネル・ディスプレイ)や液晶リアプロジェクタ等の大型の表示装置からなり、PC15から出力される画像を表示する。タッチパネル42は、ディスプレイ41面上に触れた指、あるいはペン等の座標指示物を検知するものである。
【0046】
座標算出制御装置13は、タッチパネル42が検知する情報に基づいて座標指示物の位置を算出し、座標データとしてRS232CやUSBなどのPCI/Fを介してPC15へ通知する。PC15内では、不図示のアプリケーションプログラムを使って、手書き文字品質を向上させる画像処理を行い、RGB画像としてディスプレイ41に描画する。
【0047】
(光遮断検知方式)
図8は、タッチパネルの一例としての光遮断検知方式を説明する図である。図8に示すディスプレイの外枠50の部分に発光ダイオード(LED)51がX軸方向(外枠50の上辺部分)とY軸方向(外枠50の左辺部分)に検知精度に応じて一列に複数個(図8は、XGAディスプレイであるので、解像度が1024×768ピクセルと同じ個数)が配置され、赤外光を発する。
【0048】
また、この赤外光を受光するフォトトランジスタ52は、上記発光ダイオード(LED)51と対向する位置(外枠50のX軸方向の下辺部分と外枠50のY軸方向の右辺部分)に配置され、発光された赤外光を受光して電気信号に変換し、座標算出制御装置13へ送信される。座標算出制御装置13は、X軸方向とY軸方向のLED51を順次発光させ、この光を受光するフォトトランジスタ52から送信される電気信号が特定量以下である場合、座標指示物53がタッチパネル上に存在するものとして、X軸方向とY軸方向のLED51のそれぞれの位置から座標位置を算出する。
【0049】
図8に示すように、座標指示物53が図8に示す位置にある場合は、X軸方向の「LED2」から発光された赤外光が座標指示物53に遮られ、外枠50のX軸方向の下辺部分に設けられたフォトランジスタ52で受光されないX座標を「2」とする。同様にY軸「LED3」から発光された赤外光が座標指示物53に遮られ、外枠50のY軸方向の右辺部分に設けられたフォトランジスタ52で受光されないY座標を「3」として検知される。
【0050】
このように、光遮断検知方式を用いたタッチパネルは、座標指示物として特殊な電子ペン等を用いる必要がなく、光を遮るものであればよいため、人の指等でも座標が指示できるという利点がある。
【0051】
(手書き文字描画方法)
図9−1〜図9−3は、手書き文字描画方法の説明図である。図9−1では、座標入力装置であるタッチパネルを使い、文字描画操作時に(X0,Y0)、(X1,Y1)、(X2,Y2)、(X3,Y3)の4つの点を通る描画座標軌跡が示されている。このように、文字描画は、順次2点間を直線描画する描画座標軌跡60,61,62からなる。
【0052】
図9−2は、図9−1の描画座標軌跡60,61,62のうち、描画座標軌跡60を取り上げ、例えば3ピクセル幅となる直線を描画した場合の描画領域63を示している。
【0053】
そして、図9−3では、1画素の位置と大きさが固定となっていることから、画素単位の描画領域65は、同図に示したように階段状となる。
【0054】
(手書き文字描画制御)
図10−1〜図10−6は、手書き文字描画制御の概要を説明する図である。まず、図10−1に示すように、描画座標軌跡間(X0,Y0)−(X1、Y1)による描画領域63の4頂点座標(Xa,Ya)、(Xb,Yb)、(Xc,Yc)、(Xd,Yd)を算出する。
【0055】
続いて、図10−2に示すように、描画領域端と座標軸の交点座標(XB,YB)、(XC,YC)を算出する。
【0056】
続いて、図10−3では、順次描画する際に生じる補完領域71の交点座標を検索する。このように、図10−2および図10−3に基づいて、図10−4に示すような交点座標テーブルを形成し、図10−5に示すような画素内描画領域部分(図10−2の編みかけ部分70)の画素面積を算出する。
【0057】
そして、図10−6のように、画素面積比に対応したグラデーション色を示すグラデーションテーブルを使い、算出された画素面積の面積比に応じたグラデーション色を用いて描画する。
【0058】
これにより、図10−7で示した階段状となる描画領域72の輪郭部分73,74をグラデーション色を用いて描画することで薄く表示されるため、見た目上ギザギザが目立たなくなる(アンチエイリアス処理)。
【0059】
(頂点座標算出)
図11−1〜図11−3は、描画領域の頂点座標算出方法を説明する図である。図11−1では、1つの画素80をN倍(画素長)に拡大して算出するものである。このNの値は、例えば10程度の実験により得た最適値を用いるものとする。
【0060】
そして、図9−2で示した(X0,Y0)、(X1,Y1)の描画軌跡座標もN倍することにより、(X0*N,Y0*N)、(X1*N,Y1*N)、W=線幅*N となる。
【0061】
続いて、図11−2に示すように、描画直線の描画角度(θ)81を次式により算出する。
θ = arctan{(Y1−Y0)/ (X0−X1)}
【0062】
さらに、図11−2に示す描画領域頂点座標(Xa,Ya)と(Xb,Yb)とを以下の式により算出する。
Xa = X0*N−(W/2)*cos(90−θ)
Ya = Y0*N−(W/2)*sin(90−θ)
Xb = X0*N+(W/2)*sin(θ)
Yb = Y0*N+(W/2)*cos(θ)
【0063】
続いて、図11−3に示すように、描画領域頂点座標(Xc,Yc)と(Xd,Yd)とを以下の式により算出する。
Xc = X1*N−(W/2)*cos(90−θ)
Yc = Y1*N−(W/2)*sin(90−θ)
Xd = X1*N+(W/2)*sin(θ)
Yd = Y1*N+(W/2)*cos(θ)
このようにして、順次描画領域頂点座標を算出することができる。
【0064】
(交点座標検索)
図12−1〜図12−6は、描画領域端と座標軸の交点座標検索方法を説明する図である。まず、図12−1に示すように、描画領域には上端座標(Xa,Ya)、下端座標(Xd,Yd)、左端座標(Xc,Yc)、右端座標(Xb,Yb)がある。すなわち、上端座標は、Y座標が最大となる頂点座標(Xa,Ya)であり、下端座標は、Y座標が最小となる頂点座標(Xd,Yd)であり、左端座標は、X座標が上端X座標、下端X座標より小なる頂点座標(Xc,Yc)であり、右端座標は、X座標が上端X座標、下端X座標より大なる頂点座標(Xb,Yb)である。描画角度(θ)は、θ = arctan{(Y1−Y0)/ (X0−X1)}で求められる。
【0065】
まず、図12−1に示す上端座標(Xa,Ya)、左端座標(Xc,Yc)間のY軸交点座標90を算出する。これを図12−2で見ると、 1≦i≦{(Xa−1)/N−Xc/N}において、交点座標(Xm,Yα)を次式により算出し、画素属性を「左端画素」とする。
Xm = (Xc/N+i)*N
Yα = Ya+(Xa−Xm)*tan(θ)
【0066】
続いて、図12−1に示す上端座標(Xa,Ya)、右端座標(Xb,Yb)間のY軸交点座標91を算出する。これを図12−3で見ると、1≦i≦{(Xb−1)/N−Xa/N}において、交点座標(Xm,Yα)を次式により算出し、画素属性を「右端画素」とする。
Xm = (Xa/N+i)*N
Yα = Ya+(Xm−Xa)*tan(90−θ)
【0067】
続いて、図12−1に示す上端座標(Xa,Ya)、左端座標(Xc,Yc)間のX軸交点座標92を算出する。これを図12−4で見ると、1≦i≦{(Yc−1)/N−Ya/N}において、交点座標(Xα,Ym)を次式により算出し、画素属性を「左端画素」とする。
Ym = (Ya/N+i)*N
Xα = Xa−(Ym−Ya)*tan(90−θ)
【0068】
続いて、図12−1に示す上端座標(Xa,Ya)、左端座標(Xc,Yc)間のX軸交点座標93を算出する。これを図12−5で見ると、1≦i≦{(Yb−1)/N−Ya/N}において、交点座標(Xα,Ym)を次式により算出し、画素属性を「右端画素」とする。
Ym = (Ya/N+i)*N
Xα = Xa+(Ym−Ya)*tan(θ)
【0069】
また、上記と同様に、図12−1に示す下端座標(Xd,Yd)、左端座標(Xc,Yc)間のY軸交点座標94を算出する。この場合、1≦i≦{(Xd−1)/N−Xc/N}において、交点座標(Xm,Yα)を次式により算出し、画素属性を「左端画素」とする。
Xm = (Xc/N+i)*N
Yα = Yd−(Xd−Xm)*tan(90−θ)
【0070】
続いて、図12−1に示す下端座標(Xd,Yd)、右端座標(Xb,Yb)間のY軸交点座標95を算出する。この場合、1≦i≦{(Xb−1)/N−Xd/N}において、交点座標(Xm,Yα)を次式により算出し、画素属性を「右端画素」とする。
Xm = (Xd/N+i)*N
Yα = Yd−(Xm−Xd)*tan(θ)
【0071】
続いて、図12−1に示す下端座標(Xd,Yd)、左端座標(Xc,Yc)間のX軸交点座標96を算出する。この場合、1≦i≦{(Yd−1)/N−Yc/N}において交点座標(Xα,Ym)を次式により算出し、画素属性を「左端画素」とする。
Ym = (Yc/N+i)*N
Xα = Xd−(Yd−Ym)*tan(θ)
【0072】
続いて、図12−1に示す下端座標(Xd,Yd)、右端座標(Xb,Yb)間のX軸交点座標97を算出する。この場合、1≦i≦{(Yd−1)/N−Yb/N}において交点座標(Xα,Ym)を次式により算出し、画素属性を「右端画素」とする。
Ym = (Yb/N+i)*N
Xα = Xd+(Yd−Ym)*tan(90−θ)
【0073】
次に、図12−6に示した交点座標テーブルの原点画素座標、X軸画素数、Y軸画素数を次式により算出する。
原点画素座標 = (左端X座標/N*N,上端Y座標/N*N)
X軸画素数 = (右端X座標−1)/N−左端X座標/N+1
Y軸画素数 = (下端Y座標−1)/N−上端Y座標/N+1
【0074】
また、(0≦i<X軸画素数)、(0≦m<Y軸画素数)の場合に、左上端画素座標を
{(Xi=Xc/N+i)*N,(Ym=Ya/N+m)*N}とし、Xi≦X≦(Xi+N)、Ym≦Y≦(Ym+N)の画素領域内における交点座標と頂点座標とを検索し、図12−6に示す交点座標テーブルへ保存する。
【0075】
(補完領域)
図13−1は、直前描画時の4頂点を通る頂点包含領域と補完領域を示す図であり、図13−2は、図13−1の補完領域におけるX軸・Y軸交点座標の算出説明図である。図
13−1では、直前描画時において、下記4頂点を通る頂点包含領域100が示されている。
Xmin = 最小X座標(Xc)
Xmax = 最大X座標(Xb)
Ymin = 最小Y座標(Ya)
Ymax = 最大Y座標(Yd)
【0076】
そして、この頂点包含領域(Xmin≦X≦Xmax、かつYmin≦Y≦Ymax)100外の頂点座標(Xe,Ye)101を補完領域頂点とする。この頂点座標(Xe,Ye)101と直前描画領域4頂点の距離を算出し、次式
(√(Xe−Xc)2+(Ye−Yc)2)
が最小となる頂点座標(Xc,Yc)102を補完領域頂点とする。
【0077】
このように、始点座標(X1*N,Y1*N)、(Xe,Ye)、(Xc,Yc)を3
頂点とする補完領域71を拡大したのが図13−2である。まず、図13−2に示すように、上端座標(Xc,Yc)103、下端座標(X1*N,Y1*N)104、左端座標
(Xe,Ye)105あるいは右端座標を検索する。
【0078】
そして、上端座標103を基点にX軸交点座標とY軸交点座標とを算出し、続いて、下
端座標104を基点にX軸交点座標、Y軸交点座標を算出する。
【0079】
(画素面積算出)
図14−1は、画素面積の算出パターン例を示した図であり、図14−2は、交点座標テーブルの図であり、図14−3は、画素面積テーブルの図である。図14−1において、X軸、Y軸上の点がそれぞれの交点座標であり、網掛け部分が有効画素面積領域を示し
ている。
【0080】
まず、図14−1において、交点座標数が2つある左端画素110,111の場合、(X0<X1)なる交点座標(X0,Y0)により(X,Y)を算出する。
Y1>Y0:X = X0、Y = (Y0/N+1)*N
Y1<Y0:X = X0、Y = (Y0/N)*N
これに基づいて、上記左端画素の有効画素面積は、次式により算出する。
有効画素面積=N*N−A−B = N*N−(X−X/N*N)*N−{(|Y−Y0|)+(|Y−Y1|)}*(|X−X1|)/2
【0081】
続いて、図14−1では、交点座標数が2つある右端画素112,113の場合、(X0>X1)なる交点座標(X0,Y0)により(X,Y)を算出する。
Y1>Y0:X = X0、Y = (Y0/N+1)*N
Y1<Y0:X = X0、Y = (Y0/N)*N
これに基づいて、上記右端画素の有効画素面積は、次式により算出される。
有効画素面積=N*N−A−B = N*N−{(X/N+1)*N−X}*N−{(|Y−Y0|)+(|Y−Y1|)}*(|X−X1|)/2
【0082】
続いて、図14−1では、交点座標数が3つあるX軸尖端画素114,115の場合、頂点画素座標(X2,Y2)により(X,Y)を算出する。
X2>X0、X1:X = X2/N*N、Y=Y2
X2<X0、X1:X = (X2/N+1) *N、Y = Y2
これに基づいて、上記X軸尖端画素の有効画素面積は、次式により算出される。
有効画素面積 = A+B ={(|X−X0|)+(|X−X2|)}*(|Y−Y0|)/2+{(|X−X1|)+(|X−X2|)}*(|Y−Y1|)/2
【0083】
続いて、図14−1では、交点座標数が3つあるY軸尖端画素116,117の場合、頂点画素座標(X2,Y2)により(X,Y)を算出する。
Y2>Y0、Y1:X = X2、Y = Y2/N*N
Y2<Y0、Y1:X = X2、Y =(Y2/N+1)*N
これに基づいて、上記Y軸尖端画素の有効画素面積は、次式により算出される。
有効画素面積 = A+B ={(|Y−Y0|)+(|Y−Y2|)}*(|X−X0|)/2+{(|Y−Y1|)+(|Y−Y2|)}*(|X−X1|)/2
【0084】
続いて、図14−1では、画素118,119に示すように、左端画素(X0,Y0)、(X1,Y1)によって、上記した左端画素110,111と同様の方法により左端無効領域Aを算出し、右端画素(X2,Y2)、(X3,Y3)によって、上記した右端画素112,113と同様の方法により右端無効領域Bを算出する。
これに基づいて、上記画素118,119における有効画素面積は、次式により算出される。
有効画素面積 = N*N−A−B
【0085】
このように、上記図14−1を用いて説明した画素面積の算出方法では、算出された交点座標は、図14−2に示す交点座標テーブルに格納され、算出された画素面積は、図14−3に示す画素面積テーブルに格納される。
【0086】
(画素描画)
図15は、画素描画を説明する図である。図15に示す画面を水平解像度(1024ピクセル)、垂直解像度(768ピクセル)とし、1色長(1バイト)とする。そして、図15の画素面積テーブルにおける左上端画素座標(X0,Y0)を次式により画面座標(X,Y)に変換する。
X = X0/N、
Y = Y0/N
【0087】
続いて、有効画素面積比を算出し、図15に示す線色グラデーションテーブルから面積比に相当するR、G、B値を取得する。有効画素面積比は、次式により算出される。
有効画素面積比(%) = 画素面積/(N*N)
図15では、有効画素面積比が20%であって、R値(200)、G値(200)、B値(255)とする。
【0088】
このようにして算出されたR、G、B値は、画面座標(X,Y)に相当する画像メモリのアドレスに設定される。画像メモリのアドレスは、次式により求められる。
画像メモリのアドレス(先頭からのオフセット) = 1024*Y*3+X*3
【0089】
(手書き文字描画応用)
図16−1〜図16−3は、手書き文字描画応用例を説明する図である。図16−1は、黒板アプリケーションを用いて手書き文字を描画した場合の表示画面例である。図16−1に示すように、黒板アプリケーションを使うことにより、電子黒板と同様に座標指示器(電子ペン)23によって画面22上に手書き文字を描画することができる。描画する文字の文字色、あるいは文字幅については、文字設定ダイアログ120の中から選択することにより容易に設定することができる。
【0090】
図16−2は、他のアプリケーションプログラムの表示に上書きアプリケーションを用いて手書き文字を描画する場合の表示画面例である。図16−2に示すように、他のアプリケーションプログラムで表示された文章に対して、説明箇所を明示するように座標指示器(電子ペン)23を使ってマークしたり、補足説明等の目的で手書き文字を重ねて描画したりすることができる。
【0091】
図16−3は、上書きアプリケーションを構成する手書き文字描画制御部の概略構成を説明するブロック図である。図16−3に示すように、座標指示器(マウス、タッチペン等)を用いて画面122上で文字描画操作を行う場合は、その操作位置をマウスデータ(マウス座標)152に変換し、手書き文字描画制御部121へ通知する。手書き文字描画制御部121では、まず始点座標と終点座標から描画領域の頂点座標を算出する(描画領域算出部123)。次いで、描画領域の交点座標を検索して、接続時の補完領域を算出し(補完領域算出部124)、その交点座標を算出する(交点座標算出部125)。次いで、有効画素面積を算出し(画素面積算出部126)、その面積比に相当する描画色を画像メモリに設定して、画面122上に描画表示する(画素描画部127)。このように、所望の手書き文字を画面122上に描画表示することができる。
【0092】
(手書き文字描画制御フロー)
次に、本実施の形態の動作を図17〜図22のフローチャートを用いて説明する。図17−1は、手書き文字描画制御方法を説明するフローチャートであり、図17−2は、入力値の概略を説明する図であり、図17−3は、ストローク画素面積テーブルの内容を説明する図であり、図17−4は、前頂点座標テーブルの内容を説明する図である。
【0093】
図17−1に示すように、手書き文字描画制御は、黒板アプリケーション、上書きアプリケーション等の応用制御部から図17−2に示す始点座標、終点座標、ステータス、線幅、線色を入力値として実行される。また、画素面積は、図17−3に示すように、ペンダウン(マウスボタンON)〜ペンアップ(マウスボタンOFF)までストローク画素面積テーブルに内部保存して、接続時の重なり領域の画素面積算出に用いられる。
【0094】
図17−1に示すように、1ストローク描画が開始されると(ステップS100)、ストローク画素総数を0に設定クリアする(ステップS101)。そして、描画領域算出制御処理を実行し、始点座標、終点座標、線幅により描画領域の頂点座標を算出する(ステップS102)。
【0095】
次に、ステップS103の交点領域算出制御処理では、頂点座標により描画領域とX軸、Y軸との交点座標を算出し、ステップS104の画素面積算出制御処理では、画素単位で描画領域の面積を算出する。次いで、ステップS105の画素描画制御処理では、画素面積比に相当する線色グラデーションテーブルからRGB値を取得して、描画領域に設定し、ステップS106の補完領域算出制御処理では、補完領域の頂点座標を算出する。
【0096】
そして、ステップS107の描画領域頂点座標保存処理では、描画領域の頂点座標を次描画時の補完領域算出用として、図17−4に示す前頂点座標テーブルへ保存し、ステップS108の交点座標算出制御処理では、補完領域とX軸、Y軸との交点座標を算出する。さらに、ステップS109の画素面積算出制御処理では、画素単位に補完領域の面積を算出し、ステップS110の画素描画制御処理では、画素面積比に相当する線色グラデーションテーブルからRGB値取得して、補完領域に設定する。
【0097】
(描画領域算出制御フロー)
図18−1は、図17−1の描画領域算出制御のサブルーチンを説明するフローチャートであり、図18−2は、入力値の概略を説明する図であり、図18−3は、算出する頂点座標を説明する図である。
【0098】
図18−1に示す描画領域算出制御では、図18−2の始点座標、終点座標、線幅を入力値とし、上記の頂点座標算出方法(図11−1〜図11−3参照)を用いて頂点座標を算出する。まず、描画領域を画素長(アンチエイリアスの効果を最適にする実験値)に拡大、算出するため、始点座標*画素長(ステップS200)、終点座標*画素長(ステップS201)、線幅*画素長(ステップS202)を計算し、始点座標と終点座標から描画角度を算出する(ステップS203)。
【0099】
次に、拡大算出された描画角度、始点座標、線幅に基づいて、図18−3に示した左上頂点座標を算出し(ステップS204)、右上頂点座標を算出し(ステップS205)、左下頂点座標を算出し(ステップS206)、右下頂点座標を算出する(ステップS207)。このように、描画領域算出制御フローでは、始点座標、終点座標、線幅を入力値として、各頂点座標が算出される。
【0100】
(補完領域算出制御フロー)
図19−1は、図17−1の補完領域算出制御のサブルーチンを説明するフローチャートであり、図19−2は、入力値の概略を説明する図であり、図19−3は、前頂点座標テーブルを説明する図であり、図19−4は、算出する補完領域頂点座標を説明する図である。
【0101】
図19−1に示す補完領域算出制御では、上記の描画領域算出制御により得た図19−2に示す右上頂点座標、左上頂点座標、始点座標を入力値として、上記した補完領域の説明(図13−1〜図13−2参照)に基づいて補完領域を算出する。
【0102】
まず、図19−1では、図19−3に示した前頂点座標テーブルの直前描画領域の4頂点座標から頂点包含領域を算出し(ステップS300)、始点座標を補完領域の頂点座標1とする(ステップS301)。
【0103】
次に、ステップS302において、左上頂点座標が頂点包含領域内にある場合は、右上頂点座標を補完領域の頂点座標2とする(ステップS303)。また、ステップS302において、左上頂点座標が頂点包含領域内にない場合は、左上頂点座標を補完領域の頂点座標2とする(ステップS304)。
【0104】
そして、前頂点座標と頂点座標2との間の距離を算出して(ステップS305)、最小となる頂点座標を補完領域の頂点座標3とする(ステップS306)。このように、補完領域算出制御フローでは、右上頂点座標、左上頂点座標、始点座標を入力値として、補完領域の頂点座標が算出される。
【0105】
(交点座標算出制御フロー)
図20−1は、図17−1の交点座標算出制御のサブルーチンを説明するフローチャートであり、図20−2は、入力値の概略を説明する図であり、図20−3は、算出交点座標を説明する図であり、図20−4は、交点座標テーブルを説明する図である。
【0106】
図20−1に示す交点座標算出制御フローでは、図20−2に示すような描画領域、補完領域の頂点座標を入力値として、上記した交点座標検索方法(図12−1〜図12−6参照)に基づいて交点座標を算出する。
【0107】
まず、図20−1では、Y座標が最大となる頂点座標を上端座標として検索し(ステップS400)、Y座標が最小となる頂点座標を下端座標として検索する(ステップS401)。また、X座標が上端X座標、下端X座標よりも小なる頂点座標を左端座標として検索し(ステップS402)、X座標が上端X座標、下端X座標より大なる頂点座標を右端座標として検索する(ステップS403)。
【0108】
ここで、左端座標の有無を判断し(ステップS404)、左端座標が有る場合は、上端座標を基点に左端Y軸交点座標を算出し(ステップS405)、上端座標を基点に左端X軸交点座標を算出し(ステップS406)、下端座標を基点に左端Y軸交点座標を算出し(ステップS407)、下端座標を基点に左端X軸交点座標を算出する(ステップS408)。
【0109】
上記ステップS404で左端座標が無いか、ステップS408の算出後、右端座標の有無を判断する(ステップS409)。ここで、右端座標が有る場合は、上端座標を基点に右端Y軸交点座標を算出し(ステップS410)、上端座標を基点に右端X軸交点座標を算出し(ステップS411)、下端座標を基点に右端Y軸交点座標を算出し(ステップS412)、下端座標を基点に右端X軸交点座標を算出する(ステップS413)。
【0110】
上記ステップS409で右端座標が無いか、ステップS413の算出後、原点画素座標を算出して、図20−4に示す交点座標テーブルへ保存し(ステップS414)、X軸画素数を算出して、交点座標テーブルへ保存し(ステップS415)、Y軸画素数を算出して、交点座標テーブルへ保存した後(ステップS416)、i=0とする(ステップS417)。
【0111】
そして、左上端画素座標を算出する(ステップS418)。すなわち、左上端画素座標 = (原点画素X座標+i/X軸画素数*画素長,原点画素Y座標+i/X軸画素数*画素長)となる。続いて、左上端画素座標の画素領域内に存在する頂点座標を検索し、図20−4に示す交点座標テーブルへ保存し(ステップS419)、左上端画素座標の画素領域内に存在する算出交点座標を検索し、交点座標テーブルへ保存した後(ステップS420)、i+1=iとする(ステップS421)。このカウンタ数iが全画素数(X軸画素数+Y軸画素数)よりも小さい場合は(ステップS422)、上記ステップS418に戻り、ステップS418〜ステップS422が繰り返される。全画素が検索されると、リターンとなる。
【0112】
(画素面積算出制御フロー)
図21−1〜図21−3は、図17−1の画素面積算出制御のサブルーチンを説明するフローチャートであり、図21−4は、交点座標テーブルを説明する図であり、図21−5は、ストローク画素面積テーブルを説明する図であり、図21−6は、画素面積テーブルを説明する図である。
【0113】
図21−1に示す画素面積算出制御フローでは、図21−4に示す交点座標テーブルを入力値として、上記した画素面積算出方法(図14−1〜図14−3参照)に基づいて画素面積を算出する。
【0114】
図21−1に示すように、まずiとmを0にリセットした後(ステップS500、ステップS501)、左端画素と右端画素とを未検出に設定する(ステップS502、ステップS503)。そして、左上端画素座標を算出する(ステップS504)。すなわち、左上端画素座標 = (原点画素X座標+i*画素長,原点画素Y座標+m*画素長)となる。
【0115】
次いで、左上端画素座標の画素領域内に存在する交点座標を検索する(ステップS505)。ここで、交点座標が検索されず(ステップS506)、左端画素が検出され(ステップS507)、右端画素が検出されない場合は(ステップS508)、画素面積(画素長*画素長)を算出する(ステップS509)。
【0116】
また、上記ステップS507において左端画素が検出されないか、上気ステップS508において右端画素が検出された場合は、後述するステップS533に移行する。
【0117】
さらに、上記ステップS506において交点座標が検出され、その検出交点座標が2つあって(ステップS510)、それが左端画素で(ステップS511)、その左端画素が検出された場合は(ステップS512)、左端画素の有効画素面積を算出する(ステップS513)。
【0118】
また、上記ステップS510において、検出交点座標が2つあり、それが右端画素の場合は(ステップS511)、右端画素を検出して(ステップS514)、右端画素の有効画素面積を算出する(ステップS515)。
【0119】
さらに、上記ステップS510において、検出交点座標が3つある場合は、ステップS516に移行し、左端画素が有る場合は(ステップS517)、左端画素を検出し(ステップS518)、右端画素が有る場合は(ステップS519)、右端画素を検出する(ステップS520)。そして、X軸尖端画素が有る場合は(ステップS521)、X軸尖端画素の有効画素面積を算出する(ステップS522)。
【0120】
また、ステップS521において、X軸尖端画素で無い場合は、Y軸尖端画素として、Y軸尖端画素の有効画素面積を算出する(ステップS523)。
【0121】
また、検出交点座標数が4つある場合は(ステップS516でNOとなり)、ステップS524に移行して左端無効領域を算出し、さらに右端無効領域を算出して(ステップS525)、それらの有効画素面積を算出する(ステップS526)。
【0122】
続いて、図21−5のストローク画素面積テーブルにおいて、左上端画素座標の画素がストローク画素面積テーブルに存在するか否かを検索し、存在する場合は描画済み画素として、算出画素面積と保存画素面積を加算する(ステップS528)。
【0123】
次に、加算された画素面積が全画素面積(画素長*画素長)を超える場合は、それを全画素面積とする(ステップS530)。その画素面積は、図21−5のストローク画素面積テーブルへ保存し(ステップS531)、図21−6の画素面積テーブルへ保存する(ステップS532)。
【0124】
そして、ステップS533において、カウント値iをインクリメントし、iがX軸画素数より少ない場合は、上記ステップS504に戻る。
【0125】
また、ステップS534において、iがX軸画素数と同じになった場合は、ステップS535において、カウント値mをインクリメントする。そして、ステップS536でmがY軸画素数より少ない場合は、上記ステップS502に戻り、mがY軸画素数と同じになった場合は、リターンとなる。
【0126】
(画素描画制御フロー)
図22−1は、図17−1の画素描画制御のサブルーチンを説明するフローチャートであり、図22−2は、入力値の概略を説明する図である。
【0127】
図22−1に示す画素描画制御フローでは、図22−2に示す入力値を用いて、上記した画素描画方法(図15参照)に基づいて画素描画制御を行う。
【0128】
まず、図22−1に示すように、カウント値iを0にリセットし(ステップS600)、左上端画素座標を画面座標へ変換するための算出処理を行い(ステップS601)、画素面積比を算出する(ステップS602)。
【0129】
そして、線色に相当するグラデーションテーブルから面積比に相当するRGB値を取得し(ステップS603)、そのRGB値を画面座標に相当する画像メモリに設定され(ステップS604)、カウント値iがインクリメントされる(ステップS605)。
【0130】
ステップS606において、カウント値iが画素総数よりも少ない場合は、ステップS601に戻って上記処理が繰り返される。ステップS606において、カウント値iが画素総数と同じになった場合は、リターンとなる。
【0131】
このように、本実施の形態にかかる手書き文字描画方法によれば、タッチパネルやタブレットPCを使って手書き文字を描画した場合に、描画文字のギザギザが目立たなくなって、手書き文字品質を向上させることができるので、タッチパネルディスプレイを用いた電子黒板として用いることができる。
【0132】
また、本実施の形態によれば、画素面積を算出するための拡大描画処理が不要なため、描画処理速度が向上し、描画操作に追従した違和感のないスムーズな描画感覚で手書き文字を描画することができる。
【0133】
なお、本実施の形態では、主にタッチパネルディスプレイを用いた電子黒板として実施した例で説明したが、必ずしもこれに限定されない。例えば、図23〜図26に示すような装置あるいはシステムを用いて実施することが可能である。
【0134】
図23は、電子ペンで手書き文字描画を行えるタブレットをPCに接続したPCシステムを説明する図であり、図24は、タッチパネルを画面上に装着したノート型のタブレットPCを示す図であり、図25は、大型ディスプレイにタッチパネルを装着して手書きにより文字描画が行えるようにした会議システムの説明図であり、図26は、タブレットPCにプロジェクタを接続してスクリーン上に拡大投影しながら資料上へ上書きしながら説明する会議システムの説明図である。
【0135】
図23に示したPCシステムの場合は、PC本体130とキーボード131にタブレット132を接続し、電子ペン133を使って手書き入力することが可能である。PC本体130における任意のアプリケーションプログラムが作成する文書上へ、タブレット132を使って手書きによる文書の修正、変更内容を文字描画する場合に適用することができる。タブレット132を使って手書き入力する代わりに、マウス操作で行うことも可能であるが、タブレット132の方が文字描画の利便性は高い。
【0136】
図24に示したタブレットPC136の場合は、キーボード134とディスプレイ135で構成されており、ディスプレイ135を180度回転させてキーボード134上に重ね合わせ、ディスプレイ135の表面に設けられた不図示のタッチパネルと電子ペン137とを使って文字等を手書き入力することができる。タブレットPC136の場合は、PCの任意のアプリケーションプログラムが作成する文書上へタッチパネルと電子ペン137とを使い、手書きによる文書の修正、変更内容を文字描画する場合に適用することができる。
【0137】
図25に示した会議システム140の場合は、PDP(プラズマディスプレイパネル)やリヤプロジェクタ等の大型ディスプレイ138にタッチパネル139を装着し、手書きによる文字描画を行うことで、電子黒板として代用することができる。また、PC等を使って任意のアプリケーションプログラムにより作成した資料上へ上書きすることにより、会議や講演の効率化を図ることができる。
【0138】
図26に示した会議システム144の場合は、タブレットPC143にプロジェクタ142が接続され、会議室中央に大型のスクリーン141が設置されている。タブレットPC143の任意のアプリケーションプログラムにより作成した資料をスクリーン141上に投影すると共に、会議中にタブレットPC143を使い、その資料へ自由に上書きすることが可能となるため、会議の効率化を図ることができる。
【産業上の利用可能性】
【0139】
以上のように、本発明にかかる手書き文字描画方法およびその方法をコンピュータに実行させるプログラムは、タブレットやタッチパネルを用いて入力される手書き文字の文字品質が良好であって、表示遅れのないPCシステム、タブレットPCあるいはそれらを用いた会議システムなどに適している。
【図面の簡単な説明】
【0140】
【図1】本発明の手書き文字描画方法を実施するコンピュータシステムの構成を説明するブロック図である。
【図2−1】座標データの構造を示す図である。
【図2−2】座標ステータスの状態説明図である。
【図3−1】マウスデータの構造を示す図である。
【図3−2】マウスステータスの状態説明図である。
【図4】ノート型のタブレットPCの概略図である。
【図5】図4のタッチパネルを構成する電磁誘導センサーユニットの構成説明図である。
【図6】電子ペンにより発生する誘導起電圧分布を示す図である。
【図7】タッチパネルディスプレイの概略図である。
【図8】タッチパネルの一例としての光遮断検知方式を説明する図である。
【図9−1】手書き文字描画方法の説明図である。
【図9−2】手書き文字描画方法の説明図である。
【図9−3】手書き文字描画方法の説明図である。
【図10−1】手書き文字描画制御の概要を説明する図である。
【図10−2】手書き文字描画制御の概要を説明する図である。
【図10−3】手書き文字描画制御の概要を説明する図である。
【図10−4】手書き文字描画制御の概要を説明する図である。
【図10−5】手書き文字描画制御の概要を説明する図である。
【図10−6】手書き文字描画制御の概要を説明する図である。
【図10−7】手書き文字描画制御の概要を説明する図である。
【図11−1】描画領域の頂点座標算出方法を説明する図である。
【図11−2】描画領域の頂点座標算出方法を説明する図である。
【図11−3】描画領域の頂点座標算出方法を説明する図である。
【図12−1】描画領域端と座標軸の交点座標検索方法を説明する図である。
【図12−2】描画領域端と座標軸の交点座標検索方法を説明する図である。
【図12−3】描画領域端と座標軸の交点座標検索方法を説明する図である。
【図12−4】描画領域端と座標軸の交点座標検索方法を説明する図である。
【図12−5】描画領域端と座標軸の交点座標検索方法を説明する図である。
【図12−6】描画領域端と座標軸の交点座標検索方法を説明する図である。
【図13−1】直前描画時の4頂点を通る頂点包含領域と補完領域を示す図である。
【図13−2】図13−1の補完領域におけるX軸・Y軸交点座標の算出説明図である。
【図14−1】画素面積の算出パターン例を示した図である。
【図14−2】交点座標テーブルの図である。
【図14−3】画素面積テーブルの図である。
【図15】画素描画を説明する図である。
【図16−1】手書き文字描画応用例を説明する図である。
【図16−2】手書き文字描画応用例を説明する図である。
【図16−3】手書き文字描画応用例を説明する図である。
【図17−1】手書き文字描画制御方法を説明するフローチャートである。
【図17−2】入力値の概略を説明する図である。
【図17−3】ストローク画素面積テーブルの内容を説明する図である。
【図17−4】前頂点座標テーブルの内容を説明する図である。
【図18−1】図17−1の描画領域算出制御のサブルーチンを説明するフローチャートである。
【図18−2】入力値の概略を説明する図である。
【図18−3】算出する頂点座標を説明する図である。
【図19−1】図17−1の補完領域算出制御のサブルーチンを説明するフローチャートである。
【図19−2】入力値の概略を説明する図である。
【図19−3】前頂点座標テーブルを説明する図である。
【図19−4】算出する補完領域頂点座標を説明する図である。
【図20−1】図17−1の交点座標算出制御のサブルーチンを説明するフローチャートである。
【図20−2】図17−1の交点座標算出制御のサブルーチンを説明するフローチャートである。
【図20−3】入力値の概略を説明する図である。
【図20−4】算出交点座標を説明する図である。
【図20−5】交点座標テーブルを説明する図である。
【図21−1】図17−1の画素面積算出制御のサブルーチンを説明するフローチャートである。
【図21−2】図17−1の画素面積算出制御のサブルーチンを説明するフローチャートである。
【図21−3】図17−1の画素面積算出制御のサブルーチンを説明するフローチャートである。
【図21−4】交点座標テーブルを説明する図である。
【図21−5】ストローク画素面積テーブルを説明する図である。
【図21−6】画素面積テーブルを説明する図である。
【図22−1】図17−1の画素描画制御のサブルーチンを説明するフローチャートである。
【図22−2】入力値の概略を説明する図である。
【図23】電子ペンで手書き文字描画を行えるタブレットをPCに接続したPCシステムを説明する図である。
【図24】タッチパネルを画面上に装着したノート型のタブレットPCを示す図である。
【図25】大型ディスプレイにタッチパネルを装着して手書きにより文字描画が行えるようにした会議システムの説明図である。
【図26】タブレットPCにプロジェクタを接続してスクリーン上に拡大投影しながら資料上へ上書きしながら説明する会議システムの説明図である。
【符号の説明】
【0141】
10 コンピュータシステム
11 タッチパネル
12 ディスプレイ
13 座標産出制御装置
14 座標データ
15 パーソナルコンピュータ(PC)
151 タッチパネルドライバ
152 マウスデータ
153 マウスインターフェース(マウスI/F)
154 アプリケーションプログラム
155 画像データ
20 タブレットPC
21 キーボード
22 ディスプレイ
221 強化ガラス
222 液晶ディスプレイユニット
223 電磁誘導センサーユニット
23 電子ペン
231 コイル
232 コンデンサ
233 共振回路
30 センサーコイル
31 交流電源
32 送受切替スイッチ
33 X軸コイル切替スイッチ
40 タッチパネルディスプレイ
41 ディスプレイ
42 タッチパネル
50 外枠
51 発光ダイオード(LED)
60,61,62 描画座標軌跡
63 描画領域
65 画素単位の描画領域
70 編みかけ部分
71 補完領域
72 描画領域
73,74 輪郭部分
80 画素
81 描画角度
90,91 Y軸交点座標
92,93 X軸交点座標
94,95 Y軸交点座標
96,97 X軸交点座標
100 頂点包含領域
101 頂点座標
102 頂点座標
103 上端座標
104 下端座標
105 左端座標
110,111 左端画素
112,113 右端画素
114,115 X軸先端画素
116,117 Y軸先端画素
118,119 画素
120 文字設定ダイアログ
121 手書き文字描画制御部
122 画面
123 描画領域算出部
124 補完領域算出部
125 交点座標算出部
126 画素面積算出部
127 画素描画部
130 PC本体
131 キーボード
132 タブレット
133 電子ペン
134 キーボード
135 ディスプレイ
136 タブレットPC
137 電子ペン
138 大型ディスプレイ
139 タッチパネル
140 会議システム
141 スクリーン
142 プロジェクタ
143 タブレットPC

【特許請求の範囲】
【請求項1】
座標指示物を使って手書き文字を描画する手書き文字描画方法であって、
描画座標軌跡間を予め設定された線色と線幅による描画領域の頂点座標を算出する描画領域算出ステップと、
前記描画領域算出ステップにより算出された頂点座標に基づいて前記描画領域とX軸、Y軸との交点座標を算出する交点座標算出ステップと、
前記交点座標算出ステップにより算出された交点座標に基づいて画素単位での前記描画領域の面積を算出する画素面積算出ステップと、
前記画素面積算出ステップにより算出された画素単位での前記描画領域の面積から画素面積比を求め、その画素面積比に相当するグラデーション色にて描画する画素描画ステップと
を含む手書き文字描画方法。
【請求項2】
前記画素面積算出ステップは、
1画素の画素長を整数倍して拡大し、画素面積の算出を行うことを特徴とする請求項1に記載の手書き文字描画方法。
【請求項3】
前記交点座標算出ステップは、
前記描画領域の端部のX軸交点座標を求めるX軸交点座標算出ステップと、
前記描画領域の端部のY軸交点座標を求めるY軸交点座標算出ステップと
を含み、前記X軸交点座標算出ステップと前記Y軸交点座標算出ステップとで算出された交点座標に基づいて画素単位で描画領域の面積を算出することを特徴とする請求項1または2に記載の手書き文字描画方法。
【請求項4】
前記描画領域算出ステップと前記交点座標算出ステップとの間に、前記描画座標軌跡の直線接続時に形成される非描画領域としての補完領域の頂点座標を算出する補完領域算出ステップをさらに含み、
算出された補完領域の頂点座標に基づいて前記交点座標算出ステップで前記非描画領域とX軸、Y軸との交点座標を算出し、前記画素面積算出ステップで画素単位の非描画領域の面積を算出して、前記画素描画ステップで画素面積比に相当するグラデーション色にて描画することを特徴とする請求項1〜3のいずれか一つに記載の手書き文字描画方法。
【請求項5】
描画済みの画素に再描画された場合は、前記画素面積算出ステップにて画素面積を加算し、
前記画素描画ステップにより前記加算された画素面積の画素面積比に相当するグラデーション色にて再描画することを特徴とする請求項1〜4のいずれか一つに記載の手書き文字描画方法。
【請求項6】
前記請求項1〜5のいずれか一つに記載の手書き文字描画方法をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2−1】
image rotate

【図2−2】
image rotate

【図3−1】
image rotate

【図3−2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9−1】
image rotate

【図9−2】
image rotate

【図9−3】
image rotate

【図10−1】
image rotate

【図10−2】
image rotate

【図10−3】
image rotate

【図10−4】
image rotate

【図10−5】
image rotate

【図10−6】
image rotate

【図10−7】
image rotate

【図11−1】
image rotate

【図11−2】
image rotate

【図11−3】
image rotate

【図12−1】
image rotate

【図12−2】
image rotate

【図12−3】
image rotate

【図12−4】
image rotate

【図12−5】
image rotate

【図12−6】
image rotate

【図13−1】
image rotate

【図13−2】
image rotate

【図14−1】
image rotate

【図14−2】
image rotate

【図14−3】
image rotate

【図15】
image rotate

【図16−1】
image rotate

【図16−2】
image rotate

【図16−3】
image rotate

【図17−1】
image rotate

【図17−2】
image rotate

【図17−3】
image rotate

【図17−4】
image rotate

【図18−1】
image rotate

【図18−2】
image rotate

【図18−3】
image rotate

【図19−1】
image rotate

【図19−2】
image rotate

【図19−3】
image rotate

【図19−4】
image rotate

【図20−1】
image rotate

【図20−2】
image rotate

【図20−3】
image rotate

【図20−4】
image rotate

【図20−5】
image rotate

【図21−1】
image rotate

【図21−2】
image rotate

【図21−3】
image rotate

【図21−4】
image rotate

【図21−5】
image rotate

【図21−6】
image rotate

【図22−1】
image rotate

【図22−2】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate