(57)【特許請求の範囲】
【請求項１】
電子機器であって、
ディスプレイと、
複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備し、
前記プロセッサは、
前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第１ストロークが描画された第１ビューを前記ディスプレイの画面に表示し、
前記ディスプレイ上に描画された第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記第１オブジェクトが貼り付けられる第１空白領域があるか否かを判定し、
前記第１空白領域があると判定された場合、当該第１空白領域に前記第１オブジェクトを描画し、
前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定した場合、前記ディスプレイに表示されている前記第１ビュー上に、前記第１オブジェクトを編集可能な状態で表示する
電子機器。
【請求項２】
前記プロセッサは、
前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定した場合、前記第１オブジェクトを第１割合で縮小し、
前記第１ビュー内に前記第１割合で縮小した前記第１オブジェクトが貼り付けられる第２空白領域があるか否かを判定し、
前記第２空白領域があると判定した場合、当該第２空白領域に前記第１割合で縮小した前記第１オブジェクトを描画し、
前記第２空白領域がないと判定した場合、前記第１オブジェクトを前記第１割合より大きい第２割合で縮小し、前記第２割合で縮小した前記第１オブジェクトが貼り付けられる第３空白領域があるか否かを判定する、請求項１記載の電子機器。
【請求項３】
前記プロセッサは、
前記ディスプレイ上に描画された前記第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記第１オブジェクトにマージンを加え、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記マージンが加えられた前記第１オブジェクトが貼り付けられる前記第１空白領域があるか否かを判定し、
前記第１空白領域があると判定した場合、当該第１空白領域に前記マージンが加えられた前記第１オブジェクトを描画する請求項１記載の電子機器。
【請求項４】
前記プロセッサは、前記第１ビュー内に前記第１オブジェクトが貼り付け可能な前記第１空白領域が複数得られた場合、前記第１ビューの中央に最も近い領域に前記第１オブジェクトを描画する請求項１記載の電子機器。
【請求項５】
ディスプレイと、複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備する電子機器の方法であって、
前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第１ストロークが描画された第１ビューを前記ディスプレイの画面に表示することと、
前記ディスプレイ上に描画された第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記第１オブジェクトが貼り付けられる第１空白領域があるか否かを判定することと、
前記第１空白領域があると判定された場合、当該第１空白領域に前記第１オブジェクトを描画することと、
前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定された場合、前記ディスプレイに表示されている前記第１ビュー上に、前記第１オブジェクトを編集可能な状態で表示することと
を含む方法。
【請求項６】
前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定された場合、前記第１オブジェクトを第１割合で縮小することと、
前記第１ビュー内に前記第１割合で縮小した前記第１オブジェクトが貼り付けられる第２空白領域があるか否かを判定することと、
前記第２空白領域があると判定された場合、当該第２空白領域に前記第１割合で縮小した前記第１オブジェクトを描画することと、
前記第２空白領域がないと判定された場合、前記第１オブジェクトを前記第１割合より大きい第２割合で縮小することと、
前記第２割合で縮小した前記第１オブジェクトが貼り付けられる第３空白領域があるか否かを判定することと、
前記第３空白領域があると判定された場合、当該第３空白領域に前記第２割合で縮小された前記第１オブジェクトを描画することとをさらに含む請求項５記載の方法。
【請求項７】
前記ディスプレイ上に描画された前記第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記第１オブジェクトにマージンを加え、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記マージンを加えられた前記第１オブジェクトが貼り付けられる前記第１空白領域があるか否かを判定することと、
前記第１空白領域があると判定された場合、当該第１空白領域に前記マージンが加えられた前記第１オブジェクトを描画することとをさらに含む請求項５記載の方法。
【請求項８】
ディスプレイと、複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備する電子機器のコンピュータにより実行されるプログラムであって、前記プログラムは、
前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第１ストロークが描画された第１ビューを前記ディスプレイに表示する手順と、
前記ディスプレイ上に描画された第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記第１オブジェクトが貼り付けられる第１空白領域があるか否かを判定する手順と、
前記第１空白領域があると判定された場合、当該第１空白領域に前記第１オブジェクトを描画する手順と、
前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定された場合、前記ディスプレイに表示されている前記第１ビュー上に、前記第１オブジェクトを編集可能な状態で表示する手順と、
を前記コンピュータに実行させるプログラム。
【請求項９】
前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定された場合、前記第１オブジェクトを第１割合で縮小する手順と、
前記第１ビュー内に前記第１割合で縮小された前記第１オブジェクトが貼り付けられる第２空白領域があるか否かを判定する手順と、
前記第２空白領域があると判定された場合、当該第２空白領域に前記第１割合で縮小された前記第１オブジェクトを描画する手順と、
前記第２空白領域がないと判定された場合、前記第１オブジェクトを前記第１割合より大きい第２割合で縮小する手順と、
前記第２割合で縮小した前記第１オブジェクトが貼り付けられる第３空白領域があるか否かを判定する手順と、
前記第３空白領域があると判定された場合、当該第３空白領域に前記第２割合で縮小された前記第１オブジェクトを描画する手順と、を前記コンピュータにさらに実行させる請求項８記載のプログラム。
【請求項１０】
前記ディスプレイ上に描画された前記第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記第１オブジェクトにマージンを加え、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記マージンを加えられた前記第１オブジェクトが貼り付けられる前記第１空白領域があるか否かを判定する手順と、
前記第１空白領域があると判定された場合、当該第１空白領域に前記マージンが加えられた前記第１オブジェクトを描画する手順とを前記コンピュータにさらに実行させる請求項８記載のプログラム。
【請求項１１】
前記第１ビュー内に前記第１オブジェクトが貼り付け可能な前記第１空白領域が複数得られた場合、前記第１ビューの中央に最も近い領域に前記第１オブジェクトを描画する手順を前記コンピュータにさらに実行させる請求項８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書き情報を共有するための技術に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、スマートフォンといった種々の電子機器が開発されている。
【０００３】
この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００４】
また最近では、手書き情報を共有するための技術も開発されている。手書き情報を共有する技術は、協調学習での利用や、会議のようなビジネスシーンでの利用に有用である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２１５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、手書き情報が共有されるカンバスを含む画面上では、表示されているオブジェクト（例えば、文字、画像、手書きストローク、等）をコピーし、コピーされたオブジェクトをカンバス上に貼り付けるコピー・アンド・ペースト操作（又はカット・アンド・ペースト操作）が行われることがある。
【０００７】
しかし、コピー操作の後に単にペースト操作を行うだけでは、コピーされたオブジェクトが貼り付けられる位置を指定することができない。そのため、貼り付けられたオブジェクトがカンバス上の他のオブジェクトと重なり、カンバスに既に表示されていたオブジェクトの視認性を低下させる場合がある。
【０００８】
本発明の一形態は、共有カンバス上に描画されているオブジェクトの視認性を低下させることなく、当該カンバスに新たなオブジェクトを貼り付けられる電子機器及び表示制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、電子機器は、ディスプレイと、複数の電子機器間でカンバスを共有するための共有機能を有する共有アプリケーションプログラムを実行するプロセッサと、を具備する。前記プロセッサは、前記複数の電子機器との間で共有される前記カンバスの一部であって、前記複数の電子機器で入力された複数の第１ストロークが描画された第１ビューを前記ディスプレイの画面に表示し、前記ディスプレイ上に描画された第１オブジェクトをコピー又はカットするための操作の後に、前記第１オブジェクトを前記第１ビューに貼り付けるための操作が行われた場合、前記ディスプレイに表示されている前記第１ビュー内で前記複数の第１ストロークが描画されていない領域に基づいて、前記第１ビュー内に前記第１オブジェクトが貼り付けられる第１空白領域があるか否かを判定し、前記第１空白領域があると判定された場合、当該第１空白領域に前記第１オブジェクトを描画し、前記第１ビュー内に前記第１オブジェクトを貼り付けるための前記第１空白領域がないと判定した場合、前記ディスプレイに表示されている前記第１ビュー上に、前記第１オブジェクトを編集可能な状態で表示する。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態の電子機器と手書き共有サービスを利用する他の電子機器との間の接続の例を示す図。
【図３】複数の電子機器間で同一の画面（カンバス）が共有される例を示す図。
【図４】複数の電子機器間で手書き情報を共有する画面（カンバス）上の各ストロークと筆記者との関係の例を示す図。
【図５】複数の電子機器間で手書き情報を共有する画面（カンバス）の例を示す図。
【図６】同実施形態の電子機器及び手書き共有サービスを利用する電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
【図７】図６の手書き文書に対応する時系列情報の例を示す図。
【図８】複数の電子機器間で手書き情報を共有する画面（カンバス）上に、コピーされたオブジェクトが貼り付けられる例を説明するための図。
【図９】図８のオブジェクトがユーザによる操作で移動及び縮小される例を説明するための図。
【図１０】同実施形態の電子機器のシステム構成を示すブロック図。
【図１１】同実施形態の電子機器によって実行される手書き共有アプリケーションプログラムの機能構成を示すブロック図。
【図１２】同実施形態の電子機器によって用いられる共有データの一構成例を示す図。
【図１３】同実施形態の電子機器によって、コピー（又はカット）されたオブジェクトにマージンが追加される例を示す図。
【図１４】同実施形態の電子機器によって、共有画面（カンバス）上のオブジェクトの領域が検出される例を説明するための図。
【図１５】同実施形態の電子機器によって、共有画面（カンバス）上にオブジェクトが貼り付けられる例を示す図。
【図１６】同実施形態の電子機器によって、ユーザによる操作に応じて、オブジェクトが貼り付けられる領域が探索される領域が設定される例を示す図。
【図１７】図１６の探索領域内に、オブジェクトが貼り付けられる例を示す図。
【図１８】同実施形態の電子機器によって、ユーザによる操作に応じて、オブジェクトが貼り付けられる領域がプレビュー表示される例を示す図。
【図１９】同実施形態の電子機器によって、ユーザによる操作に応じて、オブジェクトが貼り付けられる領域がプレビュー表示される別の例を示す図。
【図２０】同実施形態の電子機器によって、共有画面（カンバス）上に、編集可能なオブジェクトが表示される例を示す図。
【図２１】同実施形態の電子機器によって、共有画面（カンバス）上に、オブジェクトが貼り付けられないことを示すメッセージが表示される例を示す図。
【図２２】同実施形態の電子機器によって実行されるコピー処理の手順の例を示すフローチャート。
【図２３】同実施形態の電子機器によって実行されるペースト処理の手順の例を示すフローチャート。
【図２４】同実施形態の電子機器によって実行される領域決定処理の手順の例を示すフローチャート。
【図２５】同実施形態の電子機器が手書き共有サービスのオーナー機器である場合に、当該電子機器によって実行される共有処理の手順の例を示すフローチャート。
【図２６】同実施形態の電子機器が手書き共有サービスのクライアント機器である場合に、当該電子機器によって実行される共有処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、実施の形態について図面を参照して説明する。
【００１２】
図１は、本実施形態の電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン（スタイラス）又は指を使用した手書き入力を実行することが可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレット又はスレートコンピュータとも称される携帯型電子機器である。
【００１３】
タブレットコンピュータ１０は、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わされるように取り付けられている。
【００１４】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、ペン１００又は指と接触されるフラットパネルディスプレイの画面上の位置（接触位置）を検出する。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量式のタッチパネル、電磁誘導式のデジタイザなどを使用することができる。デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれていてもよい。
【００１５】
このタッチスクリーンディスプレイ１７は、指と接触される画面上の位置を検出することができ、またペン１００と接触される画面上の位置を検出することもできる。ペン１００は例えば電磁誘導ペン（デジタイザペン）であってもよい。ユーザは、外部オブジェクト（指又はペン１００）を使用してタッチスクリーンディスプレイ１７の画面上に文字等を書くことができる。この手書き入力操作中においては、画面上の外部オブジェクトの動きの軌跡、つまり手書き入力されるストロークが、リアルタイムに画面上に描画される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書き入力された文字又は図形などに対応する多数のストロークの集合が手書き文書を構成する。
【００１６】
一つのストロークは、このストローク上の複数の点それぞれに対応する複数の点データの集合によって表現される。各点データは、対応する点の座標（Ｘ座標、Ｙ座標）を示す。上述したように、外部オブジェクトはペン１００又は指のいずれであってもよいが、以下では、ペン１００を使用して手書き入力が行われる場合を主として説明する。
【００１７】
さらに、タブレットコンピュータ１０は、手書き情報を複数の電子機器間で共有することが可能な手書き共有サービスを実行する。手書き共有サービスは、各電子機器のユーザが、共有される手書き情報を閲覧すること、他の電子機器のユーザとの協働作業によって手書き情報を編集することを可能にする。
【００１８】
手書き共有サービスは、複数人のグループによって利用される。手書き共有サービスを利用する複数人のグループは、一人のオーナー（主催者）と、一人以上の参加者とを含んでもよい。オーナーもグループに参加している一人である。
【００１９】
図２は、手書き共有サービスを利用する電子機器間の接続例を示す。  
電子機器１０Ａは、ユーザＡによって使用されるタブレットコンピュータである。電子機器１０Ｂは、ユーザＢによって使用されるタブレットコンピュータである。電子機器１０Ｃは、ユーザＣによって使用されるタブレットコンピュータである。これら電子機器１０Ａ，１０Ｂ，１０Ｃの各々は、本実施形態のタブレットコンピュータ１０と同等の機能を有している。
【００２０】
電子機器１０Ａ，１０Ｂ，１０Ｃは有線ネットワークまたは無線ネットワークを介して互いに接続され得る。以下では、電子機器１０Ａ，１０Ｂ，１０Ｃが無線ネットワークを介して互いに接続される場合を想定する。２台の機器を互いに無線接続するための方法としては、複数の機器を互いに無線接続することが可能な任意の無線接続規格を使用し得る。例えば、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（登録商標）、又はＢｌｕｅｔｏｏｔｈ（登録商標）、等が使用されてもよい。図２に示す例では、電子機器１０Ａと電子機器１０Ｂとが無線ネットワークを介して接続され、電子機器１０Ａと電子機器１０Ｃとが無線ネットワークを介して接続されている。
【００２１】
電子機器１０Ａ，１０Ｂ，１０Ｃのいずれか１つは、手書き共有サービスを管理するように構成されたサーバとして機能することができる。オーナーの電子機器が、サーバの役割をしてもよい。オーナーは手書き共有サービスの主催者に相当する。
【００２２】
このサーバは、手書き共有サービスへの参加を要求している各電子機器が手書き共有サービス（グループ）に参加すること、つまり手書き共有サービスにログインすること、を許可するか否かを決定してもよい。サーバから参加（ログイン）の許可を受け取った機器（端末）だけに、手書き共有サービスにログインすること、つまりこのグループに参加することが許可されてもよい。
【００２３】
ここで、各機器（端末）が手書き共有サービスへログインする方法としては、この機器自体のＩＤ（アカウント）を使用して手書き共有サービスにログインする方法が使用される。あるいは、この機器を使用するユーザのＩＤ（アカウント）を使用して手書き共有サービスにログインする方法が使用されてもよい。つまり、手書き共有サービスに対するログインおよびログアウトは、電子機器自体のＩＤ（アカウント）を使用したログインおよびログアウト、またはユーザのＩＤ（アカウント）を使用したログインおよびログアウトのどちらであってもよい。
【００２４】
いま、電子機器１０Ａ，１０Ｂ，１０Ｃが手書き共有サービスにログインしている状態である場合、つまり電子機器１０Ａ，１０Ｂ，１０Ｃが同じ手書き共有サービスのグループに参加している場合を想定する。電子機器１０Ａ，１０Ｂ，１０Ｃの各々においては、共有される手書き情報を見るための手書き共有画面（カンバス）が表示される。手書き共有画面（カンバス）は電子機器１０Ａ，１０Ｂ，１０Ｃに共通の表示エリアとして使用される。この手書き共有画面（カンバス）は、電子機器１０Ａ，１０Ｂ，１０Ｃ間のビジュアル通信を可能にする。ビジュアル通信は、手書き情報を含む様々なオブジェクトを機器間で交換することを可能にする。
【００２５】
ユーザＡ，Ｂ，Ｃの各々が自身の電子機器において手書き入力したストロークデータは、自身の電子機器の手書き共有画面（カンバス）に表示されるだけでなく、他の各ユーザの電子機器の手書き共有画面（カンバス）にもリアルタイムに反映される。この結果、ユーザＡ，Ｂ，Ｃの各々が手書き入力したストロークデータ（手書き文字、手書き図形等）をユーザＡ，Ｂ，Ｃ間で交換・共有することができる。
【００２６】
さらに、電子機器１０Ａ，１０Ｂ，１０Ｃは、会議資料や教材のような同じコンテンツを共有画面（カンバス）上に表示することもできる。この場合、各電子機器において手書き入力されるストロークは、このコンテンツ上に表示される。ユーザＡ，Ｂ，Ｃは、同じコンテンツを見ながら、このコンテンツ上に手書きされる文字、図形等をユーザＡ，Ｂ，Ｃ間で交換・共有することができる。
【００２７】
図３は、同一のカンバスが電子機器１０Ａ，１０Ｂ，１０Ｃ間で共有される例を示す。
【００２８】
手書き共有サービスでは、電子機器１０Ａと電子機器１０Ｂとが互いに無線接続され、また電子機器１０Ａと電子機器１０Ｃとが互いに無線接続される。そして、手書き共有サービスは、各端末の画面表示及び手書き操作を同期させることによって、複数人のユーザが同じカンバスに同時に手書きすることを実現する。
【００２９】
電子機器１０Ａ，１０Ｂ，１０Ｃそれぞれのカンバス上には、同一のストローク２１，２２，２３が表示される。図４に示されているように、ストローク２１は、電子機器１０ＡにおいてユーザＡによって手書き入力されたストロークである。ストローク２２は、電子機器１０ＢにおいてユーザＢによって手書き入力されたストロークである。ストローク２３は、電子機器１０ＣにおいてユーザＣによって手書き入力されたストロークである。
【００３０】
図５は、手書き共有画面（カンバス）の例を示している。各電子機器のカンバス３０Ａは手書きエリアである。このカンバス３０Ａ上に、各ユーザが手書きしたストロークが表示される。なお、教材のようなコンテンツがカンバス３０Ａ上に表示されてもよい。この場合、各ユーザのストロークはこのコンテンツ上に描画される。また、ユーザによる入力に応じて、文字、図形、画像等がカンバス３０Ａ上に表示されてもよい。
【００３１】
例えば、電子機器１０Ｂのカンバス３０Ａには、カンバス３０Ａ上でペン１００Ｂを使用してユーザＢによって手書き入力されるストローク４０がそれぞれ表示される。さらに、カンバス３０Ａには、他の各電子機器１０Ａ，１０Ｃで手書き入力されたストロークがそれぞれ表示される。他の各電子機器で手書き入力されたストロークには、ユーザＣの電子機器１０Ｃで手書き入力されたストローク４２と、ユーザＡの電子機器１０Ａで手書き入力されたストローク４４とが含まれる。
【００３２】
次に、図６を参照して、ストロークデータについて説明する。
【００３３】
図６においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順に手書きされた場合が想定されている。
【００３４】
手書き文字「Ａ」は、ペン１００などを使用して手書き入力される２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって表現される。
【００３５】
ペン１００が移動している間に、「∧」形状のペン１００の軌跡がリアルタイムにサンプリングされる。これによって、「∧」形状のペン１００の軌跡上の複数の点それぞれに対応する複数の点データ（複数の座標データ）ＰＤ１１、ＰＤ１２、…ＰＤ１ｍが次々と得られる。例えば、画面上のペン１００の位置が所定量移動する度に、新たな位置を示す点データが得られてもよい。図７においては、図示の簡単化のために点データの密度が粗く描かれているが、実際には、より高い密度で複数の点データが得られる。これら点データＰＤ１１、ＰＤ１２、…ＰＤ１ｍは、「∧」形状のペン１００の軌跡を画面上に描画するために使用される。ペン１００の動きに追従するように、「∧」形状のペン１００の軌跡がリアルタイムに画面上に描画される。
【００３６】
同様に、「−」形状のペン１００の軌跡も、ペン１００が移動している間に、リアルタイムにサンプリングされる。これによって「−」形状のペン１００の軌跡上の複数の点それぞれに対応する複数の点データ（複数の座標データ）ＰＤ２１、ＰＤ２２、…ＰＤ２ｎが次々と得られる。
【００３７】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストロークによって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストロークによって表現される。
【００３８】
図７は、図６の手書き文字列に対応する時系列情報２００を示している。時系列情報２００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ５を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ５は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００３９】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。
【００４０】
各ストロークデータは、一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００４１】
各座標データは、対応する軌跡内のある１点に対応するＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）及びＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）及びＹ座標（Ｙ１ｎ）を示す。
【００４２】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）又はある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００４３】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００４４】
図８に示すように、複数の電子機器間で共有されるカンバス６１が表示される画面上では、描画されているオブジェクト５３１（例えば、手書きストローク）をコピーし、コピーされたオブジェクト５３１をカンバス６１上に貼り付けるためのコピー・アンド・ペースト操作が行われることがある。カンバス６１上には、複数のユーザの各々が使用する電子機器上で入力された手書きストロークのような複数のオブジェクト６１１〜６１４が既に描画されている。また、コピーされるオブジェクト５３１は、例えば、別のアプリケーションプログラム（例えば、ノートアプリケーションプログラム）によって表示されるビュー（第２ビュー）５３内に描画されたオブジェクトである。
【００４５】
ユーザは、タッチスクリーンディスプレイを介して、ビュー５３内のオブジェクト５３１を選択するための領域を指定する操作を行った後、その領域のコピーを指示する操作を行うことによって、指定された領域に含まれるオブジェクト５３１をコピーすることができる。コピーされたオブジェクト５３１のデータは、クリップボードと称される所定の記憶領域内に保存される。
【００４６】
そして、ユーザは、カンバス６１上で、コピーされたオブジェクト５３１（すなわち、クリップボード内に保存されたデータ）の貼り付けを指示する操作を行うことによって、カンバス６１上にオブジェクトを貼り付けることができる。
【００４７】
図９に示すように、貼り付けられたオブジェクト５３１は、カンバス６１上に既に描画されていたオブジェクト６１１、６１２、６１３と重なり合う場合がある。この場合、ユーザは、オブジェクト５３１を縮小及び移動する操作を行うことにより、例えば、カンバス６１上のオブジェクト６１１〜６１４と重ならない位置に、縮小されたオブジェクト５３２を配置する。これにより、貼り付けられたオブジェクト５３１が、カンバス６１に既に描画されていたオブジェクト６１１〜６１４の視認性を低下させることを回避する。
【００４８】
しかし、このような操作はユーザにとって非常に煩雑である。また、リアルタイムで共有されるカンバス６１上でそのような操作が行われることは、他のユーザによるカンバス６１への入力を阻害し、カンバス６１の利便性を低下させる可能性がある。
【００４９】
そのため、本実施形態のタブレットコンピュータ１０は、コピー・アンド・ペースト操作（又はカット・アンド・ペースト操作）に応じて、共有カンバスに既に描画されていたオブジェクトと重ならない空白領域に、コピー（又はカット）されたオブジェクトを自動的に貼り付ける貼り付け調整機能を有する。この機能により、ユーザがオブジェクトの位置やサイズを調整する操作を行うことなく、共有カンバスに既に描画されていたオブジェクトと重ならない空白領域に、コピーされたオブジェクトを貼り付けることができる。
【００５０】
図１０は、本タブレットコンピュータ１０のシステム構成を示す。上述したように、このタブレットコンピュータ１０は、電子機器１０Ａ，１０Ｂ，１０Ｃのいずれとしても動作し得る。
【００５１】
タブレットコンピュータ１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスプロセッシングユニット（ＧＰＵ）１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００５２】
ＣＰＵ１０１は、タブレットコンピュータ１０内の様々なコンポーネントの動作を制御するプロセッサである。プロセッサは回路（処理回路）を含む。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、及び様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、手書き共有アプリケーションプログラム２０２が含まれている。手書き共有アプリケーションプログラム２０２は、複数の電子機器間でカンバスを共有するための共有機能を有する。このカンバス上には、各電子機器を使用するユーザによる操作に応じて、手書き情報（手書きストローク）、文字、図形、画像等の各種のオブジェクトが描画される。手書き共有アプリケーションプログラム２０２は、上述したように、コピー・アンド・ペースト操作又はカット・アンド・ペースト操作に応じてカンバス上に貼り付けられるオブジェクトを調整する貼り付け調整機能も有する。
【００５３】
また、アプリケーションプログラムには、ノートアプリケーションプログラム２０３、ワードプロセッシングソフトウェア、ペイントソフトウェア、プレゼンテーションソフトウェア、等が含まれ得る。ノートアプリケーションプログラム２０３は、手書き情報（手書きストローク）、文字、図形、画像等を含むドキュメントを作成及び編集するための機能を有する。
【００５４】
さらに、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００５５】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスプロセッシングユニット（ＧＰＵ）１０４との通信を実行する機能も有している。
【００５６】
ＧＰＵ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示プロセッサ（表示制御回路）である。このＧＰＵ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａの上面側にはタッチパネル１７Ｂが配置されている。ＬＣＤ１７Ａの下面側にはデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置及び接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００５７】
無線通信デバイス１０７は、無線通信を実行するように構成されたデバイスである。無線通信デバイス１０７は、信号を無線送信する送信部１０７Ｔと、信号を無線受信する受信部１０７Ｒとを含む。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オン又は電源オフする機能を有している。
【００５８】
次いで、図１１を参照して、手書き共有アプリケーションプログラム２０２の構成について説明する。手書き共有アプリケーションプログラム２０２は、本タブレットコンピュータ１０と１つ以上の他の電子機器（以下、外部電子機器とも称する）との間で手書き情報（カンバス）を共有するための機能実行モジュールとして、表示処理部３１、ストロークデータ生成部３２、処理部３３、送信制御部３４、受信制御部３５、保存処理部３６、等を備える。
【００５９】
表示処理部３１は、本タブレットコンピュータ１０と１つ以上の他の電子機器との間で共有されるカンバス（文書）をＬＣＤ１７Ａの画面に表示する。表示処理部３１は、画面のサイズや、カンバスを拡大又は縮小する操作に応じて、画面上にカンバスの少なくとも一部（以下、第１ビューとも称する）を表示する。すなわち、表示処理部３１は、画面上にカンバス全体を表示することもできるし、カンバスの一部を表示することもできる。第１ビューは、手書き共有アプリケーションプログラム２０２によって生成される画面（カンバス）の一部であって、ＬＣＤ１７Ａに表示されている領域である。表示処理部３１は、ユーザによる操作（例えば、フリック操作）に応じて、カンバス全体の内の、画面に表示されている部分を自在に変更することができる。
【００６０】
表示処理部３１は、ユーザによる操作に応じて、第１ビュー（カンバス）上に、手書きストローク、文字、図形、画像、等の各種のオブジェクトを描画することができる。表示処理部３１は、例えば、本タブレットコンピュータ１０と１つ以上の他の電子機器との間で共有される文書の一部であって、本タブレットコンピュータ１０及びそれら１つ以上の他の電子機器で入力された複数の第１手書きストロークが描画された第１ビューを画面に表示する。
【００６１】
より具体的には、第１ビュー（カンバス）上には、ユーザによる入力操作に応じて手書きストロークを描画（表示）することができる。タッチスクリーンディスプレイ１７（デジタイザ１７Ｃ、又はタッチパネル１７Ｂ）は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００６２】
表示処理部３１及びストロークデータ生成部３２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」、「移動（スライド）」又は「リリース」のイベントを受信し、これによって入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、表示処理部３１及びストロークデータ生成部３２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００６３】
表示処理部３１は、タッチスクリーンディスプレイ１７の画面上で入力される手書きストロークを第１ビュー（カンバス）に描画する。表示処理部３１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した入力操作によって手書きされる各ストロークの軌跡を第１ビューに描画する。
【００６４】
ストロークデータ生成部３２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図７で詳述したような構造を有する時系列情報（ストロークデータ）を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標、タイムスタンプ情報及び圧力は作業メモリ４０１に一時保存されてもよい。
【００６５】
送信制御部３４及び受信制御部３５は、手書き共有サービスを利用する電子機器間で、カンバスを共有するためのデータのやり取りを行う。送信制御部３４及び受信制御部３５は、本タブレットコンピュータ１０が手書き共有サービスのオーナーとクライアントのいずれであるかに応じた処理を行う。
【００６６】
まず、本タブレットコンピュータ１０が手書き共有サービスのオーナーである場合について説明する。  
送信制御部３４は、生成されたストロークデータを、手書き共有サービスのクライアントである外部電子機器に送信する。外部電子機器は、このストロークデータを受信し、当該機器に設けられるディスプレイの画面上のカンバスに、受信されたストロークデータに基づく手書きストロークを描画する。
【００６７】
また、受信制御部３５は、手書き共有サービスのクライアントである外部電子機器から、ストロークデータを受信する。表示処理部３１は、受信されたストロークデータに基づく手書きストロークをカンバスに描画する。そして、送信制御部３４は、受信されたストロークデータを、手書き共有サービスの別のクライアントである外部電子機器に送信する。
【００６８】
次いで、本タブレットコンピュータ１０が手書き共有サービスのクライアントである場合について説明する。  
送信制御部３４は、生成されたストロークデータをオーナーである外部電子機器に送信する。この外部電子機器は、このストロークデータを受信し、当該機器に設けられるディスプレイの画面上のカンバスに、受信されたストロークデータに基づく手書きストロークを描画する。そして、オーナーである外部電子機器は、手書き共有サービスの別のクライアントである外部電子機器に、受信したストロークデータを送信する。その別のクライアントである外部電子機器は、このストロークデータを受信し、当該機器に設けられるディスプレイの画面上のカンバスに、受信されたストロークデータに基づく手書きストロークを描画する。
【００６９】
また、受信制御部３５は、手書き共有サービスのオーナーである外部電子機器から、ストロークデータを受信する。このストロークデータは、オーナーである外部電子機器又は別のクライアントである外部電子機器によって生成されたデータである。表示処理部３１は、受信されたストロークデータに基づく手書きストロークをカンバスに描画する。
【００７０】
以上により、手書き共有サービス（グループ）に参加する各電子機器で同一の手書きストロークが描画されたカンバスを表示することができる。
【００７１】
また、表示処理部３１は、ユーザが第１ビュー（カンバス）上に、キーボード（ソフトウェアキーボードを含む）を用いて文字を入力する操作、図形や画像を配置する操作、等を行ったことに応じて、文字、図形、画像、等をカンバスに描画する。
【００７２】
送信制御部３４及び受信制御部３５は、上述したストロークデータのやり取りと同様にして、手書き共有サービスを利用する電子機器間で、カンバスに描画された文字、図形、画像、等を示すデータを送受信する。表示処理部３１は、外部電子機器から受信されたデータに基づく文字、図形、画像、等をカンバスに描画する。
【００７３】
保存処理部３６は、カンバスに描画された手書きストローク、文字、図形、画像、等のオブジェクトのデータを記憶媒体４０２に保存する。保存処理部３６は、例えば、各オブジェクトのデータ（例えば、手書きストロークに対応するストロークデータ、文字に対応する文字コードデータ、図形データ、画像データ）を用いて、共有データ４０２Ａのレコードを生成し、記憶媒体４０２に保存された共有データ４０２Ａに追加する。
【００７４】
以上により、手書き共有サービス（グループ）に参加する各電子機器で同一のオブジェクトが描画されたカンバスを表示することができるので、グループ内でカンバス（画面）を共有することができる。
【００７５】
図１２は、共有データ４０２Ａの一構成例を示す。共有データ４０２Ａは、カンバスに描画される複数のオブジェクトに対応する複数のレコードを含む。各レコードは、例えば、「オブジェクトＩＤ」フィールド、「ユーザＩＤ」フィールド、「オブジェクトデータ」フィールド、「座標」フィールド、「サイズ」フィールド、「時間」フィールド、等を含む。あるオブジェクトに対応するレコードにおいて、「オブジェクトＩＤ」フィールドは、そのオブジェクトに付与された識別情報を示す。「ユーザＩＤ」フィールドは、そのオブジェクトを入力したユーザに付与された識別情報を示す。なお、この「ユーザＩＤ」の代わりに、そのオブジェクトが入力された電子機器に付与された識別情報（機器ＩＤ）が用いられてもよい。「オブジェクトデータ」フィールドは、そのオブジェクトのデータを示す。「座標」フィールドは、そのオブジェクトが描画されるカンバス上の位置を示す。「サイズ」フィールドは、そのオブジェクトが表示（描画）されるサイズを示す。「時間」フィールドは、そのオブジェクトが描画（入力）された時刻、又は他の電子機器からオブジェクトが受信された時刻を示す。
【００７６】
また、処理部３３及び表示処理部３１は、図８に示す例のように、ユーザによって、ＬＣＤ１７Ａの画面上に描画された第１オブジェクトをコピー又はカットするための操作の後に、第１オブジェクトを第１ビュー（カンバス）６１に貼り付けるための操作が行われた場合、オブジェクトを第１ビュー６１上に貼り付ける（描画する）ための処理を実行する。この第１オブジェクトは、例えば、手書き共有アプリケーションプログラム２０２とは異なるアプリケーションプログラム（例えば、ノートアプリケーションプログラム２０３）によって生成される画面の一部であって、ＬＣＤ１７Ａに表示されている領域である第２ビュー５３上に描画されているオブジェクト５３１である。また、この第１オブジェクトは、第１ビュー（カンバス）６１上に描画されているオブジェクトであってもよい。処理部３３及び表示処理部３１は、例えば、ＬＣＤ１７Ａの画面に表示されている第１ビュー６１内で、複数の第１ストローク６１１〜６１４が描画されていない領域に基づいて、第１ビュー６１内に第１オブジェクト５３１が貼り付けられる第１空白領域があるか否かを判定し、第１空白領域があると判定された場合、当該第１空白領域に第１オブジェクトを描画する。
【００７７】
より具体的には、例えば、ノートアプリケーションプログラム２０３によって画面に表示された第２ビュー５３上の第１オブジェクト５３１をコピー（又はカット）するための操作が行われた場合、コピー処理部５１は、その第１オブジェクト５３１のデータを、作業メモリ４０１内のクリップボード領域４０１Ａに保存する。クリップボード領域４０１Ａは、コピー（又はカット）が指示されたデータが一時的に保存される記憶領域であり、例えば、主メモリ１０３内に設けられる。また、第１オブジェクト５３１は、手書きストローク、文字、図形、もしくは画像、又はそれらの組み合わせを含み得る。
【００７８】
なお、コピーされる第１オブジェクトは、第１ビュー（カンバス）上のオブジェクトであってもよい。その場合、コピー処理部３７は、第１ビュー６１上の第１オブジェクトをコピーするための操作に応じて、その第１オブジェクトのデータを、作業メモリ４０１内のクリップボード領域４０１Ａに保存する。
【００７９】
処理部３３は、コピーされたオブジェクト５３１をカンバス６１に貼り付けるための処理を実行する。処理部３３は、マージン処理部３３１とペースト処理部３３２とを備える。
【００８０】
マージン処理部３３１は、貼り付け（ペースト）操作が検出されたことに応じて、クリップボード領域４０１Ａに保存されたデータに基づくオブジェクト５３１にマージンを加えるための処理を行う。なお、マージン処理部３３１は、クリップボード領域４０１Ａに、オブジェクト５３１のデータが保存されたことに応じて、オブジェクト５３１にマージンを加えるための処理を行ってもよい。
【００８１】
図１３は、コピーされたオブジェクト５３１にマージンが加えられる例を示す。マージン処理部３３１は、例えば、オブジェクト５３１の上下左右に所定の大きさのマージン５４１〜５４４を加える。これは、オブジェクト５３１がカンバス６１に貼り付けられた場合に、そのオブジェクト５３１と、カンバス６１に既に描画されていた別のオブジェクトとが密着しないようにして、オブジェクトが見えにくくならないようにするためである。したがって、オブジェクト５３１とマージン５４１〜５４４とを含む領域が、カンバス６１に貼り付けられるオブジェクト５４として扱われる。マージン処理部３３１は、このオブジェクト５４のデータを作業メモリ４０１に保存する。
【００８２】
そして、ペースト処理部３３２は、作業メモリ４０１に格納されたオブジェクト５４のデータを用いて、オブジェクト５４をカンバス６１に貼り付けるための処理を行う。ペースト処理部３３２は、画面に表示されている第１ビュー（カンバス）６１を探索領域（探索範囲）として、オブジェクト５４を貼り付け可能な空白領域を探索する。
【００８３】
より具体的には、ペースト処理部３３２は、画面に表示されている第１ビュー（カンバス）６１上に既に描画されているオブジェクトに対応する領域（以下、既存オブジェクト領域とも称する）を検出する。ペースト処理部３３２は、図１４に示すように、第１ビュー６１上に既に描画されているオブジェクト６１１〜６１４に対応する領域６１１Ａ〜６１４Ａを検出する。ペースト処理部３３２は、例えば、描画されているオブジェクトが手書きストロークである場合、連続して入力された手書きストロークのまとまりを包含する外接矩形を、オブジェクトに対応する領域として検出する。ペースト処理部３３２は、共有データ４０２Ａから、カンバス６１に描画されている各オブジェクト６１１〜６１４に関連付けられたレコードを読み出し、そのレコードの「座標」フィールドに、検出された既存オブジェクト領域の位置を示す座標（例えば、領域の左上端の座標）を設定し、「サイズ」フィールドに、その既存オブジェクト領域のサイズを設定してもよい。
【００８４】
ペースト処理部３３２は、検出された既存オブジェクト領域６１１Ａ〜６１４Ａを用いて、第１ビュー（カンバス）６１内の、これら既存オブジェクト領域６１１Ａ〜６１４Ａでない領域に基づいて、第１ビュー６１内の、オブジェクト５４を貼り付け可能な空白領域を探索する。ペースト処理部３３２は、例えば、第１ビュー６１をラスタスキャンすることによって、第１ビュー６１内に設定される注目領域がオブジェクト５４を貼り付け可能な空白領域であるか否かの判定を、第１ビュー６１上を、例えば、１画素分ずつずらして得られる注目領域に対して繰り返し行う。この注目領域は、例えば、オブジェクト５４と同じサイズを有する領域である。このラスタスキャンは、探索領域の左上端から行われてもよいし、ユーザが手書きストローク等の他のオブジェクトを直前に入力した位置又はその近傍の位置から行われてもよい。また、ペースト処理部３３２は、ある注目領域と既存オブジェクト領域との重なり量と、次の注目領域と既存オブジェクト領域との重なり量との変化に応じて、さらに次の注目領域を設定するようにしてもよい。ペースト処理部３３２は、例えば、重なり量の変化が小さい場合には、現在の注目領域から大きく（例えば、１０画素分）ずらして得られた次の注目領域に対して上述の判定を行い、重なり量の変化が大きい場合には、現在の注目領域から小さく（例えば、１画素分）ずらして得られた次の注目領域に対して上述の判定を行う。
【００８５】
ペースト処理部３３２は、探索の結果、第１ビュー（カンバス）６１内に、オブジェクト５４を貼り付け可能な空白領域があった場合、その空白領域を、オブジェクト５４の貼り付け領域に決定する。表示処理部３１は、決定されたカンバス６１上の貼り付け領域に、オブジェクト５４を描画する。
【００８６】
一方、第１ビュー６１内にオブジェクト５４を貼り付け可能な空白領域がなかった場合、ペースト処理部３３２は、オブジェクト５４を順次縮小しながら、上述したラスタスキャンによる貼り付け領域の探索を行う。ペースト処理部３３２は、オブジェクト５４を所定の割合（例えば、１０パーセント）だけ縮小する。そして、ペースト処理部３３２は、第１ビュー６１内で、その縮小されたオブジェクト５４を貼り付け可能な空白領域を探索する。
【００８７】
ペースト処理部３３２は、第１ビュー６１内に、縮小されたオブジェクト５４を貼り付け可能な空白領域があった場合、その空白領域を、縮小されたオブジェクト５４の貼り付け領域に決定する。表示処理部３１は、決定された貼り付け領域に、縮小されたオブジェクト５４を描画する。また、ペースト処理部３３２は、第１ビュー６１内に、縮小されたオブジェクト５４を貼り付け可能な空白領域がない場合には、オブジェクト５４を所定の割合だけさらに縮小し、その縮小されたオブジェクト５４を貼り付け可能な空白領域を探索する処理を繰り返し行う。
【００８８】
オブジェクト５４を貼り付け可能な空白領域を探索する処理によって、第１ビュー（カンバス）６１から複数の貼り付け可能な空白領域が得られた場合、ペースト処理部３３２は、それら複数の領域から、最も大きなサイズを有する領域、第１ビュー６１の中央に最も近い領域、既存オブジェクト領域６１１Ａ〜６１４Ａからの距離が最大である領域、等を選択することもできる。
【００８９】
図１５に示す例では、上述した処理により、第１ビュー（カンバス）６１上の、既存オブジェクト領域６１１Ａ〜６１４Ａに重ならない空白領域に、オブジェクト５４を縮小することにより得られたオブジェクト５５が描画されている。オブジェクト５５には、オブジェクト本体５５３とマージン５５１〜５５４とが含まれている。このマージン５５１〜５５４により、オブジェクト本体５５３と既存オブジェクト領域６１１Ａ〜６１４Ａとが密着しないので、ユーザは、オブジェクト毎のまとまりを容易に識別することができる。
【００９０】
なお、オブジェクト５４の貼り付け領域は、第１ビュー（カンバス）６１全体からではなく、第１ビュー６１内の、ユーザによって指定された領域から探索されてもよい。
【００９１】
図１６及び１７は、ユーザによる操作に応じて、オブジェクトの貼り付け領域が探索される探索領域（探索範囲）が設定される例を示す。  
図１６に示すように、ペースト処理部３３２は、タッチスクリーンディスプレイ１７を介して入力されるストローク（軌跡）７１の始点７１Ａと終点７１Ｂとに基づく矩形領域を、探索領域７２に設定する。表示処理部３１は、ストローク７１の入力中に、始点７１Ａと終点７１Ｂとに基づく矩形をプレビュー表示してもよい。表示処理部３１は、例えば、この矩形に対応する点線の枠を描画する。
【００９２】
ペースト処理部３３２は、ストローク７１の入力が完了した場合、そのストロークに基づく探索領域７２内でオブジェクト５４を貼り付け可能な空白領域を探索する。ペースト処理部３３２は、探索領域７２内で、第１ビュー６１に既に描画されていたオブジェクト６１２，６１４に対応する領域６１２Ａ，６１４Ａと重ならずに、オブジェクト５４が貼り付けられる空白領域を探索する。そのような領域が見つからない場合には、ペースト処理部３３２は、オブジェクト５４を所定の割合だけ縮小し、探索領域７２内で、オブジェクト６１２，６１４に対応する領域６１２Ａ，６１４Ａと重ならずに、縮小されたオブジェクト５４が貼り付けられる空白領域を探索する。
【００９３】
図１７に示すように、設定された探索領域７２内の、第１ビュー６１に既に描画されていたオブジェクト６１２，６１４に対応する領域６１２Ａ，６１４Ａと重ならない空白領域に、オブジェクト５４が縮小されたオブジェクト５６が貼り付けられている。このオブジェクト５６には、オブジェクト本体５３４だけではなく、マージン５６１〜５６４も含まれているので、オブジェクト５３４は、既に描画されていたオブジェクトの領域６１２Ａ，６１４Ａに密着しない。そのため、オブジェクト５３４を見やすく貼り付けることができる。
【００９４】
さらに、図１８及び図１９に示すように、探索領域を指定するためのストローク（軌跡）が入力されている間に、そのストロークに応じて、貼り付けられるオブジェクトに関する情報をプレビュー表示することもできる。
【００９５】
図１８に示す例では、ペースト処理部３３２及び表示処理部３１は、タッチスクリーンディスプレイ１７を介して入力されるストローク７５の始点７５Ａと終点７５Ｂとに基づく矩形領域７５１内に、オブジェクト５４（すなわち、作業メモリ４０１に格納されているデータのオブジェクト）が貼り付けられ得る最大のサイズを示す矩形７５２を描画する。表示処理部３１は、例えば、この矩形７５２に対応する点線の枠を描画する。
【００９６】
また、図１９に示すように、ペースト処理部３３２及び表示処理部３１は、矩形領域７５１内に貼り付けられ得る最大のサイズを有するオブジェクト７６１を描画するようにしてもよい。このオブジェクト７６１は、例えば、貼り付けが指示されたオブジェクト５４が、矩形領域７５１のサイズに応じて縮小されたオブジェクトである。
【００９７】
上述したように、ペースト処理部３３２は、第１ビュー（カンバス）６１内に、縮小されたオブジェクト５４を貼り付け可能な空白領域がない場合、オブジェクト５４を所定の割合だけさらに縮小し、その縮小されたオブジェクト５４を貼り付け可能な空白領域を探索する処理を、貼り付け可能な空白領域が見つかるまで繰り返し行う。しかし、所定の縮小率（例えば、３０パーセント）までオブジェクト５４を縮小しても貼り付け可能な空白領域が見つからない場合、ペースト処理部３３２はオブジェクト５４の貼り付け領域を決定しない。ペースト処理部３３２によってオブジェクトの貼り付け領域が決定されなかった場合（すなわち、第１ビュー（探索領域）６１内にオブジェクト５４が貼り付けられる空白領域が存在しないと判定される場合）、表示処理部３１は、第１ビュー６１上にオブジェクト５４を描画しない。
【００９８】
例えば、ペースト処理部３３２及び表示処理部３１は、オブジェクト５４のサイズに対する、縮小されたオブジェクト５４のサイズの割合がしきい値以下である場合、第１ビュー６１にオブジェクト５４を描画しない。また、この割合がしきい値よりも大きい場合、ペースト処理部３３２及び表示処理部３１は、上述した第１ビュー６１からオブジェクト５４が貼り付けられる空白領域を探索する処理により、第１ビュー６１内に縮小されたオブジェクト５４が貼り付けられる第２空白領域があるか否かを判定し、第２空白領域があると判定された場合、当該第２空白領域に縮小されたオブジェクト５４を描画する。
【００９９】
なお、表示処理部３１は、ペースト処理部３３２によってオブジェクト５４の貼り付け領域が決定されなかった場合（すなわち、第１ビュー（探索領域）６１内にオブジェクト５４が貼り付けられる空白領域がない場合）に、第１ビュー６１上に、オブジェクト５４を編集可能な状態で表示してもよい。
【０１００】
図２０に示す例では、ペースト処理部３３２は、既に多数のオブジェクト６５１〜６５７が描画されているカンバス６５上に、オブジェクト５４の貼り付けに適した空白領域が存在しないことを決定する。表示処理部３１は、この決定に応じて、カンバス６５上の所定の位置（例えば、中央、左上端、等）に、オブジェクト５４を編集可能な状態で表示する。ユーザは、表示されているオブジェクト５４に対して、サイズや位置を変更するための操作を行うことができる。表示処理部３１は、その操作に応じて、サイズや位置が変更されたオブジェクト５４を表示する。そして、ユーザによってオブジェクト５４の編集が完了したことを示す操作が行われたことに応じて、表示処理部３１は、その編集されたオブジェクト５４をカンバス６５に貼り付ける（描画する）。
【０１０１】
なお、ユーザは、編集可能な状態で表示されているオブジェクト５４を削除するための操作（すなわち、オブジェクト５４を貼り付ける指示をキャンセルするための操作）を行うこともできる。表示処理部３１は、この操作に応じて、カンバス６５上に表示されているオブジェクトを削除する。
【０１０２】
また、表示処理部３１は、図２１に示すように、カンバス６５上に、オブジェクト５４の貼り付けに適した空白領域が存在しなかったことを示すメッセージ（ダイアログボックス）７７を表示することもできる。
【０１０３】
なお、ペースト処理部３３２は、所定の縮小率（例えば、３０パーセント）までオブジェクト５４を縮小しても、そのオブジェクト５４を貼り付け可能な空白領域が見つからない場合に、既存オブジェクト領域との重複が最も小さい領域を、オブジェクト５４の貼り付け領域に決定してもよい。表示処理部３１は、決定された貼り付け領域にオブジェクト（縮小されたオブジェクト）５４を描画する。
【０１０４】
送信制御部３４及び受信制御部３５は、手書き共有サービスを利用する電子機器間で、第１ビュー（カンバス）に貼り付けられたオブジェクトを共有するためのデータのやり取りを行う。送信制御部３４及び受信制御部３５は、本タブレットコンピュータ１０が手書き共有サービスのオーナーとクライアントのいずれであるかに応じた処理を行う。
【０１０５】
まず、本タブレットコンピュータ１０が手書き共有サービスのオーナーである場合について説明する。  
送信制御部３４は、貼り付けられたオブジェクト５４に対応するオブジェクトデータを、手書き共有サービスのクライアントである外部電子機器に送信する。このオブジェクトデータは、例えば、オブジェクト５４に含まれる手書きストローク、文字、図形、画像等のデータと、オブジェクト５４が貼り付けられた領域の共有カンバス上の位置及びサイズを示すデータとを含む。外部電子機器は、このオブジェクトデータを受信し、当該機器に設けられるディスプレイの画面上のカンバス（ビュー）に、受信されたオブジェクトデータに基づくオブジェクトを描画する。
【０１０６】
また、受信制御部３５は、手書き共有サービスのクライアントである外部電子機器から、オブジェクトデータを受信する。表示処理部３１は、受信されたオブジェクトデータに基づくオブジェクトを第１ビュー（カンバス）に描画する。そして、送信制御部３４は、受信されたオブジェクトデータを、手書き共有サービスの別のクライアントである外部電子機器に送信する。
【０１０７】
次いで、本タブレットコンピュータ１０が手書き共有サービスのクライアントである場合について説明する。
【０１０８】
送信制御部３４は、貼り付けられたオブジェクト５４に対応するオブジェクトデータをオーナーである外部電子機器に送信する。この外部電子機器は、このオブジェクトデータを受信し、当該機器に設けられるディスプレイの画面上のカンバス（ビュー）に、受信されたオブジェクトデータに基づくオブジェクトを描画する。そして、外部電子機器は、その手書き共有サービスの別のクライアントである外部電子機器に、受信したオブジェクトデータを送信する。その別のクライアントである外部電子機器は、このオブジェクトデータを受信し、当該機器に設けられるディスプレイの画面上のカンバス（ビュー）に、受信されたオブジェクトデータに基づくオブジェクトを描画する。
【０１０９】
また、受信制御部３５は、手書き共有サービスのオーナーである外部電子機器から、オブジェクトデータを受信する。このオブジェクトデータは、オーナーである外部電子機器又は別のクライアントである外部電子機器によって生成されたデータである。表示処理部３１は、受信されたオブジェクトデータに基づくオブジェクトを第１ビュー（カンバス）に描画する。
【０１１０】
以上により、手書き共有サービス（グループ）に参加する各電子機器で同一のオブジェクトが描画されたカンバスを表示することができる。
【０１１１】
次いで、図２２のフローチャートを参照して、タブレットコンピュータ１０によって実行されるコピー処理の手順の例を説明する。タッチスクリーンディスプレイ１７の画面上には、ユーザがコピー（又はカット）しようとする第１オブジェクトを含むビューが表示されている。このビューは、例えば、手書き共有アプリケーションプログラム２０２によって表示される第１ビューであってもよいし、ノートアプリケーションプログラム２０３のような別のアプリケーションプログラムによって表示される第２ビューであってもよい。第１ビューは、タブレットコンピュータ１０と１つ以上の他の電子機器との間で共有されるカンバス（文書）の少なくとも一部を含むビューである。また、第２ビューは、手書きストローク、文字、図形、画像、等の各種のオブジェクトを含むドキュメントを作成（編集）するためのビューである。以下では、画面上に第２ビューが表示されている場合を例示する。
【０１１２】
まず、タブレットコンピュータ１０のＣＰＵ１０１は、タッチスクリーンディスプレイ１７の画面上で、領域を選択するための操作が行われたか否かを判定する（ブロックＢ１１）。領域を選択するための操作は、画面上で、例えば、矩形領域の始点と終点を指定するストロークや、領域の形状を自由に指定するストロークを入力する操作である。領域を選択するための操作が行われていない場合（ブロックＢ１１のＮｏ）、ブロックＢ１１に戻り、領域を選択するための操作が行われたか否かが再度判定される。
【０１１３】
領域を選択するための操作が行われた場合（ブロックＢ１１のＹｅｓ）、ＣＰＵ１０１は、コピーを指示するための操作が行われたか否かを判定する（ブロックＢ１２）。コピーを指示するための操作が行われていない場合（ブロックＢ１２のＮｏ）、ブロックＢ１２に戻り、コピーを指示するための操作が行われたか否かが再度判定される。なお、ＣＰＵ１０１は、ブロックＢ１２において、コピーを指示するための操作の代わりに、カットを指示するための操作が行われたか否かを判定してもよい。
【０１１４】
コピーを指示するための操作が行われた場合（ブロックＢ１２のＹｅｓ）、ＣＰＵ１０１は、選択されている領域内の第１オブジェクトのデータをクリップボード領域４０１Ａに保存する（ブロックＢ１３）。クリップボード領域４０１Ａは、コピー（又はカット）がされたオブジェクトのデータが一時的に保存される記憶領域であり、例えば、主メモリ１０３内に設けられる。また、第１オブジェクトは、手書きストローク、文字、図形、もしくは画像、又はそれらの組み合わせを含み得る。
【０１１５】
上述したコピー処理の手順は、ノートアプリケーションプログラム２０３による処理に相当する。なお、画面上に第１ビューが表示され、その第１ビュー内のオブジェクトがコピー（又はカット）される場合には、このコピー処理の手順は、手書き共有アプリケーションプログラム２０２による処理に相当する。
【０１１６】
図２３のフローチャートは、上述したコピー処理によって得られた第１オブジェクトを、タブレットコンピュータ１０と１つ以上の他の電子機器との間で共有されるカンバス上に貼り付けるためのペースト処理の手順の例を示す。以下では、タッチスクリーンディスプレイ１７の画面上に、カンバスの少なくとも一部が表示されている場合を例示する。
【０１１７】
まず、ＣＰＵ１０１は、表示されているカンバス（第１ビュー）上で、領域を選択するための操作が行われたか否かを判定する（ブロックＢ２０１）。領域を選択するための操作は、画面上で、例えば、矩形領域の始点と終点を指定するストロークや、領域の形状を自由に指定するストロークを入力する操作である。ユーザは、この操作により、第１オブジェクトが貼り付けられる領域を大まかに指定することができる。
【０１１８】
領域を選択する操作が行われた場合（ブロックＢ２０１のＹｅｓ）、ＣＰＵ１０１は、ペーストを指示するための操作が行われたか否かを判定する（ブロックＢ２０２）。ペーストを指示するための操作が行われていない場合（ブロックＢ２０２のＮｏ）、ブロックＢ２０２に戻り、ペーストを指示するための操作が行われたか否かが再度判定される。
【０１１９】
ペーストを指示するための操作が行われた場合（ブロックＢ２０２のＹｅｓ）、ＣＰＵ１０１は、選択されている領域を、第１オブジェクトが貼り付けられる領域が探索される探索領域に設定する（ブロックＢ２０３）。
【０１２０】
また、領域を選択するための操作が行われていない場合（ブロックＢ２０１のＮｏ）、ＣＰＵ１０１は、ペーストを指示するための操作が行われたか否かを判定する（ブロックＢ２０４）。ペーストを指示するための操作が行われていない場合（ブロックＢ２０４のＮｏ）、ブロックＢ２０１に戻り、領域を選択するための操作が行われたか否かが再度判定される。
【０１２１】
ペーストを指示するための操作が行われた場合（ブロックＢ２０４のＹｅｓ）、すなわち、カンバス上の領域が選択されることなく、ペーストを指示するための操作が行われた場合、ＣＰＵ１０１は、カンバス全体が画面に表示されているか否かを判定する（ブロックＢ２０５）。カンバス全体が画面に表示されている場合（ブロックＢ２０５のＹｅｓ）、ＣＰＵ１０１は、カンバス全体を、第１オブジェクトが貼り付けられる領域が探索される探索領域に設定する（ブロックＢ２０７）。
【０１２２】
一方、カンバス全体が画面に表示されていない場合、すなわち、カンバスの一部分だけが画面に表示されている場合（ブロックＢ２０５のＮｏ）、ＣＰＵ１０１は、カンバスの内、画面に表示されている部分を、第１オブジェクトが貼り付けられる領域が探索される探索領域に設定する（ブロックＢ２０６）。
【０１２３】
次いで、ＣＰＵ１０１は、クリップボード領域４０１Ａに保存されたデータに基づく第１オブジェクトにマージンを加える（ブロックＢ２０８）。ＣＰＵ１０１は、マージンが加えられた第１オブジェクトのデータを、例えば、作業メモリ４０１に保存する。
【０１２４】
そして、ＣＰＵ１０１は、設定された探索領域から、第１オブジェクト（すなわち、マージンが加えられた第１オブジェクト）が貼り付けられる空白領域を決定するための領域決定処理を実行する（ブロックＢ２０９）。この領域決定処理では、設定された探索領域内にオブジェクトが既に描画（配置）されている場合、そのオブジェクトが描画されていない空白領域から、第１オブジェクトが貼り付けられる領域を決定される。なお、この領域決定処理では、探索領域内に第１オブジェクトが貼り付けられる空白領域がない場合、貼り付けに適した領域がなかったことを示す処理結果が出力される。この領域決定処理の詳細な手順は、図２４のフローチャートを参照して後述する。
【０１２５】
ＣＰＵ１０１は、実行された領域決定処理によって、第１オブジェクトが貼り付けられる領域が決定されたか否かを判定する（ブロックＢ２１０）。第１オブジェクトが貼り付けられる領域が決定された場合（ブロックＢ２１０のＹｅｓ）、ＣＰＵ１０１は、決定された領域に第１オブジェクトを貼り付ける（ブロックＢ２１１）、すなわち、決定された領域に第１オブジェクトを描画する。
【０１２６】
第１オブジェクトが貼り付けられる領域が決定されていない場合（ブロックＢ２１０のＮｏ）、ＣＰＵ１０１は、表示されているカンバス（第１ビュー）上の所定の位置（例えば、中央、左上端、等）に、第１オブジェクトを編集可能な状態で表示する（ブロックＢ２１２）。ユーザは、表示された第１オブジェクトに対して、表示されるサイズや位置を変更するための操作を行うことができる。また、ユーザは、表示された第１オブジェクトを削除するための操作を行うこともできる。なお、ＣＰＵ１０１は、探索領域内に、貼り付けに適した領域がなかったことを示すメッセージ（ダイアログボックス）をカンバス上に表示するようにしてもよい（ブロックＢ２１３）。
【０１２７】
次いで、図２４のフローチャートは、領域決定処理の手順の例を示す。
【０１２８】
まず、ＣＰＵ１０１は、探索領域内で、オブジェクトが既に描画（配置）されている既存オブジェクト領域を検出する（ブロックＢ３１）。ＣＰＵ１０１は、検出された既存オブジェクト領域でない領域に基づいて、探索領域内で、第１オブジェクトを貼り付け可能な空白領域を探索する（ブロックＢ３２）。ＣＰＵ１０１は、例えば、探索領域をラスタスキャンすることによって、探索領域内の注目領域が第１オブジェクトを貼り付け可能な空白領域であるか否かの判定を、注目領域を第１量（例えば、１画素分）ずつずらしながら繰り返し行う。
【０１２９】
次いで、ＣＰＵ１０１は、探索領域内に第１オブジェクトを貼り付け可能な空白領域があったか否かを判定する（ブロックＢ３３）。探索領域内に第１オブジェクトを貼り付け可能な空白領域があった場合（ブロックＢ３３のＹｅｓ）、ＣＰＵ１０１は、その空白領域を、第１オブジェクトの貼り付け領域に決定する（ブロックＢ３４）。
【０１３０】
探索領域内に第１オブジェクトを貼り付け可能な空白領域がなかった場合（ブロックＢ３３のＮｏ）、ＣＰＵ１０１は、第１オブジェクトを所定の割合（例えば、１０パーセント）だけ縮小する（ブロックＢ３５）。そして、ＣＰＵ１０１は、オリジナルの第１オブジェクトのサイズに対する、その縮小された第１オブジェクトのサイズの割合、すなわち、縮小率が、しきい値（例えば、３０パーセント）よりも大きいか否かを判定する（ブロックＢ３６）。縮小率がしきい値よりも大きい場合（ブロックＢ３６のＹｅｓ）、ＣＰＵ１０１は、ブロックＢ３２に戻り、その縮小された第１オブジェクトを貼り付け可能な空白領域を決定するための処理を行う。つまり、縮小率がしきい値より大きい間、縮小された第１オブジェクトを貼り付け可能な空白領域が探索される。
【０１３１】
縮小率がしきい値以下である場合（ブロックＢ３６のＮｏ）、ＣＰＵ１０１は、第１オブジェクトの貼り付け領域を決定せずに処理を終了する。つまり、第１オブジェクトが見えづらくなるほど縮小されるような場合には、ＣＰＵ１０１は、第１オブジェクトの貼り付け領域を決定せずに処理を終了する。
【０１３２】
また、図２５のフローチャートを参照して、タブレットコンピュータ１０がオーナー機器である場合の共有処理の手順の例を説明する。
【０１３３】
まず、ＣＰＵ１０１は、オブジェクトが共有カンバスに貼り付けられたか否かを判定する（ブロックＢ４１）。オブジェクトが共有カンバスに貼り付けられていない場合（ブロックＢ４１のＮｏ）、ブロックＢ４２の手順がスキップされる。
【０１３４】
オブジェクトが共有カンバスに貼り付けられた場合（ブロックＢ４１のＹｅｓ）、ＣＰＵ１０１は、オブジェクトと、当該オブジェクトが貼り付けられた領域とを示すオブジェクトデータを、例えば、無線通信デバイス１０７の送信部１０７Ｔを介して、クライアント機器に送信する（ブロックＢ４２）。このオブジェクトデータは、例えば、オブジェクトに含まれる手書きストローク、文字、図形、画像等のデータと、オブジェクトが貼り付けられた領域の共有カンバス上の位置及びサイズを示すデータとを含む。クライアント機器は、図２６のフローチャートを参照して後述するように、このオブジェクトデータを受信し、クライアント機器に設けられるディスプレイの画面上の共有カンバスに、受信されたオブジェクトデータに基づくオブジェクトを描画する。
【０１３５】
次いで、ＣＰＵ１０１は、例えば、無線通信デバイス１０７の受信部１０７Ｒを介して、クライアント機器からオブジェクトデータを受信したか否かを判定する（ブロックＢ４３）。このオブジェクトデータは、クライアント機器上で共有カンバスに貼り付けられたオブジェクトと、当該オブジェクトが貼り付けられた領域とを示す。クライアント機器からオブジェクトデータを受信していない場合（ブロックＢ４３のＮｏ）、ブロックＢ４４及びブロックＢ４５の手順がスキップされる。
【０１３６】
クライアント機器からオブジェクトデータを受信した場合（ブロックＢ４３のＹｅｓ）、ＣＰＵ１０１は、受信したオブジェクトデータに基づくオブジェクトを共有カンバスに描画する（ブロックＢ４４）。そして、ＣＰＵ１０１は、受信元のクライアント機器以外のクライアント機器に、送信部１０７Ｔを介して、受信したオブジェクトデータを送信する（ブロックＢ４５）。
【０１３７】
図２６のフローチャートを参照して、タブレットコンピュータ１０がクライアント機器である場合の共有処理の手順の例を説明する。
【０１３８】
まず、ＣＰＵ１０１は、オブジェクトが共有カンバスに貼り付けられたか否かを判定する（ブロックＢ５１）。オブジェクトが共有カンバスに貼り付けられていない場合（ブロックＢ５１のＮｏ）、ブロックＢ５２の手順がスキップされる。
【０１３９】
オブジェクトが共有カンバスに貼り付けられた場合（ブロックＢ５１のＹｅｓ）、ＣＰＵ１０１は、オブジェクトと、当該オブジェクトが貼り付けられた領域とを示すオブジェクトデータを、例えば、無線通信デバイス１０７の送信部１０７Ｔを介して、オーナー機器に送信する（ブロックＢ５２）。オーナー機器は、図２５のフローチャートを参照して上述したように、このオブジェクトデータを受信し、オーナー機器に設けられるディスプレイの画面上の共有カンバスに、受信されたオブジェクトデータに基づくオブジェクトを描画し、また別のクライアント機器に、このオブジェクトデータを送信する。
【０１４０】
次いで、ＣＰＵ１０１は、例えば、無線通信デバイス１０７の受信部１０７Ｒを介して、オーナー機器からオブジェクトデータを受信したか否かを判定する（ブロックＢ５３）。このオブジェクトデータは、オーナー機器又は別のクライアント機器上で共有カンバスに貼り付けられたオブジェクトと、当該オブジェクトが貼り付けられた領域とを示す。オーナー機器からオブジェクトデータを受信していない場合（ブロックＢ５３のＮｏ）、ブロックＢ５４の手順がスキップされる。
【０１４１】
オーナー機器からオブジェクトデータを受信した場合（ブロックＢ５３のＹｅｓ）、ＣＰＵ１０１は、受信したオブジェクトデータに基づくオブジェクトを共有カンバスに描画する（ブロックＢ５４）。
【０１４２】
このようなオーナー機器による共有処理及びクライアント機器による共有処理により、オーナー機器とクライアント機器とで、同一の内容のカンバスを表示することができる、すなわち、カンバスを共有することができる。
【０１４３】
以上説明したように、本実施形態によれば、共有カンバス上に描画されているオブジェクトの視認性を低下させることなく、当該カンバスに新たなオブジェクトを貼り付けることができる。表示処理部３１は、本タブレットコンピュータ１０と１以上の他の電子機器との間で共有される文書の一部であって、タブレットコンピュータ１０及びそれら１以上の他の電子機器で入力された複数の第１手書きストロークが描画された第１ビューをＬＣＤ１７Ａの画面に表示する。ペースト処理部３３２は、ＬＣＤ１７Ａの画面（例えば、ノートアプリケーションプログラム２０３によって生成された画面の一部）上に描画された第１オブジェクトをコピー又はカットするための操作の後に、その第１オブジェクトを第１ビューに貼り付けるための操作が行われた場合、ＬＣＤ１７Ａの画面に表示されている第１ビュー内で複数の第１ストロークが描画されていない領域に基づいて、第１ビュー内に第１オブジェクトが貼り付けられる第１空白領域があるか否かを判定する。表示処理部３１は、第１空白領域があると判定された場合、当該第１空白領域に第１オブジェクトを描画する。
【０１４４】
これにより、第１ビューに描画されていた複数の第１手書きストロークに重ならない空白領域に、第１オブジェクトが描画されるので、第１手書きストロークの視認性を低下させることなく、第１ビューに第１オブジェクトを貼り付けることができる。また、ユーザが第１オブジェクトの位置やサイズを調整する操作を行う必要がないので、ユーザによる作業の手間を軽減することができる。
【０１４５】
また、本実施形態に記載された様々な機能の各々は、回路（処理回路）によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１４６】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１４７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４８】
２０２…手書き共有アプリケーションプログラム、２０３…ノートアプリケーションプログラム、３１…表示処理部、３２…ストロークデータ生成部、３３…処理部、３３１…マージン処理部、３３２…ペースト処理部、３４…送信制御部、３５…受信制御部、３６…保存処理部、３７…コピー処理部、４０１…作業メモリ、４０１Ａ…クリップボード領域、４０２…記憶媒体、４０２Ａ…共有データ、５１…コピー処理部。
【図１】
0006595896.tif 000002
【図２】
0006595896.tif 000003
【図３】
0006595896.tif 000004
【図４】
0006595896.tif 000005
【図５】
0006595896.tif 000006
【図６】
0006595896.tif 000007
【図７】
0006595896.tif 000008
【図８】
0006595896.tif 000009
【図９】
0006595896.tif 000010
【図１０】
0006595896.tif 000011
【図１１】
0006595896.tif 000012
【図１２】
0006595896.tif 000013
【図１３】
0006595896.tif 000014
【図１４】
0006595896.tif 000015
【図１５】
0006595896.tif 000016
【図１６】
0006595896.tif 000017
【図１７】
0006595896.tif 000018
【図１８】
0006595896.tif 000019
【図１９】
0006595896.tif 000020
【図２０】
0006595896.tif 000021
【図２１】
0006595896.tif 000022
【図２２】
0006595896.tif 000023
【図２３】
0006595896.tif 000024
【図２４】
0006595896.tif 000025
【図２５】
0006595896.tif 000026
【図２６】
0006595896.tif 000027