JP2008181505A - 表示する手書き線幅を変えるシステム及び方法 - Google Patents

表示する手書き線幅を変えるシステム及び方法 Download PDF

Info

Publication number
JP2008181505A
JP2008181505A JP2007337214A JP2007337214A JP2008181505A JP 2008181505 A JP2008181505 A JP 2008181505A JP 2007337214 A JP2007337214 A JP 2007337214A JP 2007337214 A JP2007337214 A JP 2007337214A JP 2008181505 A JP2008181505 A JP 2008181505A
Authority
JP
Japan
Prior art keywords
stroke
width
strokes
segment
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007337214A
Other languages
English (en)
Other versions
JP5163113B2 (ja
Inventor
Kim Mccall
マコール キム
Piasoru Kurt
ピアソル カート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2008181505A publication Critical patent/JP2008181505A/ja
Application granted granted Critical
Publication of JP5163113B2 publication Critical patent/JP5163113B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Abstract

【課題】ユーザの意図を反映するようにストロークの幅を管理及び修正すること。
【解決手段】本発明によるシステムは、ストロークの曲率やユーザが描くスピードのような幾何学的な又は時間的な特性の関数として手書き線幅を変える。本システムは、ストローク制御モジュール、速度適応モジュール、曲率適応モジュール、スムージングモジュール、近接判定モジュール及びストローク優勢度モジュールを含む。ストローク制御モジュールは、入力を受けた時点での速度及び/又は曲率に基づいて、入力ストロークの幅を変更し、ストロークを調整する。ストローク制御モジュールは、速度適応モジュール、曲率適応モジュール、スムージングモジュール及び他のモジュールと協同し且つそれらを制御し、ユーザの要望及び意図を自動的に反映するようにユーザから入力されたストローク全体の幅を調整し、且つ紙で提供されるような自然な感じの線にかなり近づける。
【選択図】図4B

Description

本発明は一般に表示装置に手書きの線を表示する技法に関連する。特に、本発明は、ユーザの要請や意図を反映するようにコンピュータ装置に表示するストローク(stroke)のサイズを変更するシステム及び方法に関連する。
近年、ペンを利用したコンピュータ装置の普及率を増やすため、多大な企業努力がなされている。現在、多くのラップトップコンピュータはスタイラス及びディスプレイを含み、そのスタイラス等は、カーソル制御やストローク捕捉用にマウスの代わりにスタイラスを利用して、ユーザがコンピュータとやり取りできるようにする。近年、スマートフォンやパーソナルディジタルアシスタント(PDA)のような携帯用コンピュータ装置もスタイラス/タブレット型のインターフェースを組み込み始めている。
スタイラスベースのタブレットに付随する従来からの1つの問題は、スタイラス及びタブレットと共にユーザの体験することが、紙と筆記用具で書く場合にユーザの体験することと一致しないことである。特に、タブレットで捕捉されユーザに表示されるストロークは、一般に、如何なる寸法(dimension)も持っていない。これに対して、ユーザが紙に書く場合、ユーザは筆圧や筆の傾きを利用して、描くストロークの幅に影響を及ぼす。しかしながらスタイラスベースのタブレットシステムで傾斜の付いた圧力を検出することは困難であり且つできたとしても高価になってしまう。複雑なスタイラス並びに複雑な検出及び報告システムの何れも必要になるからである。複雑なスタイラス及び報告システムについてのそのような要請は、そのようなシステムを法外に高価にしてしまう。
従来システムが適切な幅を持つようにストロークを変更できないことは、ユーザの体験やスタイラスベースのタブレットの普及率を大きく妨げている。ユーザは、読みやすくするために、従来システムが表そうとするものより大きなストロークで書く必要があるように感じがちであり、従来システムが表そうとするものは、文字や行の間や中の空きスペースとインクの付いた部分との通常の比率も含み、そのように感じることは、従来システムが異なる線幅に変えることができないことに部分的に起因している。特に、メモをとる場合、文字を紙に書くのと同程度に小さく書けないことはユーザにとって苛立たしいものである。これに対して、円、矢印及び枠を描く場合、ユーザはそれらを遠くからでも見えやすくすることを望んでおり、相当に広いストロークを望んでいる。しかしながら従来技術は、ユーザの意図を反映するようにストロークの幅を管理及び修正する機能を提供していない。
本発明の課題は、ユーザの意図を反映するようにストロークの幅を管理及び修正することである。
本発明は或るシステムと共に従来技術の欠点を克服し、そのシステムは、ストローク(筆使い、筆跡、運筆等を含む)の曲率やユーザが描くスピードのような幾何学的な又は時間的な特性の関数として手書き線幅を変える。一実施例における本発明によるシステムは、ストローク制御モジュール、速度適応モジュール、曲率適応モジュール、スムージングモジュール、近接判定モジュール及びストローク優勢度モジュールを含む。ストローク制御モジュールは、入力を受けた時点での速度及び/又は曲率に基づいて、入力ストロークの幅を変更し、ストロークを調整する。ストローク制御モジュールは、速度適応モジュール、曲率適応モジュール、スムージングモジュール及び他のモジュールと協同し且つそれらを制御し、ユーザの要望及び意図を自動的に反映するようにユーザから入力されたストローク全体の幅を調整する機能をもたらし、且つ紙で提供されるようなものにかなり近い自然な感じの線をもたらす。
また本発明は次のようないくつもの新規な方法も包含する:手書き線幅を変える方法、曲率に合わせて線幅を変える方法、速度に合わせて線幅を変える方法、線の一部を滑らかにする方法、或る領域内のグループの優勢度(dominance)を計算する方法、及び近接グループを判定する方法。
ここで説明される特徴及び利点は網羅的なものではなく、特に、多くの追加的な特徴及び利点は以下の詳細な説明及び図面により当業者には明らかになるであろう。更に、本明細書で使用されている言葉は基本的には読みやすいように説明目的のために選ばれており、発明の対象物の範囲を限定しようとするものではない。
以下、本発明が添付図面と共に非限定的な実施例により説明される。図中、同様な参照番号は同様な要素を表すのに使用される。
表示する手書き線幅を変更するシステム及び方法が説明される。以下の説明では、説明の便宜上、多くの具体的詳細が本発明の十分な理解をもたらすように説明される。しかしながらそのような具体的詳細とは別に本発明は実現可能であることを当業者は理解するであろう。場合によっては、本発明を曖昧にすることを避けるため、構造や装置がブロック図で示される。本発明は例えばスタイラスやタブレットコンピュータ装置と共に主に説明される。しかしながら本発明は携帯性やサイズによらずペンを利用する如何なるタイプのコンピュータ装置にも適用可能である。
本明細書における「一実施例」又は「実施例」は、その実施例に関して説明される特定の特質、構造又は特徴が、本発明の少なくとも1つの実施例に含まれることを意味する。本明細書の様々な場所で「一実施例」なる用語が使用されていることは、全て同じ実施例であることを必ずしも意味しているわけではない。
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現で与えられる。これらのアルゴリズムの説明及び表現は、データ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、その動作や処理は、コンピュータシステムのレジスタ及びメモリの中で物理的な(電子的な)量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよいし、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
最後に、ここで説明されるアルゴリズム及び表示は、特定のコンピュータその他の装置のどれにも固有に関連するものではない。様々な汎用システムがここで教示するものによるプログラムと共に使用されてよく、或いは、必要な方法ステップを実行するように、よりいっそう特化した装置を構築することが便利なことが分かるかもしれない。これら様々なシステムに必要な構造は以下の説明から明らかになるであろう。更に、本発明は特定のプログラミング言語のどれにも依存しない。ここで説明される本発明の教示内容を実現するのに様々なプログラミング言語が使用されてよいことが分かるであろう。
<システム>
図1は本発明の実施例で使用可能なスタイラス102,タブレット又はコンピュータ装置104を示すシステム100の一例を示す。タブレット又はコンピュータ装置104は、画像、文字、データを提示するディスプレイ210を含み、表示は、ストロークの表現をユーザに提示することも含む。タブレット又はコンピュータ装置104は、指やスタイラスの位置を特定するタッチスクリーン又はディジタイザ214をそれぞれ含む。ディジタイザ214はアクティブの又はパッシブの当該技術分野で知られているようなものでよい。
図2を参照するに、本発明の一実施例により構築されるシステム100の機能ブロック図が示されている。システム100は好ましくは制御部250、ディスプレイ装置210及びディジタイザ214を有する。システム100は、キーボード及びカーソル制御部212、ネットワークコントローラ216、並びに1つ以上の入力/出力(I/O)装置218を選択に含んでよい。
制御部250は、算術論理部、マイクロプロセッサ、汎用コンピュータ又は他の何らかの情報機器を有し、それらは電子表示信号をディスプレイ装置210に与えるように備わっている。一実施例では、制御部250はグラフィカルユーザインターフェースを有する汎用コンピュータを有し、例えば、ウインドウズ(登録商標)やユニックス(登録商標)ベースのオペレーティングシステムのようなオペレーティングシステム上で走るジャバ(Java(登録商標))で書かれたプログラムにより生成される。一実施例では、1つ以上のアプリケーションプログラムが制御部250により実行され、アプリケーションプログラムは、限定ではないが、グラフィティ(graffiti)、描画アプリケーション、ノートパッドアプリケーション、ワードプロセシングアプリケーション、電子メールアプリケーション、財務アプリケーション及びウェブブラウザアプリケーションを含む。
図2を更に参照するに、制御部250はプロセッサ202、メインメモリ204及びデータストレージデバイス206を含むように図示され、それら全てはシステムバス208に通信可能に結合されている。
プロセッサ202は、データ信号を処理し、様々なコンピューティングアーキテクチャで構成されてもよい。そのアーキテクチャは、例えば、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ又は命令セットの組み合わせを実現するアーキテクチャ等を含んでよい。図2には1つのプロセッサしか図示されていないが、複数のプロセッサが含まれてもよい。
メインメモリ204は、プロセッサ202で実行される命令及び/又はデータを格納する。命令及び/又はデータは、ここで説明される技法の全部又は一部を実行するコードを構成する。メインメモリ204は、ダイナミックランダムアクセスメモリ(DRAM)装置、スタティックランダムアクセスメモリ(SRAM)装置、その他の当該技術分野で既知のメモリ装置でもよい。メモリ204は図3に関連して以下で詳細に説明される。
データストレージデバイス206は、プロセッサ202のための命令及びデータを格納し、ハードディスクドライブ、フロッピディスクドライブ、CD-ROMドライブ、DVD-ROMドライブ、DVD-RAM装置、DVD-RW装置、フラッシュメモリ装置その他の当該技術分野で既知の何らかの大容量記憶装置を含む1つ以上の装置で構成される。
システムバス208は、制御部250を介して情報及びデータを通信する共有バスを表す。システムバス208は、業界標準アーキテクチャ(ISA)バス、ペリフェラルコンポーネント相互接続(PCI)バス、ユニバーサルシリアルバス(USB)その他の当該技術分野で既知の同様な機能をもたらす他のバスを含む1つ以上のバスを表現してよい。システムバス208を介して制御部250に結合される追加的なコンポーネントは、ディスプレイ装置210、キーボード及びカーソル制御部212、ディジタイザ214、ネットワークコントローラ216及びI/Oデバイス218を含む。
ディスプレイ装置210は、上述したような電子画像及びデータを表示するよう設けられた何らかの装置を表す。ディスプレイ装置210は、例えば、液晶ディスプレイ(LCD)、陰極線管(CRT)その他の同様に備えられた表示装置、スクリーン又はモニタでもよい。一実施例では、ディスプレイ装置210にはタッチスクリーンが備えられ、及び/又はディスプレイ装置はディジタイザ214を含み、接触式の透明パネルがディスプレイ装置210伸すクリーンをカバーする。
ディジタイザ214又はグラフィクスタブレットは平坦な表面を有する一般的なタイプの装置であり、その平面上でユーザはペンのような描画装置を用いて画像を「描き」、座標情報にデコード可能な信号を生成する。ディジタイザ214又はグラフィクスタブレットは、タブレットパーソナルコンピュータ及び他の装置の一部として含まれている一般的などのタイプのものでもよい。
波線で示されているように、システム100はキーボード及びカーソル制御装置212、ネットワークコントローラ216及び1つ以上の入力/出力(I/O)装置218(後述)を選択的に含んでもよい。
キーボード212は制御部250に結合された英数字入力装置を表し、情報及び命令選択をプロセッサ202に伝える。キーボード212はクワーティ(QWERTY)キーボード、キーパッド又はそのようにタッチスクリーン上に形成された表現物でもよい。カーソル制御部212は、コマンド選択内容だけでなく位置データもプロセッサ202に伝えるように設けられたユーザ入力装置を表す。カーソル制御部212は、マウス、トラックボール、スタイラス、ペン、タッチスクリーン又はカーソル指示キーを含んでもよいし、或いはカーソルの動きを引き起こす他の手段を含んでもよい。
ネットワークコントローラ216は、制御部250をネットワーク220に接続し、複数の処理システムを含んでよい。処理システムのネットワークは、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)(例えば、インターネット)を含んでもよいし、及び/又は複数の装置が通信する他の如何なる相互接続データパスを含んでもよい。制御部250は、他のシステムに対する他の一般的なコネクションを有し、他のシステムは、TCP/IP、http、https及びSMTP等のような標準的なネットワークプロトコルを用いてファイル(メディアオブジェクト)を分散するネットワーク等であり、それら自体は当該技術分野で既知である。
1つ以上のI/O装置218がシステムバス208に結合される。これらのI/O装置は一実施例ではシステム100の一部になっていてよいが、(不図示の)他の実施例では他のシステムの部分になっていてもよい。例えば、I/O装置218は書類の画像を捕捉する画像スキャナを含んでもよい。I/O装置218は書類を生成するプリンタを含んでもよい。I/O装置218は、マイクロフォンを介して音声入力を受信し且つスピーカーを介して音声出力を送信するように設けられた音声入力/出力装置を含んでもよい。一実施例では、音声装置は汎用装置であり;汎用コンピュータシステム内で使用するように設計された音声アドイン/拡張カードである。選択的に、I/O音声装置は1つ以上のアナログトゥディジタル又はディジタルトゥアナログ変換器を含み、及び/又は1つ以上のディジタル信号プロセッサを含み、音声処理を支援する。
本発明の精神及び範囲から逸脱せずに、図2に示されるものとは異なる、より多くの又はより少ないコンポーネントを、システム100は含んでもよいことが、当業者に理解されるべきである。例えば、システム100は追加的なメモリ(例えば、第1又は第2レベルキャッシュ、或いは1つ以上の特定用途向集積回路(ASIC))を含んでもよい。同様に、(例えば、RFIDタグリーダ、ディジタルスチルカメラ、ディジタルビデオカメラ、その他の装置(制御装置250へ電子データをダウンロード及び/又は捕捉するように設けられても設けられなくてもよい))追加的なコンポーネントの入力/出力装置218が制御部250に結合されてもよい。1つ以上のコンポーネントは、キーボード及びカーソル制御部212のように省略されてもよい。
図3はシステム100のメモリユニット204の一例を示すブロック図である。メモリユニット204は、好ましくは、オペレーティングシステム302、ストローク制御モジュール304、速度適応モジュール306、曲率適応モジュール308、スムージングモジュール310、近接判定モジュール312及びストローク優勢度モジュール314を含む。メモリ204は、ストローク、セグメント及び捕捉データを格納するバッファを含むが、図示されたものに限定されないことを当業者は認識するであろう。上述したように、メモリユニット204は、プロセッサ202で実行される命令及び/又はデータを格納する。命令及び/又はデータは、ここで説明される技法の全部又は一部を実行するコードを有する。これらのモジュール202−214は、システム100と通信及び協同するプロセッサ202にバス208により結合される。本発明はコンピュータシステム100のメモリユニット204の一部又はモジュールとして説明されるが、モジュール又はその一部は永久データストレージデバイス206のような他の媒体に格納されてもよいし、クライアント/サーバー環境等で複数の様々なコンポーネントを有するネットワーク104内で分散されていてもよいことを当業者は認識するであろう。
オペレーティングシステム302は、ウインドウズ(登録商標)、ソラリス(登録商標)又はリナックス(登録商標)等のような一般的なタイプの何れかであることが好ましい。図示してはいないが、メモリユニット204は1つ以上のアプリケーションプログラムを含み、アプリケーションプログラムは、限定ではないが、描画アプリケーション、ワードプロセシングアプリケーション、電子メールアプリケーション、財務アプリケーション及びウェブブラウザアプリケーション等を含んでよい。
ストローク制御モジュール304は、メモリ204の他のモジュールを制御するのに使用される。ストローク制御モジュール304は、速度適応モジュール306、曲率適応モジュール308、スムージングモジュール310、近接判定モジュール312及びストローク優勢度モジュール314と通信するよう適合させられている。ストローク制御モジュール304の動作は、以下の図6A及び6Bから明らかであろう。他のモジュールによる処理が完了すると、ストローク制御モジュール304は修正されたストロークを生成し、それをディスプレイに表示するようにする。ストローク制御モジュール304はメモリ204の別個のモジュールとして図示されているが、他の実施例でのストローク制御モジュール304は、他のモジュール204−212内のルーチンとして分散されてもよいことを当業者は認識するであろう。
速度適応モジュール306は、ユーザがストロークを書いた時の速度に合うようにストローク幅を修正するソフトウエア及びルーチンである。一実施例では、スタイラス102がセグメントを書いた時に移動した速度が、ストローク又はセグメントの速度の指標として使用される。速度適応モジュール306の動作は、図7を参照しながら以下で更に詳細に説明される。一般に、速度適応モジュール306は、より速い速度ほどより太い幅になるようにストロークの幅を修正する。
曲率適応モジュール308は、ストローク又はセグメントの曲率に合わせてストローク幅を修正するソフトウエア及びルーチンである。一実施例では、あるセグメント及びその近辺の複数のセグメントの曲率は、線の幅を修正するために使用される。曲率適応モジュール308の動作は、図8を参照しながら以下で更に詳細に説明される。一般に、曲率適応モジュール308は、より小さな曲率ほどより太い幅になるようにストロークの幅を修正する。
スムージングモジュール310は、ストローク全体を滑らかにするようにストローク幅を修正するソフトウエア及びルーチンである。一実施例では、途中で及び初期段階で全てのストローク及びセグメントがスムージングルーチンを経ることとし、検出プロセスで導入されたアーチファクトが最小化されるようにする。一般にこれは、メモリの他のモジュール304−314で処理される前に行われる、ストロークデータの前処理である。他の実施例では、スムージングモジュール310はセグメントの端及びセグメントの内側を滑らかにする。このスムージングは、隣接するセグメントの幅が大きく変化しないことを保証することで達成され、それは、隣接するセグメントの幅の間で最少変化を強制することでなされる。これは、セグメント間で視覚的な遷移の様子を排除する。スムージングモジュール310の動作は、図9A及び9Bを参照しながら以下で詳細に説明される。
近接判定モジュール312は、ショートストローク及び他のストロークに対するそれらの近接度を判定し、他のストロークに対するそれらの近接度により幅を調整するソフトウエア及びルーチンである。一般に、ストロークの表示を通常の手書きにできるだけ近づけるために、このモジュールは、予め定めた互いの近辺の中にあるストロークが、他のストロークに一致するサイズの幅を有することを保証する。近接判定モジュール312の動作は図10に関連して以下で更に詳細に説明される。
ストローク優勢度モジュール314は、多数のストロークを含む領域を判定するためのソフトウエア及びルーチンである。そのような高密度の領域では、ストロークの幅は、ストローク優勢度に従う別の方法で修正される。ストローク優勢度モジュール314は、そのような領域を判別し、どのストロークがそのような領域に該当するかを判定し、それらがどのように別様に又は追加的に処理されるかを決定する。ストローク優勢度モジュール314の動作は、図11及び12に関連して以下で更に詳細に説明される。
<サンプルストローク>
図4Aを参照するに、従来技術による未修正のストローク例400が示されている。ディジタイザ214で捕捉されたデータを利用して、一貫した幅で線400を生成している。図示されているように、ライン幅は決して変化していない。以下の表1を参照するに、ディジタイザ214で生成され且つ従来の方法で処理されたデータは、「イベント」、「X」、「Y」及び「時間」の列で示される。
Figure 2008181505
図4Bを参照するに、本発明のシステム100により生成されたストローク402が示されている。従来技術で使用されたパラメータに加えて、本発明は、表1の「D/T」で示される列で与えられているような速度を利用して、ストローク幅を修正する。図示されるように、ストローク402の幅は、速度が最大になる地点408でより太くなるように修正される。図4Bは、本発明によるシステム100及び方法が、図6A及び6Bに関して以下で後述されるようなストローク速度に基づく追加的な処理により、ストロークの端部404,406をどのように先細りにするかを示す。
図5Aは従来技術による未修正の別のストローク例の図形表示である。ディジタイザ214で捕捉されたデータを利用することで、一貫した幅の線502が生成される。図示されているように、線がストローク502の端部504,506にあったとしても、急激に曲がった部分508にあったとしても、ライン幅は決して変化していない。以下の表2を参照するに、ディジタイザ214で生成され従来方法で処理されたデータは、「イベント」、「X」、「Y」及び「T(ms)」の列で示される。
Figure 2008181505
図5Bは曲率に合わせた本発明の一実施例によるストローク520の図形表示を示す。図示されているように、ストローク520の幅はセグメントの曲率に依存して大きく変わっている。本発明のシステム100及び方法により、より急激に曲がっている線の部分526は狭い幅を有し、端522,524は先細りになっている。
<方法>
図6A及び6Bを参照しながら、表示する手書き線幅を変える本発明による方法例を説明する。本プロセスは、ストロークをショートストローク及びロングストロークに分けることから始まる(ステップ602)。一実施例では、ストロークは長さ及び時間に基づいてロング及びショートのストロークに分けられる。一実施例では、ショートストロークは、描くのに0.4秒未満しかかからない又は12ピクセル未満の距離にしか及ばないものである。次に本方法は、ロングストロークの処理が完了したか否かを判定する(ステップ604)。完了していれば、本方法は図6Bに関して後述されるプロセスに続く。処理する更なるロングストロークが存在していたならば、本方法は次のロングストロークを選択する(ステップ606)。ロングストロークを構成するセグメントを順に処理することで、各ロングストロークは分析される。選択されたストローク中の全てのセグメントが処理されたか否かを本方法は判定する(ステップ624)。完了していたならば、本方法はセグメント内側を滑らかにするステップ624に進む。このプロセスは図9Aに関して以下で更に詳細に説明される。そして本方法はセグメント端部を滑らかにする(ステップ626)。このプロセスは図9Bに関して以下で更に詳細に説明される。ステップ626の後で、本方法はステップ604に戻り、処理を要する更なるロングストロークの有無を判定する。
ステップ608で本方法がセグメントの処理を終了していなかったならば、次のセグメントが選択される(ステップ610)。選択されたセグメントが端部のセグメントであるか否かを本方法は検査する(ステップ612)。端部であったならば、本方法はセグメント幅を最少幅に設定し(ステップ614)、ステップ608に戻り、処理する別のセグメントの有無を判定する。一方、ステップ612でセグメントがセグメント端部でないように確認された場合、本方法はそのセグメントが端部に近いか否かを判定する(ステップ616)。セグメントが端部に近かったならば、本プロセスはその地点での幅をそのセグメントに割り当てない。これは後のスムージングステップ624,626で処理されることになる。本プロセスはステップ608に戻り、処理する何らかの別のセグメントの有無を確認する。セグメントが端部に近くなかったならば、本方法は速度に基づいて調整されたセグメント幅を決定する(ステップ618)。速度に基づいてセグメント幅を修正する方法は、図7に関連して以下で更に詳細に説明される。本方法は曲率に基づいて調整されたセグメント幅を決定する(ステップ620)。曲率に基づいてセグメント幅を修正するプロセスは、図8を参照しながら以下で更に詳細に説明される。速度及び曲率に応じた適切な調整内容が決定されると、本プロセスはセグメント幅を修正する(ステップ622)。一実施例では、セグメント幅は速度に基づいて修正される。別の実施例では、セグメント幅は曲率に基づいて修正される。更に別の実施例では、速度及び曲率の双方に基づいてセグメント幅が修正される。例えば、セグメントの幅は、速度に応じて修正された幅をあるウェイト倍した値と、曲率に応じて修正された幅に1からそのウェイトを引いた係数を乗じた値との和の値に設定されてもよい。セグメントの幅が速度及び/又は曲率に応じて修正された後(ステップ622)、本方法はステップ608に戻り、現在のストロークのセグメントの処理が完了したか否かを確認する。
図6Bを参照しながら、ショートストロークを処理する方法を説明する。本方法はステップ604からステップ630へ遷移し、ショートストロークの処理を開始する。先ず本方法はショートストロークを「近接グループ」に分ける(ステップ630)。有利なことに、本発明は複数のストロークの幅を同様な幅を有するように設定し、その複数のストロークは時間的に又は物理的に互いに近いストロークである。これは、ショートストロークを近接グループに分割し、それらを一緒に処理することで部分的に達成される。このプロセスは図11を参照しながら以下で更に詳細に説明される。例えば、ストロークが特に短かったならば、それは特別に処理される。例えば、「i」の上のドット(点)は、「i」自身とほぼ同じ幅を持つべきである。次に本方法は近接グループを処理し終えたか否かを確認する(ステップ632)。終了していたならば、本方法は完了し、終わる。しかしながら終了していなかったならば、本方法は処理する次オングループを選択する(ステップ634)。そして、本方法は或る領域の中でグループの「優勢度(dominance)」を判定する(ステップ636)。ある領域中の「優勢度」は、その領域中のストロークの幅についてどの程度大きなウェイトが、選択されたストロークグループの幅を設定するのに与えられるべきかについての入力を与える。ストローク優勢度を判定する方法は、図10を参照しながら以下で説明される。そして本方法は選択されたストロークのグループがその領域内で「優勢」であるか否かを判定する。本質的には、本方法は所与のその領域内に多くのショートストロークがあるか否かを判定する。さほどなければ、本方法はその領域内のロングストロークに合わせてショートストロークの幅を調整することになるであろう。本方法はそれを次のようにして達成する:その領域内のロングストロークの幅を計算し(ステップ644)、それらの幅の平均値を、グループのメンバであるショートストローク各々についてのセグメント幅として割り当てるようにする(ステップ646)。ショートストロークのそのグループがその領域で支配的であるようにステップ638で確認されたならば、本方法は(YESのフローに遷移し)、グループ中のショートストロークの平均長さを計算し(ステップ640)、グループ中のショートストロークのセグメントを、平均長さの関数になるように設定する(ステップ642)。ステップ646又は642の後、本方法はステップ648に続き、ショートストロークについて最少の先細り処理が実行される。有利なことに、本発明はストロークの最初及び終わりに僅かのテーパをかけ、ユーザが書込を開始又は終了する場合に圧力を徐々に印加したり解放するのを装っている。一実施例では、ストロークの最初及び末尾にテーパをかけるのに時間差を利用して先細りにする。ステップ648では、本方法はショートストロークのグループを処理し終えたか否かを判定する。
図7を参照しながら、ストロークが入力された時の速度に基づいて線幅を変える方法の一例を説明する。本方法はそのセグメントの及び直近のセグメントの速度を計算することから始まる(ステップ702)。一実施例では、この計算は入力がユーザから受信される際にリアルタイムで実行される。そのような場合、速度が計算されつつあるセグメントに先行するセグメントのみが、速度計算に使用可能である。しかしながら、ストロークが捕捉された後に(直後に又はかなり後になってもよい)処理が行われるならば、選択されたセグメントに先行するセグメント及び後続のセグメントが速度計算に使用可能になる。一実施例では単に速度計算は、セグメントの開始からセグメントの終了までの時間でセグメントの長さを割ったものである。一旦速度が計算されると、そのセグメントの速度が「失速速度(stall out velocity)」未満であるか否かを本方法は確認する(ステップ704)。失速速度未満であったならば、そのセグメントについて調整される幅は最少幅に設定される(ステップ706)。なぜなら、所定のデフォルトの閾値幅があり、どのセグメントもその閾値幅を下回ることはできないからである。調整幅を最少幅に設定した後、本方法はステップ712に進み、1.0の速度重みを割り当てる。このセグメントについての速度が失速速度より速いようにステップ704で確認された場合、本方法はステップ708に進む。ステップ708では、そのセグメントについての速度が「脱出速度(escape velocity)」より速いか否かを本方法は確認する。速かった場合、その速度は或る量を上回っており、その量とはストロークの幅を増やせる量であり、本方法はそのストロークについての調整幅を最大幅に等しく設定する(ステップ710)。ステップ710の後に、本方法はステップ712に続き、1.0に等しい速度ウェイトを設定する。有利なことに、本方法は幅の値とその幅の値についての確からしさの度合い(速度ウェイト)との双方を加味する。一実施例では、確からしさの値は0と1の間の範囲内にある。ステップ706及びステップ710では速度は最大値を超えており或いは最小値を下回っているので、速度ウェイト又は信頼度は1に設定される。
ステップ708でセグメントの速度が脱出速度より速くなかったならば、ストローク速度は或る範囲内にあり、その範囲は、幅を速度に比例して太くする関数に従って調整可能である。より具体的には、ストロークが急速に描かれた場合、その速度はストロークがゆっくり描かれた場合よりも速い。従って一般に本発明の方法は、急速に描かれたセグメントを、ゆっくり描かれたセグメントより太くする。本方法はステップ714に進み、調整される幅が速度の関数になるように設定され、速度の重みも速度の関数になるように設定される。より素早く描いたストロークが広い線になる上記の例は、セグメントが捕捉される時の速度に従って、線幅がどのように変えられるかを示す例になる。調整する幅及び速度重み係数を計算する多種多様な関数が存在してよいことを当業者は認識するであろう。書道の(calligraphic)筆を装うことを意図したシステムは、まさに反対の振る舞いをするかもしれない、即ち、素早いストロークで細い線を描き、遅い筆の動きによる滲みを装うように太くする。ステップ714又は712の何れかが終了すると、本方は終了し、終わる。
図8を参照しながら、セグメントの曲率に基づいて線幅を調整する方法を説明する。あるセグメント及び直近のセグメントの曲率を計算することで本方法は始まる(ステップ802)。一実施例では、「曲率半径」により曲率が与えられ、隣接するセグメントの垂直二等分線を特定し、そのセグメント間の距離を算出することで、曲率半径は見出される。一実施例では、曲率半径を決定するのに使用するセグメントは、ストローク中の実際のセグメントでなく、ストロークセグメント中間点の間のセグメントであり、ストロークをいくらか平滑化している。一実施例における曲率の計算はローパスフィルタリングを含み、ローパスフィルタリングは、スタイラスの位置をサンプリングするシステムで導入された非常に短いセグメントの影響を減らす。一実施例では、ストロークの所与の領域の曲率半径は、いくつかの隣接するセグメントに渡って平均化され、アーチファクトをサンプリングした影響を更に減らす。速度に関して上述したように、曲率による適合は、リアルタイム形式で演算されてもよいし、全てのセグメントが捕捉された後になされてもよい。処理が行われる時点に依存して、曲率適合計算を行う際に本方法は、現在のセグメントに加えて先行するセグメントだけを使用してもよいし、現在のセグメントに加えて先行する及び後続のセグメント双方を使用してもよい。或るセグメント及び隣接するセグメントの曲率が特定された後で、本方法は、その曲率が最大半径より大きいか否かを判定する(例えば、線が比較的直線的であった場合、曲率半径は最大半径より大きい)(ステップ804)。大きかった場合、調整される幅は最大幅に設定され(ステップ806)、本方法は終了する。大きくなかった場合、本方法はその曲率が最小半径(例えば、その領域が非常に曲がっており、即ち非常にねじれている場合、曲率半径は小さい)未満であるか否かを判定する(ステップ808)。最小半径未満であった場合、そのセグメントについて調整される幅は最少幅に設定され(ステップ810)、本方法は完了し、終了する。一般に、本方法は非常に曲がった線の部分を細くする。そのセグメントについて計算された曲率が最大半径及び最小半径の間にあった場合、本方法はステップ812に進み、最小値と最大値の間にある何らかの幅を、曲率の関数として算出する。そのような1つの関数は、最少曲率半径及び最大曲率半径の間の曲率の値を、最少セグメント幅及び最大セグメント幅の間の幅の値に単に線形に対応付ける。より滑らかな曲線の関数が使用されてもよい。
セグメントを平滑化するプロセスは、セグメント内側のスムージングとセグメント端部のスムージングの双方を含む。一般に、セグメント各々の幅を、隣接するセグメントの幅から過剰に大きく変化しないように調整することで、本発明はストロークを平滑化する。図9Aを参照しながら本発明によるセグメント内側を平滑化する方法を説明する。本プロセスは、セグメント内側の処理が完了したか否かを確認することで始まる(ステップ902)。完了していれば本方法は終了する。平滑化する別の内側セグメント(インテリアセグメント)があった場合、次のセグメント対を選択することで本発明は続く(ステップ904)。セグメント間の線幅が、本発明で許容されるセグメント間の最大相違幅以下であるか否かを本方法は判定する(ステップ906)。最大相違幅以下であった場合、それら2つのセグメント間で追加的なスムージングのなされる必要はなく、本方法は平滑化する何らかの別の内部セグメントの有無を確認する(ステップ902)。一方、2つのセグメント間の線幅の相違量が許容されている最大相違幅より大きかった場合、幅の移り変わりを滑らかにするため、我々はそれら2つのセグメントを3つに分割する。本方法は選択したセグメント対の長さの合計が、幅平滑化の最少セグメントサイズの3倍より大きいか否かを確認する(ステップ908)。大きかった場合、本発明の方法は2つのセグメントを3つのセグメントに分割し(ステップ910)、中央のセグメントは、他の2つのセグメントの幅の中間に設定された幅を有する、或いは最大相違幅と同程度に異なるように設定された幅を有するようにする。セグメント長の合計が最少セグメントサイズの3倍より大きくなかった場合、本方法は第1の最大相違幅の範囲内に第2のものが該当するように修正する(ステップ912)。ステップ910及び912の後、本方法はステップ902に戻り、処理すべき残っている別の内側セグメントの有無を確認する。
図9Bを参照しながら、セグメント端部を平滑化する本発明による方法の一例を説明する。一般に、セグメント端部はそのセグメント端部をより小さなサブセグメントに分割することで滑らかにされる。本方法は、各セグメント端部でその端部から内側セグメントまでの距離を算出することから始まる(ステップ950)。そして本方法は長さに起因するサブセグメントの最大数を確認する(ステップ952)。長さに起因するサブセグメントの最大数は、スムージングする最少サブセグメント長で端部の距離を除算することで確認される。端部の距離はステップ950で計算されている。端部のスムージングプロセスでは、最少サブセグメント長が存在し、それを各サブセグメントは持っていなければならない。従ってセグメントは分割可能なサブセグメントの最大数に関して制限される。次に、本方法はサブセグメントの最大数を決定し(ステップ954)、我々は、必要量のスムージングを行うためにセグメントをその最大数に分割しようとしている。ここで「デルタ幅(width delta)」を想定し、それは、最初の内側セグメントの幅と最少セグメント幅との間の差分に等しいものとする。このデルタ幅を利用することで、幅の相違に起因するサブセグメントの最大数は、そのデルタ幅を最大内側セグメントデルタ幅(段差の最大幅)で除算することで判定可能である。これは、セグメント間の幅の相違を平滑化する際に、セグメントを望むように分割するのにどの程度多くのサブセグメントを要するかの指標をもたらす。本方法はサブセグメントの数nを確認することに続き(ステップ956)、セグメントはその数に分割される。一実施例では、長さに起因するサブセグメント数の最大値及び幅の相違(デルタ)に起因するサブセグメントの最大数の内小さい方に数nが設定される。本方法は端部領域をn個のサブセグメントに分割することに続き(ステップ958)、最少幅から最初の内側セグメントの幅に至るまでn個のサブセグメントの幅で徐々に平滑化する。
図10を参照しながら、ある領域における一群のストロークの「優勢度(dominance)」を計算する本発明の一実施例による方法の一例を説明する。本プロセスは、その領域中のショートストローク全ての長さの合計を計算することから始まる(ステップ1002)。そして、その領域の中で何らかのショートストロークに「近い」一群のロングストロークを本方法は確認する(ステップ1004)。ストロークが他のストロークに「近い」か否かを判定する方法は図12に示されており、それについては後述される。ステップ1004で確認された一群のロングストロークの長さが合計される(ステップ1006)。次に、ステップ1002によるショートストロークの全長がステップ1006によるロングストロークの全長より長いか否かを本方法は判定する(ステップ1008)。長かった場合、本方法はショートストロークが支配的であることを確認し、真(TRUE)を出力する(ステップ1012)。長くなかった場合、本方法はショートストロークが支配的でないことを確認し、偽(FALSE)を出力する(ステップ1010)。
図11を参照しながら、ショートストロークを近接グループに分ける本発明による方法の一例を説明する。全てのショートストロークが分類されたか否かを判定することから本方法は始まる(ステップ1102)。分類されていれば本プロセスは完了し、終了する。分類されていなければ、本法は続いて未分類のショートストロークを選択し、ショートストローク用のグループを作成する(ステップ1104)。次に、本方法は或るショートストロークを反復的に加えることでそのグループを拡張し、或るショートストロークはそのグループ中のどのメンバにも「近い」(ステップ1106)。ステップ1106が完了すると、本プロセスはステップ1102に続き、全てのストロークが分類されたか否かを判定する。
図12を参照しながら、あるストロークと別のストロークの近接度を計算する本発明による方法の一例を説明する。本プロセスはショートストロークの中心点を算出することから始まる(ステップ1102)。その点を中心とし且つ近接カットオフ距離に等しい半径を有する円を本方法は算出する。近接カットオフ距離は、ストローク同士が互いに「近い」と考えられるか否かの指標を与える所定の閾値である。本発明の方法では、ストローク同士が互いに所定の距離の範囲内にあった場合、そのストローク同士は近いものとする。次に、所与のストロークがステップ1204で想定した円と交わるか否かを本方法は判定する(ステップ1206)。交わる場合、ストロークは互いに「近い」と考えられ、真(TRUE)が出力される(ステップ1214)。ステップ1204で想定された円とストロークが交わらなかった場合、本方法はストローク間の最少時間差(minimum time delta)を算出する(ステップ1208)。ステップ1208で計算された最少時間差が、近接カットオフ時間(adjacency time cut off)以下であるか否かを、本方法は確認する(ステップ1210)。距離に基づいてストローク同士が互いに近いと考えることに加えて、本発明は、ストローク同士がほぼ同時に入力されていた場合も、そのストロークを互いに近いと考える。近接カットオフ時間は或る閾値を与え、その閾値により、ストロークは時間的に互いに「近い」か否か判別される。ステップ1208の時間差が近接カットオフ時間以下であった場合、ストロークは互いに近いものであり、本法は続いて真(TRUE)を出力する(ステップ1214)。一方、ステップ1208の時間差が近接カットオフ時間より大きかった場合、ストロークは互いに近いようには考えられず、本法は続いて偽(FALSE)を出力する(ステップ1212)。
以上、本発明の実施例の説明が理解を促すように与えられた。その説明は余すところのないものであることを意図するものではないし、本発明を開示された詳細な形態に限定しようとするものでもない。多くの修正や変形が上記の教示に照らして可能である。本発明の範囲は詳細な説明に限定されず、原則として本願の特許請求の範囲によってしか限定されないことが意図される。当業者に理解されるように、本発明の精神や本質的特徴から逸脱せずに、本発明は他の特定の形態で実施されてもよい。同様に、モジュール、ルーチン、特質、属性、方法その他の態様についての特定のネーミングや区分けは、必須でもなく重要でもない。本発明又はその特徴を実現する手段は、名称、区分け及び/又はフォーマットを別様に持っていてもよい。更に、関連技術分野で通常の知識を有する者に明らかなように、モジュール、特質、属性、方法その他の本発明の形態は、ソフトウエアとして、ハードウエアとして、ファームウエアとして、又はそれらの組み合わせとして実現可能である。本発明のコンポーネント(具体例は、モジュール)がソフトウエアとしてどこで実現されようとも、そのコンポーネントは、スタンドアローンプログラムとして、より大きなプログラムの一部として、個々の複数のプログラムとして、静的に又は動的にリンクしたライブラリとして、カーネルローダブルモジュールとして又はデバイスドライバとして実現可能であり、及び/又はコンピュータプログラミングの技術分野で通常の知識を有する者にとって現在既知の又は将来既知になる他の如何なる方法によっても実現可能である。更に本発明はどの特定のプログラミング言語にも限定されず、どの特定のオペレーティングシステムにも環境にも限定されない。従って本発明に関する開示内容は、例示であることが意図されており、特許請求の範囲で規定される本発明の範囲を限定しようとするものではない。
本発明によるディジタルタブレット及びスタイラスを含むシステム例を示す図である。 本発明により構築されたシステムのブロック図を示す。 本発明により構築された図2のコンピュータのメモリを示すブロック図である。 従来技術による未修正のストロークの図形表示を示す図である。 本発明の一実施例により速度に合わせて修正されたストロークの図形表示を示す図である。 従来技術による未修正のストロークの図形表示を示す図である。 本発明の一実施例により曲率に合わせて修正されたストロークの図形表示を示す図である。 表示する手書き線幅を変更する本発明による方法例を示すフローチャートである。 表示する手書き線幅を変更する本発明による方法例を示すフローチャートである。 速度に基づいて線幅を変更する本発明による方法例を示すフローチャートである。 曲率に基づいて線幅を変更する本発明による方法例を示すフローチャートである。 セグメント内側を滑らかにする本発明による方法例を示すフローチャートである。 セグメント端部を滑らかにする本発明による方法例を示すフローチャートである。 ある領域でグループの優勢度を算出する本発明による方法例を示すフローチャートである。 ショートストロークを近接グループに区分けする本発明による方法例を示すフローチャートである。 あるストロークとショートストロークとの近接度を算出する本発明による方法例を示すフローチャートである。
符号の説明
100 システム
102 スタイラス
104 コンピュータ装置
202 プロセッサ
204 メインメモリ
206 データストレージデバイス
208 システムバス
210 ディスプレイ
212 キーボード及びカーソル制御部
214 ディジタイザ
216 ネットワークコントローラ
218 入力/出力(I/O)装置
250 制御部
302 オペレーティングシステム
304 ストローク制御モジュール
306 速度適応モジュール
308 曲率適応モジュール
310 スムージングモジュール
312 近接判定モジュール
314 ストローク優勢度モジュール

Claims (27)

  1. ストロークデータを受信し、表示に備えてストロークデータを処理するプロセッサと、
    前記プロセッサに結合され、手書きの線を表示する表示装置と、
    前記プロセッサに結合されたストローク制御モジュールと、
    を有し、前記ストローク制御モジュールは、ある幅を有する少なくとも1つのストロークを受信し、該少なくとも1つのストロークの幾何学的な又は時間的な特性の関数として、所望の影響を与えるように前記幅を修正するようにした表示する手書き線幅を変えるシステム。
  2. 前記ストローク制御モジュールが、前記ストロークの長さ方向に沿って前記ストロークの幅の量を修正する請求項1記載のシステム。
  3. 前記所望の影響は、前記ストロークが紙に描かれたような効果をもたらすことである請求項1記載のシステム。
  4. 前記ストローク制御モジュールが、ユーザによる前後関係に基づいて前記幅を適応的に修正する請求項1記載のシステム。
  5. 前記ストローク制御モジュールが、幾何学的な又は時間的な特性の関数として前記幅を適応的に修正する請求項1記載のシステム。
  6. 前記ストロークが入力された時の入力速度に基づいて前記ストロークの前記幅を調整する速度適応モジュールを更に有し、該速度適応モジュールは前記プロセッサに結合されている請求項1記載のシステム。
  7. 前記ストロークの曲率に基づいて前記ストロークの前記幅を調整する曲率適応モジュールを更に有し、該曲率適応モジュールは前記プロセッサに結合されている請求項1記載のシステム。
  8. 前記ストロークが内側セグメント及び端部セグメントを含み、
    当該システムは、前記端部セグメント及び前記内側セグメントの間の遷移を滑らかにするように前記ストロークの幅を修正するスムージングモジュールを更に有し、該スムージングモジュールは前記プロセッサに結合されている請求項1記載のシステム。
  9. 第2ストロークに近い第1ストロークを特定し、該第1及び第2ストロークの幅が同程度になるように調整する近接判定モジュールを更に有し、該近接判定モジュールは前記プロセッサに結合されている請求項1記載のシステム。
  10. 複数のストロークを受信するステップと、
    該複数のストロークの内ある幅を有するストロークを選択するステップと、
    前記ストロークの幾何学的な又は時間的な特性の関数として、所望の影響を及ぼすように前記ストロークの前記幅を修正するステップと、
    を有する表示する手書き線幅を変える方法。
  11. 前記ストロークの前記幅を修正するステップが、前記ストロークの長さ方向に沿って前記ストロークの幅の量を変更することを含む請求項10記載の方法。
  12. 前記所望の影響は、前記ストロークが紙に描かれたような効果をもたらすことである請求項10記載の方法。
  13. 前記幅を修正するステップが、選択されたストロークの幾何学的な又は時間的な特性の関数として適応的に実行される請求項10記載の方法。
  14. 前記複数のストロークを、一群のロングストローク及び一群のショートスロー区に分けるステップを更に有する請求項10記載の方法。
  15. 前記一群のショートストロークを少なくとも1つの近接グループに分けるステップと、
    前記近接グループの優勢度を判定するステップと、
    前記近接グループ中の前記ショートストロークの平均長の関数として、前記少なくとも1つの近接グループ中の前記ショートストロークに幅を割り当てるステップと、
    を更に有する請求項14記載の方法。
  16. 前記一群のショートストロークを少なくとも1つの近接グループに分けるステップと、
    前記近接グループの優勢度を判定するステップと、
    前記近接グループの或る領域内の少なくとも1つのロングストロークの幅を判定するステップと、
    前記少なくとも1つの近接グループ中の前記一群のショートストロークに、前記ロングストロークの平均幅に等しい幅を割り当てるステップと、
    を更に有する請求項14記載の方法。
  17. 前記幅を判定するステップが、複数のロングストロークの幅を判定し、複数のロングストロークの幅を平均化することで、前記幅を判定するステップの前記幅を生成し、
    前記割り当てるステップが、前記幅の平均値を利用するようにした請求項16記載の方法。
  18. 前記一群のショートストロークを少なくとも1つの近接グループに分けるステップが、時間的に又は物理的にストローク同士が近いストロークを確認することで実行されるようにした請求項15記載の方法。
  19. 前記近接グループの優勢度を判定するステップが、
    前記近接グループ中のストロークの長さの全長を判定するステップと、
    前記一群のロングストロークの長さを判定及び合計するステップと、
    前記全長が合計より長かった場合、該近接グループを優勢として設定するステップと、
    を有する請求項15記載の方法。
  20. 前記ストロークの端部を先細りにするステップを更に有する請求項10記載の方法。
  21. 所望の影響を及ぼすように前記ストロークの前記幅を修正するステップが、ストロークの曲率の関数として該ストロークの前記幅を修正するようにした請求項10記載の方法。
  22. 所望の影響を及ぼすように前記ストロークの前記幅を修正するステップが、前記ストロークの入力された時の速度の関数として前記ストロークの前記幅を修正するようにした請求項10記載の方法。
  23. 所望の影響を及ぼすように前記ストロークの前記幅を修正するステップが、前記ストロークの入力された時の速度の関数として及び前記ストロークの曲率の関数として前記ストロークの前記幅を修正するようにした請求項10記載の方法。
  24. 前記ストロークを形成する少なくとも1つのセグメントを平滑化するステップを更に有する請求項10記載の方法。
  25. 前記選択するステップ及び前記修正するステップが、前記受信するステップとリアルタイムで実行される請求項10記載の方法。
  26. 前記選択するステップ及び前記修正するステップが、前記受信するステップの後の所定の時間に実行される請求項10記載の方法。
  27. 前記複数のストロークを格納し、ストローク幅を再計算し、他のセグメント及びストロークに関するより詳細な情報に基づいて、当初の幅を後に計算した幅で置換するステップを更に有する請求項10記載の方法。
JP2007337214A 2007-01-25 2007-12-27 表示する手書き線幅を変えるシステム及び線幅変更方法 Expired - Fee Related JP5163113B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/626,995 2007-01-25
US11/626,995 US7697002B2 (en) 2007-01-25 2007-01-25 Varying hand-drawn line width for display

Publications (2)

Publication Number Publication Date
JP2008181505A true JP2008181505A (ja) 2008-08-07
JP5163113B2 JP5163113B2 (ja) 2013-03-13

Family

ID=39327301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007337214A Expired - Fee Related JP5163113B2 (ja) 2007-01-25 2007-12-27 表示する手書き線幅を変えるシステム及び線幅変更方法

Country Status (3)

Country Link
US (1) US7697002B2 (ja)
EP (1) EP1950705B1 (ja)
JP (1) JP5163113B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103403650A (zh) * 2012-10-31 2013-11-20 华为终端有限公司 绘图控制方法、装置及移动终端
JP2014085787A (ja) * 2012-10-23 2014-05-12 Toshiba Corp 電子機器および方法
JP2015090670A (ja) * 2013-11-07 2015-05-11 株式会社東芝 電子機器、方法およびプログラム
JP2020091754A (ja) * 2018-12-06 2020-06-11 セイコーエプソン株式会社 表示装置、表示システム及び表示方法

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983478B2 (en) * 2007-08-10 2011-07-19 Microsoft Corporation Hidden markov model based handwriting/calligraphy generation
US20090284532A1 (en) * 2008-05-16 2009-11-19 Apple Inc. Cursor motion blurring
US8594740B2 (en) 2008-06-11 2013-11-26 Pantech Co., Ltd. Mobile communication terminal and data input method
JP5224973B2 (ja) * 2008-08-26 2013-07-03 株式会社ジャパンディスプレイウェスト 情報入出力装置および情報入出力方法
KR101080255B1 (ko) * 2009-07-21 2011-11-08 (주)펜앤프리 필기 패턴에 따른 필기 정보 입력 장치 및 필기 정보 입력 방법
RO126248B1 (ro) 2009-10-26 2012-04-30 Softwin S.R.L. Sistem şi metodă pentru aprecierea autenticităţii semnăturii olografe dinamice
US8756522B2 (en) * 2010-03-19 2014-06-17 Blackberry Limited Portable electronic device and method of controlling same
KR101126167B1 (ko) * 2010-06-07 2012-03-22 삼성전자주식회사 터치 스크린 및 디스플레이 방법
JP5552947B2 (ja) * 2010-07-30 2014-07-16 ソニー株式会社 情報処理装置、表示制御方法及び表示制御プログラム
US8970540B1 (en) * 2010-09-24 2015-03-03 Amazon Technologies, Inc. Memo pad
US9305398B2 (en) * 2010-10-08 2016-04-05 City University Of Hong Kong Methods for creating and displaying two and three dimensional images on a digital canvas
US8947429B2 (en) 2011-04-12 2015-02-03 Autodesk, Inc. Gestures and tools for creating and editing solid models
US8902222B2 (en) 2012-01-16 2014-12-02 Autodesk, Inc. Three dimensional contriver tool for modeling with multi-touch devices
US9182882B2 (en) 2011-04-12 2015-11-10 Autodesk, Inc. Dynamic creation and modeling of solid models
CN102243541A (zh) * 2011-07-08 2011-11-16 鸿富锦精密工业(深圳)有限公司 具有触控笔的电子装置
US8860675B2 (en) * 2011-07-12 2014-10-14 Autodesk, Inc. Drawing aid system for multi-touch devices
US9250720B2 (en) 2012-02-29 2016-02-02 Adobe Systems Incorporated Method and apparatus for filtering pressure data from a pressure-sensitive device
US9459790B2 (en) 2012-03-05 2016-10-04 Adobe Systems Incorporated Method and apparatus for controlling dot rendering on a touch screen
US9311725B2 (en) * 2012-06-07 2016-04-12 Barracuda Networks, Inc. Systems and methods for creating an electronic signature
US20130343639A1 (en) * 2012-06-20 2013-12-26 Microsoft Corporation Automatically morphing and modifying handwritten text
US20140049479A1 (en) * 2012-08-17 2014-02-20 Research In Motion Limited Smudge effect for electronic drawing application
CN102902407B (zh) * 2012-09-12 2015-08-05 青岛海信移动通信技术股份有限公司 一种触摸屏输出显示触摸笔迹的方法及设备
CN103049203B (zh) * 2012-12-17 2018-08-21 上海海知信息技术有限公司 一种笔迹捕捉装置、笔迹捕捉方法及触屏输入系统
JP2014154021A (ja) * 2013-02-12 2014-08-25 Seiko Epson Corp 表示装置及び表示方法
CN103150115A (zh) * 2013-03-04 2013-06-12 广东欧珀移动通信有限公司 一种触摸屏上的手写笔画的处理方法、系统及移动终端
US9189695B2 (en) 2013-06-04 2015-11-17 Prime Circa, Inc. Vector texturing for free-form drawing
US9411796B2 (en) * 2013-09-04 2016-08-09 Adobe Systems Incorporated Smoothing paths in a graphical interface generated by drawing inputs
JP6043019B2 (ja) * 2013-11-19 2016-12-14 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム
DE202015006142U1 (de) 2014-09-02 2015-12-09 Apple Inc. Elektronische Touch-Kommunikation
US10338725B2 (en) * 2014-09-29 2019-07-02 Microsoft Technology Licensing, Llc Wet ink predictor
US9740310B2 (en) * 2015-05-22 2017-08-22 Adobe Systems Incorporated Intuitive control of pressure-sensitive stroke attributes
US10338807B2 (en) * 2016-02-23 2019-07-02 Microsoft Technology Licensing, Llc Adaptive ink prediction
US10235778B2 (en) 2016-03-25 2019-03-19 Microsoft Technology Licensing, Llc GPU-accelerated pencil ink effect rendering
US9972271B2 (en) * 2016-05-12 2018-05-15 Novatek Microelectronics Corp. Display panel
US10388055B2 (en) 2017-06-02 2019-08-20 Apple Inc. Rendering animated user input strokes
CN108089761A (zh) * 2018-01-02 2018-05-29 京东方科技集团股份有限公司 电子画板、远程教学画板、绘画仿真方法和装置
CN111524209B (zh) * 2019-02-02 2022-07-19 北京易真学思教育科技有限公司 电子书写方法、装置、终端以及存储介质
US11460987B2 (en) * 2019-08-06 2022-10-04 Adobe Inc. Modifying graphical user interface processing based on interpretation of user intent
US11189069B1 (en) * 2021-03-11 2021-11-30 Adobe Inc. Systems for partially undoing content editing operations
US11630504B2 (en) * 2021-03-16 2023-04-18 Htc Corporation Handheld input device and electronic system
CN114510158B (zh) * 2021-12-08 2022-12-30 深圳市康冠商用科技有限公司 电子笔画纠错方法、装置、触摸屏设备及存储介质
US20240020891A1 (en) * 2022-07-12 2024-01-18 Adobe Inc. Vector Object Jitter Application

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6346532A (ja) * 1986-08-15 1988-02-27 Nippon Telegr & Teleph Corp <Ntt> 描画像表示装置
JPS63286978A (ja) * 1987-05-19 1988-11-24 Sanyo Electric Co Ltd 毛筆書体発生方法
JPH06266492A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 筆跡入力方法及び同装置
JPH09212285A (ja) * 1996-02-06 1997-08-15 Sharp Corp 手書入力装置
JPH09258885A (ja) * 1996-03-21 1997-10-03 Nec Corp 手書き入力表示装置
JP2005118215A (ja) * 2003-10-15 2005-05-12 Shima Seiki Mfg Ltd 刺繍データ作成装置と刺繍データの作成方法及び刺繍データの作成プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155813A (en) * 1990-01-08 1992-10-13 Wang Laboratories, Inc. Computer apparatus for brush styled writing
EP0559714A1 (en) * 1990-11-30 1993-09-15 Cambridge Animation Systems Limited Animation
US5347620A (en) * 1991-09-05 1994-09-13 Zimmer Mark A System and method for digital rendering of images and printed articulation
US5434959A (en) * 1992-02-11 1995-07-18 Macromedia, Inc. System and method of generating variable width lines within a graphics system
US5594855A (en) * 1992-02-11 1997-01-14 Macromedia, Inc. System and method for generating real time calligraphic curves
US5361333A (en) * 1992-06-04 1994-11-01 Altsys Corporation System and method for generating self-overlapping calligraphic images
US6535897B1 (en) * 1993-05-20 2003-03-18 Microsoft Corporation System and methods for spacing, storing and recognizing electronic representations of handwriting printing and drawings
JPH07160827A (ja) * 1993-12-09 1995-06-23 Matsushita Electric Ind Co Ltd 手書きストローク編集装置及び方法
US7268774B2 (en) * 1998-08-18 2007-09-11 Candledragon, Inc. Tracking motion of a writing instrument
US6909430B2 (en) 2001-08-01 2005-06-21 Microsoft Corporation Rendering ink strokes of variable width and angle
US20030215145A1 (en) * 2002-05-14 2003-11-20 Microsoft Corporation Classification analysis of freeform digital ink input
US20030214490A1 (en) * 2002-05-20 2003-11-20 Gateway, Inc. Stylus providing variable line width as a function of pressure

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6346532A (ja) * 1986-08-15 1988-02-27 Nippon Telegr & Teleph Corp <Ntt> 描画像表示装置
JPS63286978A (ja) * 1987-05-19 1988-11-24 Sanyo Electric Co Ltd 毛筆書体発生方法
JPH06266492A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 筆跡入力方法及び同装置
JPH09212285A (ja) * 1996-02-06 1997-08-15 Sharp Corp 手書入力装置
JPH09258885A (ja) * 1996-03-21 1997-10-03 Nec Corp 手書き入力表示装置
JP2005118215A (ja) * 2003-10-15 2005-05-12 Shima Seiki Mfg Ltd 刺繍データ作成装置と刺繍データの作成方法及び刺繍データの作成プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085787A (ja) * 2012-10-23 2014-05-12 Toshiba Corp 電子機器および方法
CN103403650A (zh) * 2012-10-31 2013-11-20 华为终端有限公司 绘图控制方法、装置及移动终端
JP2015504565A (ja) * 2012-10-31 2015-02-12 ▲華▼▲為▼▲終▼端有限公司 描画制御方法、装置、およびモバイル端末
JP2015090670A (ja) * 2013-11-07 2015-05-11 株式会社東芝 電子機器、方法およびプログラム
JP2020091754A (ja) * 2018-12-06 2020-06-11 セイコーエプソン株式会社 表示装置、表示システム及び表示方法
JP7238371B2 (ja) 2018-12-06 2023-03-14 セイコーエプソン株式会社 表示装置、表示システム及び表示方法

Also Published As

Publication number Publication date
EP1950705B1 (en) 2017-04-19
JP5163113B2 (ja) 2013-03-13
US7697002B2 (en) 2010-04-13
EP1950705A3 (en) 2012-03-14
EP1950705A2 (en) 2008-07-30
US20080180410A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
JP5163113B2 (ja) 表示する手書き線幅を変えるシステム及び線幅変更方法
CN109284059B (zh) 笔迹绘制方法、装置、交互智能平板和存储介质
JP4936753B2 (ja) 単語または文字の境界ベースのスクラッチアウトジェスチャ認識
JP5247978B2 (ja) 電子ハイライタペンおよびマウス操作デバイスの自動高さ調整
US7848573B2 (en) Scaled text replacement of ink
US10942646B2 (en) Adaptive ink prediction
US7886236B2 (en) Dynamic feedback for gestures
US7970812B2 (en) Redistribution of space between text segments
US20110115814A1 (en) Gesture-controlled data visualization
RU2614539C2 (ru) Масштабирование адресной строки и вкладок на основе задачи
US20110239110A1 (en) Method and System for Selecting Content Using A Touchscreen
JP2018515817A (ja) 視線追跡と音声認識とを組み合わせることにより制御を改善する方法
EP2075712A2 (en) Persistent selection marks
US20150269432A1 (en) Electronic device and method for manufacturing the same
US11204653B2 (en) Method and device for handling event invocation using a stylus pen
US10664072B2 (en) Multi-stroke smart ink gesture language
US20190220161A1 (en) Relative pen scroll
US20150073779A1 (en) Method of converting user handwriting into text information and electronic device for performing the same
US11514695B2 (en) Parsing an ink document using object-level and stroke-level processing
US9031831B1 (en) Method and system for looking up words on a display screen by OCR comprising a set of base forms of recognized inflected words
US7454699B2 (en) Smart content insertion
US9811238B2 (en) Methods and systems for interacting with a digital marking surface
EP3867733A1 (en) Input apparatus, input method, program, and input system
US10163004B2 (en) Inferring stroke information from an image
US20170090672A1 (en) Unified Drawing Framework

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121203

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5163113

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees