特許第6595896号(P6595896)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝クライアントソリューション株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6595896
(24)【登録日】2019年10月4日
(45)【発行日】2019年10月23日
(54)【発明の名称】電子機器及び表示制御方法
(51)【国際特許分類】
   G06F 3/0484 20130101AFI20191010BHJP
   G06F 17/21 20060101ALI20191010BHJP
   G06T 11/80 20060101ALI20191010BHJP
   G06F 3/0488 20130101ALI20191010BHJP
   G06F 17/22 20060101ALI20191010BHJP
【FI】
   G06F3/0484 150
   G06F3/0484 120
   G06F17/21 610
   G06T11/80 E
   G06F3/0488 130
   G06F17/22 694
【請求項の数】11
【全頁数】29
(21)【出願番号】特願2015-242260(P2015-242260)
(22)【出願日】2015年12月11日
(65)【公開番号】特開2017-107485(P2017-107485A)
(43)【公開日】2017年6月15日
【審査請求日】2018年9月13日
(73)【特許権者】
【識別番号】398058588
【氏名又は名称】Dynabook株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】特許業務法人スズエ国際特許事務所
(72)【発明者】
【氏名】本井 滋
【審査官】 岩橋 龍太郎
(56)【参考文献】
【文献】 特開2011−248672(JP,A)
【文献】 特開2001−345975(JP,A)
【文献】 特開2012−203643(JP,A)
【文献】 特開2015−138315(JP,A)
【文献】 特開平07−244720(JP,A)
【文献】 特開2008−040703(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048−3/0489
G06F 17/20−17/26
G06T 1/00
G06T 11/60−13/80
G06T 17/05
G06T 19/00−19/20
(57)【特許請求の範囲】
【請求項1】
電子機器であって、
ディスプレイと、
複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備し、
前記プロセッサは、
前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第1ストロークが描画された第1ビューを前記ディスプレイの画面に表示し、
前記ディスプレイ上に描画された第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記第1オブジェクトが貼り付けられる第1空白領域があるか否かを判定し、
前記第1空白領域があると判定された場合、当該第1空白領域に前記第1オブジェクトを描画し、
前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定した場合、前記ディスプレイに表示されている前記第1ビュー上に、前記第1オブジェクトを編集可能な状態で表示する
電子機器。
【請求項2】
前記プロセッサは、
前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定した場合、前記第1オブジェクトを第1割合で縮小し、
前記第1ビュー内に前記第1割合で縮小した前記第1オブジェクトが貼り付けられる第2空白領域があるか否かを判定し、
前記第2空白領域があると判定した場合、当該第2空白領域に前記第1割合で縮小した前記第1オブジェクトを描画し、
前記第2空白領域がないと判定した場合、前記第1オブジェクトを前記第1割合より大きい第2割合で縮小し、前記第2割合で縮小した前記第1オブジェクトが貼り付けられる第3空白領域があるか否かを判定する、請求項1記載の電子機器。
【請求項3】
前記プロセッサは、
前記ディスプレイ上に描画された前記第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記第1オブジェクトにマージンを加え、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記マージンが加えられた前記第1オブジェクトが貼り付けられる前記第1空白領域があるか否かを判定し、
前記第1空白領域があると判定した場合、当該第1空白領域に前記マージンが加えられた前記第1オブジェクトを描画する請求項1記載の電子機器。
【請求項4】
前記プロセッサは、前記第1ビュー内に前記第1オブジェクトが貼り付け可能な前記第1空白領域が複数得られた場合、前記第1ビューの中央に最も近い領域に前記第1オブジェクトを描画する請求項1記載の電子機器。
【請求項5】
ディスプレイと、複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備する電子機器の方法であって、
前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第1ストロークが描画された第1ビューを前記ディスプレイの画面に表示することと、
前記ディスプレイ上に描画された第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記第1オブジェクトが貼り付けられる第1空白領域があるか否かを判定することと、
前記第1空白領域があると判定された場合、当該第1空白領域に前記第1オブジェクトを描画することと
前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定された場合、前記ディスプレイに表示されている前記第1ビュー上に、前記第1オブジェクトを編集可能な状態で表示することと
を含む方法。
【請求項6】
前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定された場合、前記第1オブジェクトを第1割合で縮小することと、
前記第1ビュー内に前記第1割合で縮小した前記第1オブジェクトが貼り付けられる第2空白領域があるか否かを判定することと、
前記第2空白領域があると判定された場合、当該第2空白領域に前記第1割合で縮小した前記第1オブジェクトを描画することと、
前記第2空白領域がないと判定された場合、前記第1オブジェクトを前記第1割合より大きい第2割合で縮小することと、
前記第2割合で縮小した前記第1オブジェクトが貼り付けられる第3空白領域があるか否かを判定することと、
前記第3空白領域があると判定された場合、当該第3空白領域に前記第2割合で縮小された前記第1オブジェクトを描画することとをさらに含む請求項記載の方法。
【請求項7】
前記ディスプレイ上に描画された前記第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記第1オブジェクトにマージンを加え、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記マージンを加えられた前記第1オブジェクトが貼り付けられる前記第1空白領域があるか否かを判定することと、
前記第1空白領域があると判定された場合、当該第1空白領域に前記マージンが加えられた前記第1オブジェクトを描画することとをさらに含む請求項記載の方法。
【請求項8】
ディスプレイと、複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備する電子機器のコンピュータにより実行されるプログラムであって、前記プログラムは、
前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第1ストロークが描画された第1ビューを前記ディスプレイに表示する手順と、
前記ディスプレイ上に描画された第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記第1オブジェクトが貼り付けられる第1空白領域があるか否かを判定する手順と、
前記第1空白領域があると判定された場合、当該第1空白領域に前記第1オブジェクトを描画する手順と、
前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定された場合、前記ディスプレイに表示されている前記第1ビュー上に、前記第1オブジェクトを編集可能な状態で表示する手順と、
を前記コンピュータに実行させるプログラム。
【請求項9】
前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定された場合、前記第1オブジェクトを第1割合で縮小する手順と、
前記第1ビュー内に前記第1割合で縮小された前記第1オブジェクトが貼り付けられる第2空白領域があるか否かを判定する手順と、
前記第2空白領域があると判定された場合、当該第2空白領域に前記第1割合で縮小された前記第1オブジェクトを描画する手順と、
前記第2空白領域がないと判定された場合、前記第1オブジェクトを前記第1割合より大きい第2割合で縮小する手順と、
前記第2割合で縮小した前記第1オブジェクトが貼り付けられる第3空白領域があるか否かを判定する手順と、
前記第3空白領域があると判定された場合、当該第3空白領域に前記第2割合で縮小された前記第1オブジェクトを描画する手順と、を前記コンピュータにさらに実行させる請求項記載のプログラム。
【請求項10】
前記ディスプレイ上に描画された前記第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記第1オブジェクトにマージンを加え、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記マージンを加えられた前記第1オブジェクトが貼り付けられる前記第1空白領域があるか否かを判定する手順と、
前記第1空白領域があると判定された場合、当該第1空白領域に前記マージンが加えられた前記第1オブジェクトを描画する手順とを前記コンピュータにさらに実行させる請求項記載のプログラム。
【請求項11】
前記第1ビュー内に前記第1オブジェクトが貼り付け可能な前記第1空白領域が複数得られた場合、前記第1ビューの中央に最も近い領域に前記第1オブジェクトを描画する手順を前記コンピュータにさらに実行させる請求項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、手書き情報を共有するための技術に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ(PC)、タブレットコンピュータ、スマートフォンといった種々の電子機器が開発されている。
【0003】
この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【0004】
また最近では、手書き情報を共有するための技術も開発されている。手書き情報を共有する技術は、協調学習での利用や、会議のようなビジネスシーンでの利用に有用である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2014−21511号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、手書き情報が共有されるカンバスを含む画面上では、表示されているオブジェクト(例えば、文字、画像、手書きストローク、等)をコピーし、コピーされたオブジェクトをカンバス上に貼り付けるコピー・アンド・ペースト操作(又はカット・アンド・ペースト操作)が行われることがある。
【0007】
しかし、コピー操作の後に単にペースト操作を行うだけでは、コピーされたオブジェクトが貼り付けられる位置を指定することができない。そのため、貼り付けられたオブジェクトがカンバス上の他のオブジェクトと重なり、カンバスに既に表示されていたオブジェクトの視認性を低下させる場合がある。
【0008】
本発明の一形態は、共有カンバス上に描画されているオブジェクトの視認性を低下させることなく、当該カンバスに新たなオブジェクトを貼り付けられる電子機器及び表示制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
実施形態によれば、電子機器は、ディスプレイと、複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備する。前記プロセッサは、前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第1ストロークが描画された第1ビューを前記ディスプレイの画面に表示し、前記ディスプレイ上に描画された第1オブジェクトをコピー又はカットするための操作の後に、前記第1オブジェクトを前記第1ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第1ビュー内で前記複数の第1ストロークが描画されていない領域に基づいて、前記第1ビュー内に前記第1オブジェクトが貼り付けられる第1空白領域があるか否かを判定し、前記第1空白領域があると判定された場合、当該第1空白領域に前記第1オブジェクトを描画し、前記第1ビュー内に前記第1オブジェクトを貼り付けるための前記第1空白領域がないと判定した場合、前記ディスプレイに表示されている前記第1ビュー上に、前記第1オブジェクトを編集可能な状態で表示する。
【図面の簡単な説明】
【0010】
図1】実施形態に係る電子機器の外観を示す斜視図。
図2】同実施形態の電子機器と手書き共有サービスを利用する他の電子機器との間の接続の例を示す図。
図3】複数の電子機器間で同一の画面(カンバス)が共有される例を示す図。
図4】複数の電子機器間で手書き情報を共有する画面(カンバス)上の各ストロークと筆記者との関係の例を示す図。
図5】複数の電子機器間で手書き情報を共有する画面(カンバス)の例を示す図。
図6】同実施形態の電子機器及び手書き共有サービスを利用する電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
図7図6の手書き文書に対応する時系列情報の例を示す図。
図8】複数の電子機器間で手書き情報を共有する画面(カンバス)上に、コピーされたオブジェクトが貼り付けられる例を説明するための図。
図9図8のオブジェクトがユーザによる操作で移動及び縮小される例を説明するための図。
図10】同実施形態の電子機器のシステム構成を示すブロック図。
図11】同実施形態の電子機器によって実行される手書き共有アプリケーションプログラムの機能構成を示すブロック図。
図12】同実施形態の電子機器によって用いられる共有データの一構成例を示す図。
図13】同実施形態の電子機器によって、コピー(又はカット)されたオブジェクトにマージンが追加される例を示す図。
図14】同実施形態の電子機器によって、共有画面(カンバス)上のオブジェクトの領域が検出される例を説明するための図。
図15】同実施形態の電子機器によって、共有画面(カンバス)上にオブジェクトが貼り付けられる例を示す図。
図16】同実施形態の電子機器によって、ユーザによる操作に応じて、オブジェクトが貼り付けられる領域が探索される領域が設定される例を示す図。
図17図16の探索領域内に、オブジェクトが貼り付けられる例を示す図。
図18】同実施形態の電子機器によって、ユーザによる操作に応じて、オブジェクトが貼り付けられる領域がプレビュー表示される例を示す図。
図19】同実施形態の電子機器によって、ユーザによる操作に応じて、オブジェクトが貼り付けられる領域がプレビュー表示される別の例を示す図。
図20】同実施形態の電子機器によって、共有画面(カンバス)上に、編集可能なオブジェクトが表示される例を示す図。
図21】同実施形態の電子機器によって、共有画面(カンバス)上に、オブジェクトが貼り付けられないことを示すメッセージが表示される例を示す図。
図22】同実施形態の電子機器によって実行されるコピー処理の手順の例を示すフローチャート。
図23】同実施形態の電子機器によって実行されるペースト処理の手順の例を示すフローチャート。
図24】同実施形態の電子機器によって実行される領域決定処理の手順の例を示すフローチャート。
図25】同実施形態の電子機器が手書き共有サービスのオーナー機器である場合に、当該電子機器によって実行される共有処理の手順の例を示すフローチャート。
図26】同実施形態の電子機器が手書き共有サービスのクライアント機器である場合に、当該電子機器によって実行される共有処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、実施の形態について図面を参照して説明する。
【0012】
図1は、本実施形態の電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン(スタイラス)又は指を使用した手書き入力を実行することが可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレット又はスレートコンピュータとも称される携帯型電子機器である。
【0013】
タブレットコンピュータ10は、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わされるように取り付けられている。
【0014】
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、ペン100又は指と接触されるフラットパネルディスプレイの画面上の位置(接触位置)を検出する。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量式のタッチパネル、電磁誘導式のデジタイザなどを使用することができる。デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれていてもよい。
【0015】
このタッチスクリーンディスプレイ17は、指と接触される画面上の位置を検出することができ、またペン100と接触される画面上の位置を検出することもできる。ペン100は例えば電磁誘導ペン(デジタイザペン)であってもよい。ユーザは、外部オブジェクト(指又はペン100)を使用してタッチスクリーンディスプレイ17の画面上に文字等を書くことができる。この手書き入力操作中においては、画面上の外部オブジェクトの動きの軌跡、つまり手書き入力されるストロークが、リアルタイムに画面上に描画される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。手書き入力された文字又は図形などに対応する多数のストロークの集合が手書き文書を構成する。
【0016】
一つのストロークは、このストローク上の複数の点それぞれに対応する複数の点データの集合によって表現される。各点データは、対応する点の座標(X座標、Y座標)を示す。上述したように、外部オブジェクトはペン100又は指のいずれであってもよいが、以下では、ペン100を使用して手書き入力が行われる場合を主として説明する。
【0017】
さらに、タブレットコンピュータ10は、手書き情報を複数の電子機器間で共有することが可能な手書き共有サービスを実行する。手書き共有サービスは、各電子機器のユーザが、共有される手書き情報を閲覧すること、他の電子機器のユーザとの協働作業によって手書き情報を編集することを可能にする。
【0018】
手書き共有サービスは、複数人のグループによって利用される。手書き共有サービスを利用する複数人のグループは、一人のオーナー(主催者)と、一人以上の参加者とを含んでもよい。オーナーもグループに参加している一人である。
【0019】
図2は、手書き共有サービスを利用する電子機器間の接続例を示す。
電子機器10Aは、ユーザAによって使用されるタブレットコンピュータである。電子機器10Bは、ユーザBによって使用されるタブレットコンピュータである。電子機器10Cは、ユーザCによって使用されるタブレットコンピュータである。これら電子機器10A,10B,10Cの各々は、本実施形態のタブレットコンピュータ10と同等の機能を有している。
【0020】
電子機器10A,10B,10Cは有線ネットワークまたは無線ネットワークを介して互いに接続され得る。以下では、電子機器10A,10B,10Cが無線ネットワークを介して互いに接続される場合を想定する。2台の機器を互いに無線接続するための方法としては、複数の機器を互いに無線接続することが可能な任意の無線接続規格を使用し得る。例えば、Wi−Fi Direct(登録商標)、又はBluetooth(登録商標)、等が使用されてもよい。図2に示す例では、電子機器10Aと電子機器10Bとが無線ネットワークを介して接続され、電子機器10Aと電子機器10Cとが無線ネットワークを介して接続されている。
【0021】
電子機器10A,10B,10Cのいずれか1つは、手書き共有サービスを管理するように構成されたサーバとして機能することができる。オーナーの電子機器が、サーバの役割をしてもよい。オーナーは手書き共有サービスの主催者に相当する。
【0022】
このサーバは、手書き共有サービスへの参加を要求している各電子機器が手書き共有サービス(グループ)に参加すること、つまり手書き共有サービスにログインすること、を許可するか否かを決定してもよい。サーバから参加(ログイン)の許可を受け取った機器(端末)だけに、手書き共有サービスにログインすること、つまりこのグループに参加することが許可されてもよい。
【0023】
ここで、各機器(端末)が手書き共有サービスへログインする方法としては、この機器自体のID(アカウント)を使用して手書き共有サービスにログインする方法が使用される。あるいは、この機器を使用するユーザのID(アカウント)を使用して手書き共有サービスにログインする方法が使用されてもよい。つまり、手書き共有サービスに対するログインおよびログアウトは、電子機器自体のID(アカウント)を使用したログインおよびログアウト、またはユーザのID(アカウント)を使用したログインおよびログアウトのどちらであってもよい。
【0024】
いま、電子機器10A,10B,10Cが手書き共有サービスにログインしている状態である場合、つまり電子機器10A,10B,10Cが同じ手書き共有サービスのグループに参加している場合を想定する。電子機器10A,10B,10Cの各々においては、共有される手書き情報を見るための手書き共有画面(カンバス)が表示される。手書き共有画面(カンバス)は電子機器10A,10B,10Cに共通の表示エリアとして使用される。この手書き共有画面(カンバス)は、電子機器10A,10B,10C間のビジュアル通信を可能にする。ビジュアル通信は、手書き情報を含む様々なオブジェクトを機器間で交換することを可能にする。
【0025】
ユーザA,B,Cの各々が自身の電子機器において手書き入力したストロークデータは、自身の電子機器の手書き共有画面(カンバス)に表示されるだけでなく、他の各ユーザの電子機器の手書き共有画面(カンバス)にもリアルタイムに反映される。この結果、ユーザA,B,Cの各々が手書き入力したストロークデータ(手書き文字、手書き図形等)をユーザA,B,C間で交換・共有することができる。
【0026】
さらに、電子機器10A,10B,10Cは、会議資料や教材のような同じコンテンツを共有画面(カンバス)上に表示することもできる。この場合、各電子機器において手書き入力されるストロークは、このコンテンツ上に表示される。ユーザA,B,Cは、同じコンテンツを見ながら、このコンテンツ上に手書きされる文字、図形等をユーザA,B,C間で交換・共有することができる。
【0027】
図3は、同一のカンバスが電子機器10A,10B,10C間で共有される例を示す。
【0028】
手書き共有サービスでは、電子機器10Aと電子機器10Bとが互いに無線接続され、また電子機器10Aと電子機器10Cとが互いに無線接続される。そして、手書き共有サービスは、各端末の画面表示及び手書き操作を同期させることによって、複数人のユーザが同じカンバスに同時に手書きすることを実現する。
【0029】
電子機器10A,10B,10Cそれぞれのカンバス上には、同一のストローク21,22,23が表示される。図4に示されているように、ストローク21は、電子機器10AにおいてユーザAによって手書き入力されたストロークである。ストローク22は、電子機器10BにおいてユーザBによって手書き入力されたストロークである。ストローク23は、電子機器10CにおいてユーザCによって手書き入力されたストロークである。
【0030】
図5は、手書き共有画面(カンバス)の例を示している。各電子機器のカンバス30Aは手書きエリアである。このカンバス30A上に、各ユーザが手書きしたストロークが表示される。なお、教材のようなコンテンツがカンバス30A上に表示されてもよい。この場合、各ユーザのストロークはこのコンテンツ上に描画される。また、ユーザによる入力に応じて、文字、図形、画像等がカンバス30A上に表示されてもよい。
【0031】
例えば、電子機器10Bのカンバス30Aには、カンバス30A上でペン100Bを使用してユーザBによって手書き入力されるストローク40がそれぞれ表示される。さらに、カンバス30Aには、他の各電子機器10A,10Cで手書き入力されたストロークがそれぞれ表示される。他の各電子機器で手書き入力されたストロークには、ユーザCの電子機器10Cで手書き入力されたストローク42と、ユーザAの電子機器10Aで手書き入力されたストローク44とが含まれる。
【0032】
次に、図6を参照して、ストロークデータについて説明する。
【0033】
図6においては、「ABC」の手書き文字列が「A」、「B」、「C」の順に手書きされた場合が想定されている。
【0034】
手書き文字「A」は、ペン100などを使用して手書き入力される2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって表現される。
【0035】
ペン100が移動している間に、「∧」形状のペン100の軌跡がリアルタイムにサンプリングされる。これによって、「∧」形状のペン100の軌跡上の複数の点それぞれに対応する複数の点データ(複数の座標データ)PD11、PD12、…PD1mが次々と得られる。例えば、画面上のペン100の位置が所定量移動する度に、新たな位置を示す点データが得られてもよい。図7においては、図示の簡単化のために点データの密度が粗く描かれているが、実際には、より高い密度で複数の点データが得られる。これら点データPD11、PD12、…PD1mは、「∧」形状のペン100の軌跡を画面上に描画するために使用される。ペン100の動きに追従するように、「∧」形状のペン100の軌跡がリアルタイムに画面上に描画される。
【0036】
同様に、「−」形状のペン100の軌跡も、ペン100が移動している間に、リアルタイムにサンプリングされる。これによって「−」形状のペン100の軌跡上の複数の点それぞれに対応する複数の点データ(複数の座標データ)PD21、PD22、…PD2nが次々と得られる。
【0037】
手書き文字「B」は、ペン100などを使用して手書きされた2つのストロークによって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストロークによって表現される。
【0038】
図7は、図6の手書き文字列に対応する時系列情報200を示している。時系列情報200は、複数のストロークデータSD1、SD2、…、SD5を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD5は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【0039】
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。
【0040】
各ストロークデータは、一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【0041】
各座標データは、対応する軌跡内のある1点に対応するX座標及びY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)及びY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)及びY座標(Y1n)を示す。
【0042】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)又はある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
【0043】
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
【0044】
図8に示すように、複数の電子機器間で共有されるカンバス61が表示される画面上では、描画されているオブジェクト531(例えば、手書きストローク)をコピーし、コピーされたオブジェクト531をカンバス61上に貼り付けるためのコピー・アンド・ペースト操作が行われることがある。カンバス61上には、複数のユーザの各々が使用する電子機器上で入力された手書きストロークのような複数のオブジェクト611〜614が既に描画されている。また、コピーされるオブジェクト531は、例えば、別のアプリケーションプログラム(例えば、ノートアプリケーションプログラム)によって表示されるビュー(第2ビュー)53内に描画されたオブジェクトである。
【0045】
ユーザは、タッチスクリーンディスプレイを介して、ビュー53内のオブジェクト531を選択するための領域を指定する操作を行った後、その領域のコピーを指示する操作を行うことによって、指定された領域に含まれるオブジェクト531をコピーすることができる。コピーされたオブジェクト531のデータは、クリップボードと称される所定の記憶領域内に保存される。
【0046】
そして、ユーザは、カンバス61上で、コピーされたオブジェクト531(すなわち、クリップボード内に保存されたデータ)の貼り付けを指示する操作を行うことによって、カンバス61上にオブジェクトを貼り付けることができる。
【0047】
図9に示すように、貼り付けられたオブジェクト531は、カンバス61上に既に描画されていたオブジェクト611、612、613と重なり合う場合がある。この場合、ユーザは、オブジェクト531を縮小及び移動する操作を行うことにより、例えば、カンバス61上のオブジェクト611〜614と重ならない位置に、縮小されたオブジェクト532を配置する。これにより、貼り付けられたオブジェクト531が、カンバス61に既に描画されていたオブジェクト611〜614の視認性を低下させることを回避する。
【0048】
しかし、このような操作はユーザにとって非常に煩雑である。また、リアルタイムで共有されるカンバス61上でそのような操作が行われることは、他のユーザによるカンバス61への入力を阻害し、カンバス61の利便性を低下させる可能性がある。
【0049】
そのため、本実施形態のタブレットコンピュータ10は、コピー・アンド・ペースト操作(又はカット・アンド・ペースト操作)に応じて、共有カンバスに既に描画されていたオブジェクトと重ならない空白領域に、コピー(又はカット)されたオブジェクトを自動的に貼り付ける貼り付け調整機能を有する。この機能により、ユーザがオブジェクトの位置やサイズを調整する操作を行うことなく、共有カンバスに既に描画されていたオブジェクトと重ならない空白領域に、コピーされたオブジェクトを貼り付けることができる。
【0050】
図10は、本タブレットコンピュータ10のシステム構成を示す。上述したように、このタブレットコンピュータ10は、電子機器10A,10B,10Cのいずれとしても動作し得る。
【0051】
タブレットコンピュータ10は、CPU101、システムコントローラ102、主メモリ103、グラフィクスプロセッシングユニット(GPU)104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
【0052】
CPU101は、タブレットコンピュータ10内の様々なコンポーネントの動作を制御するプロセッサである。プロセッサは回路(処理回路)を含む。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム(OS)201、及び様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、手書き共有アプリケーションプログラム202が含まれている。手書き共有アプリケーションプログラム202は、複数の電子機器間でカンバスを共有するための共有機能を有する。このカンバス上には、各電子機器を使用するユーザによる操作に応じて、手書き情報(手書きストローク)、文字、図形、画像等の各種のオブジェクトが描画される。手書き共有アプリケーションプログラム202は、上述したように、コピー・アンド・ペースト操作又はカット・アンド・ペースト操作に応じてカンバス上に貼り付けられるオブジェクトを調整する貼り付け調整機能も有する。
【0053】
また、アプリケーションプログラムには、ノートアプリケーションプログラム203、ワードプロセッシングソフトウェア、ペイントソフトウェア、プレゼンテーションソフトウェア、等が含まれ得る。ノートアプリケーションプログラム203は、手書き情報(手書きストローク)、文字、図形、画像等を含むドキュメントを作成及び編集するための機能を有する。
【0054】
さらに、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
【0055】
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスプロセッシングユニット(GPU)104との通信を実行する機能も有している。
【0056】
GPU104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示プロセッサ(表示制御回路)である。このGPU104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17Aの上面側にはタッチパネル17Bが配置されている。LCD17Aの下面側にはデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置及び接触位置の動き等はデジタイザ17Cによって検出される。
【0057】
無線通信デバイス107は、無線通信を実行するように構成されたデバイスである。無線通信デバイス107は、信号を無線送信する送信部107Tと、信号を無線受信する受信部107Rとを含む。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オン又は電源オフする機能を有している。
【0058】
次いで、図11を参照して、手書き共有アプリケーションプログラム202の構成について説明する。手書き共有アプリケーションプログラム202は、本タブレットコンピュータ10と1つ以上の他の電子機器(以下、外部電子機器とも称する)との間で手書き情報(カンバス)を共有するための機能実行モジュールとして、表示処理部31、ストロークデータ生成部32、処理部33、送信制御部34、受信制御部35、保存処理部36、等を備える。
【0059】
表示処理部31は、本タブレットコンピュータ10と1つ以上の他の電子機器との間で共有されるカンバス(文書)をLCD17Aの画面に表示する。表示処理部31は、画面のサイズや、カンバスを拡大又は縮小する操作に応じて、画面上にカンバスの少なくとも一部(以下、第1ビューとも称する)を表示する。すなわち、表示処理部31は、画面上にカンバス全体を表示することもできるし、カンバスの一部を表示することもできる。第1ビューは、手書き共有アプリケーションプログラム202によって生成される画面(カンバス)の一部であって、LCD17Aに表示されている領域である。表示処理部31は、ユーザによる操作(例えば、フリック操作)に応じて、カンバス全体の内の、画面に表示されている部分を自在に変更することができる。
【0060】
表示処理部31は、ユーザによる操作に応じて、第1ビュー(カンバス)上に、手書きストローク、文字、図形、画像、等の各種のオブジェクトを描画することができる。表示処理部31は、例えば、本タブレットコンピュータ10と1つ以上の他の電子機器との間で共有される文書の一部であって、本タブレットコンピュータ10及びそれら1つ以上の他の電子機器で入力された複数の第1手書きストロークが描画された第1ビューを画面に表示する。
【0061】
より具体的には、第1ビュー(カンバス)上には、ユーザによる入力操作に応じて手書きストロークを描画(表示)することができる。タッチスクリーンディスプレイ17(デジタイザ17C、又はタッチパネル17B)は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【0062】
表示処理部31及びストロークデータ生成部32は、タッチスクリーンディスプレイ17によって発生される「タッチ」、「移動(スライド)」又は「リリース」のイベントを受信し、これによって入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、表示処理部31及びストロークデータ生成部32は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【0063】
表示処理部31は、タッチスクリーンディスプレイ17の画面上で入力される手書きストロークを第1ビュー(カンバス)に描画する。表示処理部31は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した入力操作によって手書きされる各ストロークの軌跡を第1ビューに描画する。
【0064】
ストロークデータ生成部32は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づいて、図7で詳述したような構造を有する時系列情報(ストロークデータ)を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標、タイムスタンプ情報及び圧力は作業メモリ401に一時保存されてもよい。
【0065】
送信制御部34及び受信制御部35は、手書き共有サービスを利用する電子機器間で、カンバスを共有するためのデータのやり取りを行う。送信制御部34及び受信制御部35は、本タブレットコンピュータ10が手書き共有サービスのオーナーとクライアントのいずれであるかに応じた処理を行う。
【0066】
まず、本タブレットコンピュータ10が手書き共有サービスのオーナーである場合について説明する。
送信制御部34は、生成されたストロークデータを、手書き共有サービスのクライアントである外部電子機器に送信する。外部電子機器は、このストロークデータを受信し、当該機器に設けられるディスプレイの画面上のカンバスに、受信されたストロークデータに基づく手書きストロークを描画する。
【0067】
また、受信制御部35は、手書き共有サービスのクライアントである外部電子機器から、ストロークデータを受信する。表示処理部31は、受信されたストロークデータに基づく手書きストロークをカンバスに描画する。そして、送信制御部34は、受信されたストロークデータを、手書き共有サービスの別のクライアントである外部電子機器に送信する。
【0068】
次いで、本タブレットコンピュータ10が手書き共有サービスのクライアントである場合について説明する。
送信制御部34は、生成されたストロークデータをオーナーである外部電子機器に送信する。この外部電子機器は、このストロークデータを受信し、当該機器に設けられるディスプレイの画面上のカンバスに、受信されたストロークデータに基づく手書きストロークを描画する。そして、オーナーである外部電子機器は、手書き共有サービスの別のクライアントである外部電子機器に、受信したストロークデータを送信する。その別のクライアントである外部電子機器は、このストロークデータを受信し、当該機器に設けられるディスプレイの画面上のカンバスに、受信されたストロークデータに基づく手書きストロークを描画する。
【0069】
また、受信制御部35は、手書き共有サービスのオーナーである外部電子機器から、ストロークデータを受信する。このストロークデータは、オーナーである外部電子機器又は別のクライアントである外部電子機器によって生成されたデータである。表示処理部31は、受信されたストロークデータに基づく手書きストロークをカンバスに描画する。
【0070】
以上により、手書き共有サービス(グループ)に参加する各電子機器で同一の手書きストロークが描画されたカンバスを表示することができる。
【0071】
また、表示処理部31は、ユーザが第1ビュー(カンバス)上に、キーボード(ソフトウェアキーボードを含む)を用いて文字を入力する操作、図形や画像を配置する操作、等を行ったことに応じて、文字、図形、画像、等をカンバスに描画する。
【0072】
送信制御部34及び受信制御部35は、上述したストロークデータのやり取りと同様にして、手書き共有サービスを利用する電子機器間で、カンバスに描画された文字、図形、画像、等を示すデータを送受信する。表示処理部31は、外部電子機器から受信されたデータに基づく文字、図形、画像、等をカンバスに描画する。
【0073】
保存処理部36は、カンバスに描画された手書きストローク、文字、図形、画像、等のオブジェクトのデータを記憶媒体402に保存する。保存処理部36は、例えば、各オブジェクトのデータ(例えば、手書きストロークに対応するストロークデータ、文字に対応する文字コードデータ、図形データ、画像データ)を用いて、共有データ402Aのレコードを生成し、記憶媒体402に保存された共有データ402Aに追加する。
【0074】
以上により、手書き共有サービス(グループ)に参加する各電子機器で同一のオブジェクトが描画されたカンバスを表示することができるので、グループ内でカンバス(画面)を共有することができる。
【0075】
図12は、共有データ402Aの一構成例を示す。共有データ402Aは、カンバスに描画される複数のオブジェクトに対応する複数のレコードを含む。各レコードは、例えば、「オブジェクトID」フィールド、「ユーザID」フィールド、「オブジェクトデータ」フィールド、「座標」フィールド、「サイズ」フィールド、「時間」フィールド、等を含む。あるオブジェクトに対応するレコードにおいて、「オブジェクトID」フィールドは、そのオブジェクトに付与された識別情報を示す。「ユーザID」フィールドは、そのオブジェクトを入力したユーザに付与された識別情報を示す。なお、この「ユーザID」の代わりに、そのオブジェクトが入力された電子機器に付与された識別情報(機器ID)が用いられてもよい。「オブジェクトデータ」フィールドは、そのオブジェクトのデータを示す。「座標」フィールドは、そのオブジェクトが描画されるカンバス上の位置を示す。「サイズ」フィールドは、そのオブジェクトが表示(描画)されるサイズを示す。「時間」フィールドは、そのオブジェクトが描画(入力)された時刻、又は他の電子機器からオブジェクトが受信された時刻を示す。
【0076】
また、処理部33及び表示処理部31は、図8に示す例のように、ユーザによって、LCD17Aの画面上に描画された第1オブジェクトをコピー又はカットするための操作の後に、第1オブジェクトを第1ビュー(カンバス)61に貼り付けるための操作が行われた場合、オブジェクトを第1ビュー61上に貼り付ける(描画する)ための処理を実行する。この第1オブジェクトは、例えば、手書き共有アプリケーションプログラム202とは異なるアプリケーションプログラム(例えば、ノートアプリケーションプログラム203)によって生成される画面の一部であって、LCD17Aに表示されている領域である第2ビュー53上に描画されているオブジェクト531である。また、この第1オブジェクトは、第1ビュー(カンバス)61上に描画されているオブジェクトであってもよい。処理部33及び表示処理部31は、例えば、LCD17Aの画面に表示されている第1ビュー61内で、複数の第1ストローク611〜614が描画されていない領域に基づいて、第1ビュー61内に第1オブジェクト531が貼り付けられる第1空白領域があるか否かを判定し、第1空白領域があると判定された場合、当該第1空白領域に第1オブジェクトを描画する。
【0077】
より具体的には、例えば、ノートアプリケーションプログラム203によって画面に表示された第2ビュー53上の第1オブジェクト531をコピー(又はカット)するための操作が行われた場合、コピー処理部51は、その第1オブジェクト531のデータを、作業メモリ401内のクリップボード領域401Aに保存する。クリップボード領域401Aは、コピー(又はカット)が指示されたデータが一時的に保存される記憶領域であり、例えば、主メモリ103内に設けられる。また、第1オブジェクト531は、手書きストローク、文字、図形、もしくは画像、又はそれらの組み合わせを含み得る。
【0078】
なお、コピーされる第1オブジェクトは、第1ビュー(カンバス)上のオブジェクトであってもよい。その場合、コピー処理部37は、第1ビュー61上の第1オブジェクトをコピーするための操作に応じて、その第1オブジェクトのデータを、作業メモリ401内のクリップボード領域401Aに保存する。
【0079】
処理部33は、コピーされたオブジェクト531をカンバス61に貼り付けるための処理を実行する。処理部33は、マージン処理部331とペースト処理部332とを備える。
【0080】
マージン処理部331は、貼り付け(ペースト)操作が検出されたことに応じて、クリップボード領域401Aに保存されたデータに基づくオブジェクト531にマージンを加えるための処理を行う。なお、マージン処理部331は、クリップボード領域401Aに、オブジェクト531のデータが保存されたことに応じて、オブジェクト531にマージンを加えるための処理を行ってもよい。
【0081】
図13は、コピーされたオブジェクト531にマージンが加えられる例を示す。マージン処理部331は、例えば、オブジェクト531の上下左右に所定の大きさのマージン541〜544を加える。これは、オブジェクト531がカンバス61に貼り付けられた場合に、そのオブジェクト531と、カンバス61に既に描画されていた別のオブジェクトとが密着しないようにして、オブジェクトが見えにくくならないようにするためである。したがって、オブジェクト531とマージン541〜544とを含む領域が、カンバス61に貼り付けられるオブジェクト54として扱われる。マージン処理部331は、このオブジェクト54のデータを作業メモリ401に保存する。
【0082】
そして、ペースト処理部332は、作業メモリ401に格納されたオブジェクト54のデータを用いて、オブジェクト54をカンバス61に貼り付けるための処理を行う。ペースト処理部332は、画面に表示されている第1ビュー(カンバス)61を探索領域(探索範囲)として、オブジェクト54を貼り付け可能な空白領域を探索する。
【0083】
より具体的には、ペースト処理部332は、画面に表示されている第1ビュー(カンバス)61上に既に描画されているオブジェクトに対応する領域(以下、既存オブジェクト領域とも称する)を検出する。ペースト処理部332は、図14に示すように、第1ビュー61上に既に描画されているオブジェクト611〜614に対応する領域611A〜614Aを検出する。ペースト処理部332は、例えば、描画されているオブジェクトが手書きストロークである場合、連続して入力された手書きストロークのまとまりを包含する外接矩形を、オブジェクトに対応する領域として検出する。ペースト処理部332は、共有データ402Aから、カンバス61に描画されている各オブジェクト611〜614に関連付けられたレコードを読み出し、そのレコードの「座標」フィールドに、検出された既存オブジェクト領域の位置を示す座標(例えば、領域の左上端の座標)を設定し、「サイズ」フィールドに、その既存オブジェクト領域のサイズを設定してもよい。
【0084】
ペースト処理部332は、検出された既存オブジェクト領域611A〜614Aを用いて、第1ビュー(カンバス)61内の、これら既存オブジェクト領域611A〜614Aでない領域に基づいて、第1ビュー61内の、オブジェクト54を貼り付け可能な空白領域を探索する。ペースト処理部332は、例えば、第1ビュー61をラスタスキャンすることによって、第1ビュー61内に設定される注目領域がオブジェクト54を貼り付け可能な空白領域であるか否かの判定を、第1ビュー61上を、例えば、1画素分ずつずらして得られる注目領域に対して繰り返し行う。この注目領域は、例えば、オブジェクト54と同じサイズを有する領域である。このラスタスキャンは、探索領域の左上端から行われてもよいし、ユーザが手書きストローク等の他のオブジェクトを直前に入力した位置又はその近傍の位置から行われてもよい。また、ペースト処理部332は、ある注目領域と既存オブジェクト領域との重なり量と、次の注目領域と既存オブジェクト領域との重なり量との変化に応じて、さらに次の注目領域を設定するようにしてもよい。ペースト処理部332は、例えば、重なり量の変化が小さい場合には、現在の注目領域から大きく(例えば、10画素分)ずらして得られた次の注目領域に対して上述の判定を行い、重なり量の変化が大きい場合には、現在の注目領域から小さく(例えば、1画素分)ずらして得られた次の注目領域に対して上述の判定を行う。
【0085】
ペースト処理部332は、探索の結果、第1ビュー(カンバス)61内に、オブジェクト54を貼り付け可能な空白領域があった場合、その空白領域を、オブジェクト54の貼り付け領域に決定する。表示処理部31は、決定されたカンバス61上の貼り付け領域に、オブジェクト54を描画する。
【0086】
一方、第1ビュー61内にオブジェクト54を貼り付け可能な空白領域がなかった場合、ペースト処理部332は、オブジェクト54を順次縮小しながら、上述したラスタスキャンによる貼り付け領域の探索を行う。ペースト処理部332は、オブジェクト54を所定の割合(例えば、10パーセント)だけ縮小する。そして、ペースト処理部332は、第1ビュー61内で、その縮小されたオブジェクト54を貼り付け可能な空白領域を探索する。
【0087】
ペースト処理部332は、第1ビュー61内に、縮小されたオブジェクト54を貼り付け可能な空白領域があった場合、その空白領域を、縮小されたオブジェクト54の貼り付け領域に決定する。表示処理部31は、決定された貼り付け領域に、縮小されたオブジェクト54を描画する。また、ペースト処理部332は、第1ビュー61内に、縮小されたオブジェクト54を貼り付け可能な空白領域がない場合には、オブジェクト54を所定の割合だけさらに縮小し、その縮小されたオブジェクト54を貼り付け可能な空白領域を探索する処理を繰り返し行う。
【0088】
オブジェクト54を貼り付け可能な空白領域を探索する処理によって、第1ビュー(カンバス)61から複数の貼り付け可能な空白領域が得られた場合、ペースト処理部332は、それら複数の領域から、最も大きなサイズを有する領域、第1ビュー61の中央に最も近い領域、既存オブジェクト領域611A〜614Aからの距離が最大である領域、等を選択することもできる。
【0089】
図15に示す例では、上述した処理により、第1ビュー(カンバス)61上の、既存オブジェクト領域611A〜614Aに重ならない空白領域に、オブジェクト54を縮小することにより得られたオブジェクト55が描画されている。オブジェクト55には、オブジェクト本体553とマージン551〜554とが含まれている。このマージン551〜554により、オブジェクト本体553と既存オブジェクト領域611A〜614Aとが密着しないので、ユーザは、オブジェクト毎のまとまりを容易に識別することができる。
【0090】
なお、オブジェクト54の貼り付け領域は、第1ビュー(カンバス)61全体からではなく、第1ビュー61内の、ユーザによって指定された領域から探索されてもよい。
【0091】
図16及び17は、ユーザによる操作に応じて、オブジェクトの貼り付け領域が探索される探索領域(探索範囲)が設定される例を示す。
図16に示すように、ペースト処理部332は、タッチスクリーンディスプレイ17を介して入力されるストローク(軌跡)71の始点71Aと終点71Bとに基づく矩形領域を、探索領域72に設定する。表示処理部31は、ストローク71の入力中に、始点71Aと終点71Bとに基づく矩形をプレビュー表示してもよい。表示処理部31は、例えば、この矩形に対応する点線の枠を描画する。
【0092】
ペースト処理部332は、ストローク71の入力が完了した場合、そのストロークに基づく探索領域72内でオブジェクト54を貼り付け可能な空白領域を探索する。ペースト処理部332は、探索領域72内で、第1ビュー61に既に描画されていたオブジェクト612,614に対応する領域612A,614Aと重ならずに、オブジェクト54が貼り付けられる空白領域を探索する。そのような領域が見つからない場合には、ペースト処理部332は、オブジェクト54を所定の割合だけ縮小し、探索領域72内で、オブジェクト612,614に対応する領域612A,614Aと重ならずに、縮小されたオブジェクト54が貼り付けられる空白領域を探索する。
【0093】
図17に示すように、設定された探索領域72内の、第1ビュー61に既に描画されていたオブジェクト612,614に対応する領域612A,614Aと重ならない空白領域に、オブジェクト54が縮小されたオブジェクト56が貼り付けられている。このオブジェクト56には、オブジェクト本体534だけではなく、マージン561〜564も含まれているので、オブジェクト534は、既に描画されていたオブジェクトの領域612A,614Aに密着しない。そのため、オブジェクト534を見やすく貼り付けることができる。
【0094】
さらに、図18及び図19に示すように、探索領域を指定するためのストローク(軌跡)が入力されている間に、そのストロークに応じて、貼り付けられるオブジェクトに関する情報をプレビュー表示することもできる。
【0095】
図18に示す例では、ペースト処理部332及び表示処理部31は、タッチスクリーンディスプレイ17を介して入力されるストローク75の始点75Aと終点75Bとに基づく矩形領域751内に、オブジェクト54(すなわち、作業メモリ401に格納されているデータのオブジェクト)が貼り付けられ得る最大のサイズを示す矩形752を描画する。表示処理部31は、例えば、この矩形752に対応する点線の枠を描画する。
【0096】
また、図19に示すように、ペースト処理部332及び表示処理部31は、矩形領域751内に貼り付けられ得る最大のサイズを有するオブジェクト761を描画するようにしてもよい。このオブジェクト761は、例えば、貼り付けが指示されたオブジェクト54が、矩形領域751のサイズに応じて縮小されたオブジェクトである。
【0097】
上述したように、ペースト処理部332は、第1ビュー(カンバス)61内に、縮小されたオブジェクト54を貼り付け可能な空白領域がない場合、オブジェクト54を所定の割合だけさらに縮小し、その縮小されたオブジェクト54を貼り付け可能な空白領域を探索する処理を、貼り付け可能な空白領域が見つかるまで繰り返し行う。しかし、所定の縮小率(例えば、30パーセント)までオブジェクト54を縮小しても貼り付け可能な空白領域が見つからない場合、ペースト処理部332はオブジェクト54の貼り付け領域を決定しない。ペースト処理部332によってオブジェクトの貼り付け領域が決定されなかった場合(すなわち、第1ビュー(探索領域)61内にオブジェクト54が貼り付けられる空白領域が存在しないと判定される場合)、表示処理部31は、第1ビュー61上にオブジェクト54を描画しない。
【0098】
例えば、ペースト処理部332及び表示処理部31は、オブジェクト54のサイズに対する、縮小されたオブジェクト54のサイズの割合がしきい値以下である場合、第1ビュー61にオブジェクト54を描画しない。また、この割合がしきい値よりも大きい場合、ペースト処理部332及び表示処理部31は、上述した第1ビュー61からオブジェクト54が貼り付けられる空白領域を探索する処理により、第1ビュー61内に縮小されたオブジェクト54が貼り付けられる第2空白領域があるか否かを判定し、第2空白領域があると判定された場合、当該第2空白領域に縮小されたオブジェクト54を描画する。
【0099】
なお、表示処理部31は、ペースト処理部332によってオブジェクト54の貼り付け領域が決定されなかった場合(すなわち、第1ビュー(探索領域)61内にオブジェクト54が貼り付けられる空白領域がない場合)に、第1ビュー61上に、オブジェクト54を編集可能な状態で表示してもよい。
【0100】
図20に示す例では、ペースト処理部332は、既に多数のオブジェクト651〜657が描画されているカンバス65上に、オブジェクト54の貼り付けに適した空白領域が存在しないことを決定する。表示処理部31は、この決定に応じて、カンバス65上の所定の位置(例えば、中央、左上端、等)に、オブジェクト54を編集可能な状態で表示する。ユーザは、表示されているオブジェクト54に対して、サイズや位置を変更するための操作を行うことができる。表示処理部31は、その操作に応じて、サイズや位置が変更されたオブジェクト54を表示する。そして、ユーザによってオブジェクト54の編集が完了したことを示す操作が行われたことに応じて、表示処理部31は、その編集されたオブジェクト54をカンバス65に貼り付ける(描画する)。
【0101】
なお、ユーザは、編集可能な状態で表示されているオブジェクト54を削除するための操作(すなわち、オブジェクト54を貼り付ける指示をキャンセルするための操作)を行うこともできる。表示処理部31は、この操作に応じて、カンバス65上に表示されているオブジェクトを削除する。
【0102】
また、表示処理部31は、図21に示すように、カンバス65上に、オブジェクト54の貼り付けに適した空白領域が存在しなかったことを示すメッセージ(ダイアログボックス)77を表示することもできる。
【0103】
なお、ペースト処理部332は、所定の縮小率(例えば、30パーセント)までオブジェクト54を縮小しても、そのオブジェクト54を貼り付け可能な空白領域が見つからない場合に、既存オブジェクト領域との重複が最も小さい領域を、オブジェクト54の貼り付け領域に決定してもよい。表示処理部31は、決定された貼り付け領域にオブジェクト(縮小されたオブジェクト)54を描画する。
【0104】
送信制御部34及び受信制御部35は、手書き共有サービスを利用する電子機器間で、第1ビュー(カンバス)に貼り付けられたオブジェクトを共有するためのデータのやり取りを行う。送信制御部34及び受信制御部35は、本タブレットコンピュータ10が手書き共有サービスのオーナーとクライアントのいずれであるかに応じた処理を行う。
【0105】
まず、本タブレットコンピュータ10が手書き共有サービスのオーナーである場合について説明する。
送信制御部34は、貼り付けられたオブジェクト54に対応するオブジェクトデータを、手書き共有サービスのクライアントである外部電子機器に送信する。このオブジェクトデータは、例えば、オブジェクト54に含まれる手書きストローク、文字、図形、画像等のデータと、オブジェクト54が貼り付けられた領域の共有カンバス上の位置及びサイズを示すデータとを含む。外部電子機器は、このオブジェクトデータを受信し、当該機器に設けられるディスプレイの画面上のカンバス(ビュー)に、受信されたオブジェクトデータに基づくオブジェクトを描画する。
【0106】
また、受信制御部35は、手書き共有サービスのクライアントである外部電子機器から、オブジェクトデータを受信する。表示処理部31は、受信されたオブジェクトデータに基づくオブジェクトを第1ビュー(カンバス)に描画する。そして、送信制御部34は、受信されたオブジェクトデータを、手書き共有サービスの別のクライアントである外部電子機器に送信する。
【0107】
次いで、本タブレットコンピュータ10が手書き共有サービスのクライアントである場合について説明する。
【0108】
送信制御部34は、貼り付けられたオブジェクト54に対応するオブジェクトデータをオーナーである外部電子機器に送信する。この外部電子機器は、このオブジェクトデータを受信し、当該機器に設けられるディスプレイの画面上のカンバス(ビュー)に、受信されたオブジェクトデータに基づくオブジェクトを描画する。そして、外部電子機器は、その手書き共有サービスの別のクライアントである外部電子機器に、受信したオブジェクトデータを送信する。その別のクライアントである外部電子機器は、このオブジェクトデータを受信し、当該機器に設けられるディスプレイの画面上のカンバス(ビュー)に、受信されたオブジェクトデータに基づくオブジェクトを描画する。
【0109】
また、受信制御部35は、手書き共有サービスのオーナーである外部電子機器から、オブジェクトデータを受信する。このオブジェクトデータは、オーナーである外部電子機器又は別のクライアントである外部電子機器によって生成されたデータである。表示処理部31は、受信されたオブジェクトデータに基づくオブジェクトを第1ビュー(カンバス)に描画する。
【0110】
以上により、手書き共有サービス(グループ)に参加する各電子機器で同一のオブジェクトが描画されたカンバスを表示することができる。
【0111】
次いで、図22のフローチャートを参照して、タブレットコンピュータ10によって実行されるコピー処理の手順の例を説明する。タッチスクリーンディスプレイ17の画面上には、ユーザがコピー(又はカット)しようとする第1オブジェクトを含むビューが表示されている。このビューは、例えば、手書き共有アプリケーションプログラム202によって表示される第1ビューであってもよいし、ノートアプリケーションプログラム203のような別のアプリケーションプログラムによって表示される第2ビューであってもよい。第1ビューは、タブレットコンピュータ10と1つ以上の他の電子機器との間で共有されるカンバス(文書)の少なくとも一部を含むビューである。また、第2ビューは、手書きストローク、文字、図形、画像、等の各種のオブジェクトを含むドキュメントを作成(編集)するためのビューである。以下では、画面上に第2ビューが表示されている場合を例示する。
【0112】
まず、タブレットコンピュータ10のCPU101は、タッチスクリーンディスプレイ17の画面上で、領域を選択するための操作が行われたか否かを判定する(ブロックB11)。領域を選択するための操作は、画面上で、例えば、矩形領域の始点と終点を指定するストロークや、領域の形状を自由に指定するストロークを入力する操作である。領域を選択するための操作が行われていない場合(ブロックB11のNo)、ブロックB11に戻り、領域を選択するための操作が行われたか否かが再度判定される。
【0113】
領域を選択するための操作が行われた場合(ブロックB11のYes)、CPU101は、コピーを指示するための操作が行われたか否かを判定する(ブロックB12)。コピーを指示するための操作が行われていない場合(ブロックB12のNo)、ブロックB12に戻り、コピーを指示するための操作が行われたか否かが再度判定される。なお、CPU101は、ブロックB12において、コピーを指示するための操作の代わりに、カットを指示するための操作が行われたか否かを判定してもよい。
【0114】
コピーを指示するための操作が行われた場合(ブロックB12のYes)、CPU101は、選択されている領域内の第1オブジェクトのデータをクリップボード領域401Aに保存する(ブロックB13)。クリップボード領域401Aは、コピー(又はカット)がされたオブジェクトのデータが一時的に保存される記憶領域であり、例えば、主メモリ103内に設けられる。また、第1オブジェクトは、手書きストローク、文字、図形、もしくは画像、又はそれらの組み合わせを含み得る。
【0115】
上述したコピー処理の手順は、ノートアプリケーションプログラム203による処理に相当する。なお、画面上に第1ビューが表示され、その第1ビュー内のオブジェクトがコピー(又はカット)される場合には、このコピー処理の手順は、手書き共有アプリケーションプログラム202による処理に相当する。
【0116】
図23のフローチャートは、上述したコピー処理によって得られた第1オブジェクトを、タブレットコンピュータ10と1つ以上の他の電子機器との間で共有されるカンバス上に貼り付けるためのペースト処理の手順の例を示す。以下では、タッチスクリーンディスプレイ17の画面上に、カンバスの少なくとも一部が表示されている場合を例示する。
【0117】
まず、CPU101は、表示されているカンバス(第1ビュー)上で、領域を選択するための操作が行われたか否かを判定する(ブロックB201)。領域を選択するための操作は、画面上で、例えば、矩形領域の始点と終点を指定するストロークや、領域の形状を自由に指定するストロークを入力する操作である。ユーザは、この操作により、第1オブジェクトが貼り付けられる領域を大まかに指定することができる。
【0118】
領域を選択する操作が行われた場合(ブロックB201のYes)、CPU101は、ペーストを指示するための操作が行われたか否かを判定する(ブロックB202)。ペーストを指示するための操作が行われていない場合(ブロックB202のNo)、ブロックB202に戻り、ペーストを指示するための操作が行われたか否かが再度判定される。
【0119】
ペーストを指示するための操作が行われた場合(ブロックB202のYes)、CPU101は、選択されている領域を、第1オブジェクトが貼り付けられる領域が探索される探索領域に設定する(ブロックB203)。
【0120】
また、領域を選択するための操作が行われていない場合(ブロックB201のNo)、CPU101は、ペーストを指示するための操作が行われたか否かを判定する(ブロックB204)。ペーストを指示するための操作が行われていない場合(ブロックB204のNo)、ブロックB201に戻り、領域を選択するための操作が行われたか否かが再度判定される。
【0121】
ペーストを指示するための操作が行われた場合(ブロックB204のYes)、すなわち、カンバス上の領域が選択されることなく、ペーストを指示するための操作が行われた場合、CPU101は、カンバス全体が画面に表示されているか否かを判定する(ブロックB205)。カンバス全体が画面に表示されている場合(ブロックB205のYes)、CPU101は、カンバス全体を、第1オブジェクトが貼り付けられる領域が探索される探索領域に設定する(ブロックB207)。
【0122】
一方、カンバス全体が画面に表示されていない場合、すなわち、カンバスの一部分だけが画面に表示されている場合(ブロックB205のNo)、CPU101は、カンバスの内、画面に表示されている部分を、第1オブジェクトが貼り付けられる領域が探索される探索領域に設定する(ブロックB206)。
【0123】
次いで、CPU101は、クリップボード領域401Aに保存されたデータに基づく第1オブジェクトにマージンを加える(ブロックB208)。CPU101は、マージンが加えられた第1オブジェクトのデータを、例えば、作業メモリ401に保存する。
【0124】
そして、CPU101は、設定された探索領域から、第1オブジェクト(すなわち、マージンが加えられた第1オブジェクト)が貼り付けられる空白領域を決定するための領域決定処理を実行する(ブロックB209)。この領域決定処理では、設定された探索領域内にオブジェクトが既に描画(配置)されている場合、そのオブジェクトが描画されていない空白領域から、第1オブジェクトが貼り付けられる領域を決定される。なお、この領域決定処理では、探索領域内に第1オブジェクトが貼り付けられる空白領域がない場合、貼り付けに適した領域がなかったことを示す処理結果が出力される。この領域決定処理の詳細な手順は、図24のフローチャートを参照して後述する。
【0125】
CPU101は、実行された領域決定処理によって、第1オブジェクトが貼り付けられる領域が決定されたか否かを判定する(ブロックB210)。第1オブジェクトが貼り付けられる領域が決定された場合(ブロックB210のYes)、CPU101は、決定された領域に第1オブジェクトを貼り付ける(ブロックB211)、すなわち、決定された領域に第1オブジェクトを描画する。
【0126】
第1オブジェクトが貼り付けられる領域が決定されていない場合(ブロックB210のNo)、CPU101は、表示されているカンバス(第1ビュー)上の所定の位置(例えば、中央、左上端、等)に、第1オブジェクトを編集可能な状態で表示する(ブロックB212)。ユーザは、表示された第1オブジェクトに対して、表示されるサイズや位置を変更するための操作を行うことができる。また、ユーザは、表示された第1オブジェクトを削除するための操作を行うこともできる。なお、CPU101は、探索領域内に、貼り付けに適した領域がなかったことを示すメッセージ(ダイアログボックス)をカンバス上に表示するようにしてもよい(ブロックB213)。
【0127】
次いで、図24のフローチャートは、領域決定処理の手順の例を示す。
【0128】
まず、CPU101は、探索領域内で、オブジェクトが既に描画(配置)されている既存オブジェクト領域を検出する(ブロックB31)。CPU101は、検出された既存オブジェクト領域でない領域に基づいて、探索領域内で、第1オブジェクトを貼り付け可能な空白領域を探索する(ブロックB32)。CPU101は、例えば、探索領域をラスタスキャンすることによって、探索領域内の注目領域が第1オブジェクトを貼り付け可能な空白領域であるか否かの判定を、注目領域を第1量(例えば、1画素分)ずつずらしながら繰り返し行う。
【0129】
次いで、CPU101は、探索領域内に第1オブジェクトを貼り付け可能な空白領域があったか否かを判定する(ブロックB33)。探索領域内に第1オブジェクトを貼り付け可能な空白領域があった場合(ブロックB33のYes)、CPU101は、その空白領域を、第1オブジェクトの貼り付け領域に決定する(ブロックB34)。
【0130】
探索領域内に第1オブジェクトを貼り付け可能な空白領域がなかった場合(ブロックB33のNo)、CPU101は、第1オブジェクトを所定の割合(例えば、10パーセント)だけ縮小する(ブロックB35)。そして、CPU101は、オリジナルの第1オブジェクトのサイズに対する、その縮小された第1オブジェクトのサイズの割合、すなわち、縮小率が、しきい値(例えば、30パーセント)よりも大きいか否かを判定する(ブロックB36)。縮小率がしきい値よりも大きい場合(ブロックB36のYes)、CPU101は、ブロックB32に戻り、その縮小された第1オブジェクトを貼り付け可能な空白領域を決定するための処理を行う。つまり、縮小率がしきい値より大きい間、縮小された第1オブジェクトを貼り付け可能な空白領域が探索される。
【0131】
縮小率がしきい値以下である場合(ブロックB36のNo)、CPU101は、第1オブジェクトの貼り付け領域を決定せずに処理を終了する。つまり、第1オブジェクトが見えづらくなるほど縮小されるような場合には、CPU101は、第1オブジェクトの貼り付け領域を決定せずに処理を終了する。
【0132】
また、図25のフローチャートを参照して、タブレットコンピュータ10がオーナー機器である場合の共有処理の手順の例を説明する。
【0133】
まず、CPU101は、オブジェクトが共有カンバスに貼り付けられたか否かを判定する(ブロックB41)。オブジェクトが共有カンバスに貼り付けられていない場合(ブロックB41のNo)、ブロックB42の手順がスキップされる。
【0134】
オブジェクトが共有カンバスに貼り付けられた場合(ブロックB41のYes)、CPU101は、オブジェクトと、当該オブジェクトが貼り付けられた領域とを示すオブジェクトデータを、例えば、無線通信デバイス107の送信部107Tを介して、クライアント機器に送信する(ブロックB42)。このオブジェクトデータは、例えば、オブジェクトに含まれる手書きストローク、文字、図形、画像等のデータと、オブジェクトが貼り付けられた領域の共有カンバス上の位置及びサイズを示すデータとを含む。クライアント機器は、図26のフローチャートを参照して後述するように、このオブジェクトデータを受信し、クライアント機器に設けられるディスプレイの画面上の共有カンバスに、受信されたオブジェクトデータに基づくオブジェクトを描画する。
【0135】
次いで、CPU101は、例えば、無線通信デバイス107の受信部107Rを介して、クライアント機器からオブジェクトデータを受信したか否かを判定する(ブロックB43)。このオブジェクトデータは、クライアント機器上で共有カンバスに貼り付けられたオブジェクトと、当該オブジェクトが貼り付けられた領域とを示す。クライアント機器からオブジェクトデータを受信していない場合(ブロックB43のNo)、ブロックB44及びブロックB45の手順がスキップされる。
【0136】
クライアント機器からオブジェクトデータを受信した場合(ブロックB43のYes)、CPU101は、受信したオブジェクトデータに基づくオブジェクトを共有カンバスに描画する(ブロックB44)。そして、CPU101は、受信元のクライアント機器以外のクライアント機器に、送信部107Tを介して、受信したオブジェクトデータを送信する(ブロックB45)。
【0137】
図26のフローチャートを参照して、タブレットコンピュータ10がクライアント機器である場合の共有処理の手順の例を説明する。
【0138】
まず、CPU101は、オブジェクトが共有カンバスに貼り付けられたか否かを判定する(ブロックB51)。オブジェクトが共有カンバスに貼り付けられていない場合(ブロックB51のNo)、ブロックB52の手順がスキップされる。
【0139】
オブジェクトが共有カンバスに貼り付けられた場合(ブロックB51のYes)、CPU101は、オブジェクトと、当該オブジェクトが貼り付けられた領域とを示すオブジェクトデータを、例えば、無線通信デバイス107の送信部107Tを介して、オーナー機器に送信する(ブロックB52)。オーナー機器は、図25のフローチャートを参照して上述したように、このオブジェクトデータを受信し、オーナー機器に設けられるディスプレイの画面上の共有カンバスに、受信されたオブジェクトデータに基づくオブジェクトを描画し、また別のクライアント機器に、このオブジェクトデータを送信する。
【0140】
次いで、CPU101は、例えば、無線通信デバイス107の受信部107Rを介して、オーナー機器からオブジェクトデータを受信したか否かを判定する(ブロックB53)。このオブジェクトデータは、オーナー機器又は別のクライアント機器上で共有カンバスに貼り付けられたオブジェクトと、当該オブジェクトが貼り付けられた領域とを示す。オーナー機器からオブジェクトデータを受信していない場合(ブロックB53のNo)、ブロックB54の手順がスキップされる。
【0141】
オーナー機器からオブジェクトデータを受信した場合(ブロックB53のYes)、CPU101は、受信したオブジェクトデータに基づくオブジェクトを共有カンバスに描画する(ブロックB54)。
【0142】
このようなオーナー機器による共有処理及びクライアント機器による共有処理により、オーナー機器とクライアント機器とで、同一の内容のカンバスを表示することができる、すなわち、カンバスを共有することができる。
【0143】
以上説明したように、本実施形態によれば、共有カンバス上に描画されているオブジェクトの視認性を低下させることなく、当該カンバスに新たなオブジェクトを貼り付けることができる。表示処理部31は、本タブレットコンピュータ10と1以上の他の電子機器との間で共有される文書の一部であって、タブレットコンピュータ10及びそれら1以上の他の電子機器で入力された複数の第1手書きストロークが描画された第1ビューをLCD17Aの画面に表示する。ペースト処理部332は、LCD17Aの画面(例えば、ノートアプリケーションプログラム203によって生成された画面の一部)上に描画された第1オブジェクトをコピー又はカットするための操作の後に、その第1オブジェクトを第1ビューに貼り付けるための操作が行われた場合、LCD17Aの画面に表示されている第1ビュー内で複数の第1ストロークが描画されていない領域に基づいて、第1ビュー内に第1オブジェクトが貼り付けられる第1空白領域があるか否かを判定する。表示処理部31は、第1空白領域があると判定された場合、当該第1空白領域に第1オブジェクトを描画する。
【0144】
これにより、第1ビューに描画されていた複数の第1手書きストロークに重ならない空白領域に、第1オブジェクトが描画されるので、第1手書きストロークの視認性を低下させることなく、第1ビューに第1オブジェクトを貼り付けることができる。また、ユーザが第1オブジェクトの位置やサイズを調整する操作を行う必要がないので、ユーザによる作業の手間を軽減することができる。
【0145】
また、本実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【0146】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【0147】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0148】
202…手書き共有アプリケーションプログラム、203…ノートアプリケーションプログラム、31…表示処理部、32…ストロークデータ生成部、33…処理部、331…マージン処理部、332…ペースト処理部、34…送信制御部、35…受信制御部、36…保存処理部、37…コピー処理部、401…作業メモリ、401A…クリップボード領域、402…記憶媒体、402A…共有データ、51…コピー処理部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26