文書折り畳み表示装置およびプログラム
【課題】画面に表示された文書の折り畳み操作を直感的且つ簡易に行うことができるようにする。
【解決手段】ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力手段と、前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知する検知手段と、表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するジェスチャー検出手段と、前記ジェスチャー検出手段が前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成する折り畳み画像データ生成手段と、を有するようにする。
【解決手段】ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力手段と、前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知する検知手段と、表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するジェスチャー検出手段と、前記ジェスチャー検出手段が前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成する折り畳み画像データ生成手段と、を有するようにする。
【発明の詳細な説明】
【技術分野】
【0001】
マルチタッチディスプレイを用いた文書折り畳み表示装置およびプログラムに関する。
【背景技術】
【0002】
対話型の文書視覚化手法は、ディスプレイへの画像表示(たとえば3次元画像の表示)に用いられている。現在ではマルチタッチディスプレイがよく用いられている。
【0003】
ディスプレイ上への情報の視覚化に有効な原理は、フォーカスプラスコンテキスト(focus-plus-context)原理である。このフォーカスプラスコンテキスト原理を用いた表示方法においては、注目領域の内容を最小限の変形で忠実に描画する一方で、その周辺の背景領域(context region)の内容をある程度の変形を許容して表示する。これによって、画面スペースや演算のための資源の有効利用を図るのである。
【0004】
この原理を用いた手法の例として、魚眼ビューがある。しかしながら、これは文書の表示には向かない。なぜならば、魚眼ビューは直線を曲線に変形してしまうので、文字の視認性に難があるからである。
【0005】
この原理を用いた他の文書表示形態は、折り畳みである。ここでは、文書中のオブジェクトまたはページは、文書を構成する各要素がスクリーン面に対して平坦かつ平行に、そして変形することなく表示される。背景領域は、透視図法によって側面に折り畳まれる。
【0006】
非特許文献1においては、3つの「壁(wall)」が文書を3次元表示するのに用いられている。このパースペクティブウォール(Perspective Wall)式の視覚化を、図1に示す。ここでは、中心の壁(wall)がユーザーの方に面しており、スクリーン面に平行な平面上で文書を変形させることなく表示している。また、文書の2つの側壁は透視図法を用いて変形することによって描画されている。ここで、透視図変形においては、図1のように、スクリーンの奥の方にあるコンテンツほど小さくなる。また、図1から分かるように、線分(例えば、文字を構成する線分)は、側壁上においても線分として描画される。
【0007】
非特許文献2においては、フォーカスプラスコンテキスト原理を用いた折り畳み式の情報視覚化法に関する他の例が開示されている。ここでも、3次元空間での折り畳みというメタファーが用いられており、当該空間における複数の注目領域が変形することなく表示される一方で、背景領域は透視図変形されて描画される。すなわち、複数の注目領域はスクリーン面に対して平行に保たれるが、それ以外の空間は折り畳まれてしまうのである。
【0008】
また、図2のように、ディスプレイ上において、文書を互いに重ねるように表示するという手法も広く用いられている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】マッキンレー他(Mackinlay et al.)、「パースペクティブウォール:スムーズに統合される詳細と背景(The Perspective Wall: Details and context smoothly integrated )」、計算システムにおける人的要因に関するACM会議予稿集(Proceedings of the ACM Conference on Human Factors in Computing Systems)、1991年、頁173〜179
【非特許文献2】エルムフィスト他(Elmqvist et al.)、「メランジ:マルチフォーカス相互作用のための空間折り畳み(Melange: Space folding for multi-focus interaction)」、計算システムにおける人的要因に関する第26回年次SIGCHI会議予稿集(Proceeding of the twenty-sixth annual SIGCHI conference on Human factors in computing systems)、2008年、頁1333〜1342
【発明の概要】
【発明が解決しようとする課題】
【0010】
これまでは、画面に表示された文書の折り畳み操作を行う際において、折り畳みの指示、その折り畳み位置、または折り畳み角度の指定を行う直感的で簡易な方法がなかった。
【課題を解決するための手段】
【0011】
第1の手段としては、ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力手段と、前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知する検知手段と、表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するジェスチャー検出手段と、前記ジェスチャー検出手段が前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成する折り畳み画像データ生成手段と、を有するようにする。
【0012】
第2の手段としては、第1の手段に加えて、前記ジェスチャー検出手段が、前記第2の接触点が静止している間の前記第1の接触点の移動量を検出し、前記折り畳み画像データ生成手段が、検出された前記第1の接触点の移動量が大きいほど、折り畳む量を大きくした画像データを生成するようにする。
【0013】
第3の手段としては、第1または第2の手段に加えて、前記ジェスチャー検出手段が、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点に近づく方向か、遠ざかる方向かを検出し、前記折り畳み画像データ生成手段が、検出した移動方向が遠ざかる方向の場合と近づく方向の場合とで、異なる折り畳み方向へ折り畳んだような画像データを生成するようにする。
【0014】
第4の手段としては、第1または第2の手段に加えて、前記ジェスチャー検出手段が、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点から前記第1の接触点の初期位置を見た場合に左右いずれの方向に向かっているかを検出し、前記折り畳み画像データ生成手段が、検出した移動方向が左方向と右方向とで、異なる折り畳み方向へ折り畳んだような画像データを生成するようにする。
【0015】
第5の手段としては、ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力するステップと、前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知するステップと、表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するステップと、前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成するステップと、をプログラムによってコンピュータに実行させるようにする。
【発明の効果】
【0016】
請求項1及び5に記載した発明によれば、一般的なピンチジェスチャーとの共存が可能であって、直感的かつ簡易な文書の折り畳みの指示が可能となる。
【0017】
請求項2に記載した発明によれば、さらに、折り畳みの指示と同時に、折り畳みの量の直感的且つ簡易な指示が可能となる。
【0018】
請求項3及び4に記載した発明によれば、さらに折り畳みの指示と同時に、折り畳みの方向の直感的且つ簡易な指示が可能となる。
【図面の簡単な説明】
【0019】
【図1】フォーカスプラスコンテキスト法に関する従来技術の説明図である。
【図2】文書の重ね合わせ表示に関する従来技術の説明図である。
【図3】本発明の一態様における、文書の折り畳み表示のフローチャートである。
【図4】本発明の一態様における、文書の折り畳み表示システムのブロック図である。
【図5】本発明の一態様における、文書表示を示す図である。
【図6】谷折りの際の対称並行ジェスチャーモデルを示す図である。
【図7】山折りの際の対称並行ジェスチャーモデルを示す図である。
【図8】対称並行ジェスチャーモデルのフローチャートである。
【図9】谷折りの際の「非対称並行」ジェスチャーモデルを示す図である。
【図10】山折りの際の「非対称並行」ジェスチャーモデルを示す図である。
【図11】「非対称並行」ジェスチャーモデルのフローチャートである。
【図12】横折りおよび対角線折りを示す図である。
【図13】蛇腹折りを示す図である。
【図14】一連の折り畳みを示す図である。
【図15】論理ジェスチャーマッピングを示す図である。
【図16】方向ジェスチャーマッピングを示す図である。
【図17】接触点制限ジェスチャーマッピングを示す図である。
【図18】折り線位置決定のフローチャートである。
【図19】文書の射影プロファイルを示す図である。
【図20】写真の折り畳みの例を示す図である。
【図21】本発明の一態様におけるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0020】
本発明の一実施の形態を説明するが、以下の説明では、文書の操作のために複数の指をディスプレイに接触させるマルチタッチジェスチャーを行うことが前提となる。ここで、ジェスチャーとは、1または2以上の接触点(後述)の位置及び動きの組み合わせのことであるが、場合によってはここに接触の圧力の大きさ等、接触点にまつわる他の要素が加わることがある。また、マルチタッチジェスチャーとは、2以上の接触点のジェスチャーを指す。例えば、1本の指で文書のセクションをタッチしホールドし、他の指で他のセクションをタッチしドラッグする、といった文書操作がその例である。以下では、ディスプレイにタッチ(接触)するために指を使う例を用いて説明を行うが、これは指に限られるものではなく、接触を検知するタッチセンサを有するディスプレイがその接触を検知できるような硬さを有し、且つ位置を指定するという目的を達成できる程度に先が細い物であれば任意の物(指示用被接触物)が適用可能である。
【0021】
また、文書としては、紙文書を模したものが含まれるが、これに限定されることなく、ディスプレイ上に表示可能な任意の画像や文書が含まれる。例えば、ウェブページや写真である。さらには、ウェブブラウザやワードプロセッサなどのアプリケーションプログラムのウィンドウ表示であってもよい。また、文書は、コンテンツの無い空の文書であってもよいし、何らかのコンテンツを含んだものであってもよい。
【0022】
次に、「文書ページオブジェクト」という用語について説明する。文書ページオブジェクトは、文書を構成する各ページまたは複数のページの集合に対応するオブジェクトである。以下の説明においては、各ページまたは複数ページを表す2次元のグラフィカルオブジェクト(例えば、長方形のオブジェクト)として表現される。なお、ここでいう文書のページとしては、画像や文字を含んだ文書の一部であればよく、コンピュータで実行されるアプリケーションのウィンドウ、例えばウェブブラウザやワードプロセッサのウィンドウ表示に対応するものであってもよい。また、文書ページオブジェクトは、何らかのコンテンツを含んでもいてもよいし、何も含んでいない、すなわちブランクであってもよい。以下では、文書の折り畳み処理の説明をするが、文書ページオブジェクトとして、折り畳まない、または折り畳めない文書を含んでいてよいことはもちろんである。
【0023】
図3に、文書の折り畳みを模した文書画像の表示を行うシステムにおける具体的処理のフローチャートを示す。この例では、マルチタッチスクリーンを用いて、ユーザーの2つの指(2つの手の指)による同時操作を可能にしている。図4は、この方法を実装する文書視覚化システムの一例を示すブロック図である。このシステムでは、グラフィカルユーザーインターフェースを採用した3次元アプリケーションが実行される。
【0024】
図3及び図4を参照する。ステップ301において、折り畳みを行うジェスチャーモデルを適用するか否かが決定される。この場合における、ジェスチャーモデルとは、マルチタッチディスプレイ上における接触点の動きをどのように取り扱うかを特定するモデルである。ここで、接触点とは、被接触物(典型的には、そして以下の説明においても、ユーザーの指を意味するが、スタイラス等でもよい)とディスプレイとが接触する点のことである。
【0025】
以下では、このジェスチャーモデルを、(1)対称または非対称、(2)順次または並行という2種類の特性の組み合わせで表現する。「対称、非対称」は、手の役割を表す特性であり、入力時における2つの指による接触点が、対称的に(同様に)扱われるのか、非対称的に(異なるように)扱われるのかを表している。非対称の場合、ユーザーの両手にはそれぞれ異なった役割が割り当てられる。この場合、より繊細な動きが要求される役割を、利き手の指に割り当てるのが好ましい。「順次、並行」は、入力時の接触点の動きを1つの点だけに限定するのか、同時に複数の動きを許容するのかを表す特性である。
【0026】
これら2つの特性の組み合わせとしては、「対称順次」、「対称並行」、「非対称順次」および「非対称並行」があり得る。とはいっても、「対称順次」モデルの適用は、現実的には無いだろう。というのも、この場合は2つの指を同時に動かすことを制限する理由がないからである。また、「非対称並行」モデルは、実際にあり得ない。というのも、以下の具体的説明から明らかになるように「非対称」では、一方の手が動いている間その他方の手を動かさない、すなわち「並行」しないということが前提だからである。よって、以下の実施例においては、「対称並行」モデルおよび「非対称順次モデルの2つを取り扱う。
【0027】
ステップ301において、ジェスチャーモデルを適用すべきことが決定されると、図4に示すシステム400は、ジェスチャーモデルを適用することになる。
【0028】
ステップ302では、予め定められたシステムの設定値に基づいて、対称並行モデルを適用するか否かを決定する。対称並行モデルでは、2つの接触点(すなわち、指)が同時に動くことを許容するが、それぞれの接触点は同様の意味で解釈される。例えば、ユーザーは、文書ページオブジェクト中において隣接する2つのセクションを選択すべくそれらにタッチする際に、通常は両手の指それぞれ1本ずつを使うことになる。このとき、ユーザーの両手は同時に動くことになるが、その2つの指の接触イベントは、本システムにおいて同様の意味で(セクションの選択として)解釈される。ここで、セクションとは、文書中の領域のことであり、後述するようにその文書の視覚的特性や内容的特性またはユーザーの指示によって、一塊と認識した領域のことである。
【0029】
システムの設定(システムにおける初期設定または事前のユーザー設定)が、対称並行モデルの適用を指定していた場合、ステップ303において、対称並行ジェスチャーモデルユニット403において、対称並行モデルが適用される。このモデルの詳細については、図6及び図7を参照して後に説明する。
【0030】
ステップ302において、対称並行モデルの適用が指定されていないと判断した場合、ステップ304において非対称順次モデルが非対称順次ジェスチャーモデルユニット402を用いて適用される。
【0031】
非対称順次モデルにおいては、一方の指が動いている間は他方の指は静止したままであることが前提となる。このモデルの詳細は、図9乃至図11を用いて後に説明する。
【0032】
ステップ305においては、ステップ301乃至305で選択されたジェスチャーモデルに対して、特定のジェスチャーマッピングが適用されるか否かが、システムの設定に基づいて決定される。
【0033】
ここで、ジェスチャーマッピングとは、ディスプレイ表面の2次元空間における(指による)ジェスチャーの軌跡を、文書表示における3次元空間の視覚化(visualization)に対応させることである。ここでは、ジェスチャーマッピングは、論理ジェスチャーマッピング、方向ジェスチャーマッピング、および接触点拘束ジェスチャーマッピングを含むものとする。
【0034】
論理ジェスチャーマッピングでは、スクリーン上において折り線(文書を折り畳む際に折り目となる線分)と直角の方向へのジェスチャーの移動量が、折り畳みの角度(折り畳む量)と対応付けられる。折り畳みの方向は、右手の法則のような伝統的な規則で決定される。
【0035】
接触点拘束ジェスチャーマッピングでは、文書表示の3次元空間におけるセクション上の最初にタッチした点を、ディスプレイの画面上における指の接触点に追随させて動かすように表示する。
【0036】
方向ジェスチャーマッピングでは、ユーザーの2本の指による接触点同士の間隔が、開く方向に移動しているのか、それとも閉じる方向へ移動しているのかによって、折り畳みの方向が決定される。折り畳みの角度は、その移動量に応じて決定される。
【0037】
ステップ306において、システムの設定が論理ジェスチャーマッピングの適用を指定していると判断した場合には、ステップ307において論理ジェスチャーマッピングが、論理ジェスチャーマッピングユニット404によって適用される。
【0038】
ステップ308において、システムの設定が方向ジェスチャーマッピングの適用を指定していると判断した場合には、ステップ309において方向ジェスチャーマッピングユニット405によって 方向ジェスチャーマッピングが適用される。
【0039】
ステップ310において、システムの設定が接触点拘束ジェスチャーマッピングの適用を指定していると判断した場合には、ステップ311において、接触点拘束ジェスチャーマッピングユニット406によって、接触点拘束ジェスチャーマッピングが適用される。
【0040】
それぞれのジェスチャーマッピングの実装については、図15乃至17を用いて後に詳細に説明する。ここでは、これら3つのジェスチャーマッピングを説明したが、当然ながら他の任意のマッピングを適用できる。
【0041】
また、図3及び4ではシステム設定によってジェスチャーマッピングを選択する例を示したが、これに限らず、任意のマッピング選択方法が適用可能である。
【0042】
例えば、ユーザーは、メニューやダイアログボックスを用いて、ジェスチャーモデルおよびジェスチャーマッピングを特定するシステム設定を、使用する装置に応じて変更することができる。また、例えば、装置の製造メーカーがあらかじめその装置にマルチタッチジェスチャーモデルの指定を組み込んでおく等、その装置そのものに初期設定がしてあってもよい。
【0043】
そして、ジェスチャーモデルおよびジェスチャーマッピングの実装によって、図5に示すように、ディスプレイ501の画面上において、折り畳まれたセクションを有する文書の視覚化が可能となる。具体的には、図5に示すように、1つまたは複数の文書が、ユーザーによるジェスチャーによって、表示されまた折り畳み操作される。すなわち、ユーザーの所望の注目領域に対しては、変形を加えないようにしつつ、他の重要ではない領域については折り曲げて、ある程度は読める(見える)ものの、透視図変形された状態で表示されるようにするのである。
【0044】
これらの文書の折り畳みは、ディスプレイ上における単一の文書だけでなく、複数の文書の折り畳みの視覚化に適用可能である。上述のように、ここでの文書の視覚化は、物理的な紙や文書の折り畳みを模した形で実現される。
【0045】
図6は、対称並行モデルによる谷折りの実例を示すものである。図7は、同モデルによる山折りの説明である。そして、図8は、同モデルのフローチャートを示す。
【0046】
図6は、文書601が、セクション602及び603の2つのセクションに分割されている例を示している。文書中のセクションの決定に関しては、図18及び19を用いて説明する。
【0047】
ここでは、2つのセクションの例を示してはいるが、セクションの数はこれに限られない。ただし、説明の便宜のため、以下では2つの例のみを取り上げることにする。
【0048】
図6は、また、接触点604がセクション602上にあり、接触点605がセクション603上にある場合を示している。なお、これら接触点は必ずしもセクション上に無ければならないわけではない。接触点に最も近いセクションが選択されたセクションとして認識されてもよい。接触点は、指がスクリーンに接触している点である。接触点は、ディスプレイの画面においてユーザーがいつどこにタッチしたかを検出することで、特定される。
【0049】
対称並行モデルでは、文書ページオブジェクトの2つのセクションにタッチしてこれを選択するために、ユーザーはそれぞれ1本の指を用い、またそれらを同時に動かすことになる。これら2本の指のタッチイベントは、同様の意味を有するものとして解釈される
【0050】
次に、ユーザーは、接触点604及び605上にある指を、選択された2つのセクションを両者の境界で折り畳むべく動かす。同図では、そのセクションの境界が折り線606となっている例を示している。折り線の位置の決定については、図18及び19を参照して追って説明する。図6に示すように、接触点604及び605上の2つの指が、互いに近づく方向に対称的且つ同時並行的にそれぞれ移動するときに、文書601が谷折りされる。
【0051】
一方で、図7に示すように、接触点704及び705が、互いに遠ざかる方向に対称的且つ同時並行的にそれぞれ移動するときには、文書601が山折りされる。
【0052】
この具体的処理の流れを説明する。図8のステップ801に示すように、対称並行モデルを用いて折り畳みを行う場合、接触点が文書ページオブジェクト上に設定される。次に、ステップ802において、折り畳み操作を行うユーザーの指の動き、すなわち接触点の動きが、対称的且つ並行的なものとして解釈される。
【0053】
対称並行モデルにおける指の動きがシステムにおいて正しく解釈され、他のジェスチャーと混同されないようにするために、対称的な指の動きを他のジェスチャーから区別する方法が用いられる。例えば、文書を操作する際の一般的なマルチタッチジェスチャー操作として、ピンチ(片手の2本の指でつまむ動きの)ジェスチャーがあるが、対称並行モデルではこのジェスチャーとの区別が困難である。なお、ピンチジェスチャーは、一般に表示スケール変更(拡大・縮小)の指示として解釈される。
【0054】
ここで、システムによるコマンドの混同を防止するため、ユーザーが適切な操作を行うことを確保するような仕組みが用いられる。例えば、「対称並行」モデルに従ったコマンドのみを実行するようなモードを作ることや、「対称並行」モデルに従ったコマンドが好ましいことをユーザーに注意喚起することが、その例として挙げられる。
【0055】
図9は、非対称順次ジェスチャーモデルによる谷折りの例を示している。図10は、同モデルによる山折りを示している。図11は、同モデルを実装する際のフローチャートである。
【0056】
図9から分かるように、文書901は、セクション902及び903という2つのセクションに分割されている。文書のセクション分割に関しては、図18及び19を用いて後に説明する。さらに図9から分かるように、この場合、接触点904はセクション902上にあり、接触点905はセクション903上にある。
【0057】
非対称順次モデルは、物理オブジェクトにおけるユーザーインタラクションを模している。例えば、ナイフで物を切る場合を想定すると、利き手でその物を切る動作を行っている間、反対の手は動かさずにその物を押さえつけるが、このような動作に範をとったのである。
【0058】
非対称順次モデルを用いて文書を折り畳む場合、第2の指(利き手でない手の指が好ましい)は、文書のセクションまたは折り線をタッチして選択し、そのまま動かさない。そして、第1の指(利き手の指が好ましい)で、対象となるセクションをタッチして選択し、そのままその指を動かすことで、折り畳み動作を行う。このモデルの場合には、対称並行モデルの場合と異なり、ピンチジェスチャーとの区別が容易であり、モード等の特段の区別の仕組みを用意することなく、共存させることが可能である。
【0059】
図9(A)に示すように、利き手でない方の手の指によって、セクション902内の接触点904が定められ、また、利き手の指によってセクション903内の接触点905が定められるものとする。ここで折り畳みを行う際には、接触点905上の指を接触点904に近づくように移動させている間、接触点904上の指は静止したままにする。
【0060】
図9(B)は、接触点905が接触点904に近づくように移動した後に、セクション902および903の境界で谷折りが行われる例を示している。この境界は、折り線906となる。折り線の位置の決定については、図18及び19を参照して後に詳しく説明する。
【0061】
図10(A)に示すように、ユーザーの利き手でない方の手の指によって接触点1004が定められ、利き手の指によって接触点1005が定められるものとする。ここで折り畳みを行う際には、セクション1003内における接触点1005上の指が接触点1004から遠ざかるように移動させる間、セクション1002内における接触点1004上の指は静止したままにする。図10(B)に示すように、接触点1005が接触点1004から遠ざかるように移動した後、山折りが行われる。
【0062】
図11を参照してユーザーの操作を説明する。ステップ1101において、非対称順次モデルを用いて文書を折り畳む場合、2つの接触点が文書上において定められる。その後、ステップ1102において、ユーザーの利き手によって設定された接触点が折り畳みを行うべく移動している間、その反対の手による接触点は静止したままとなる。
【0063】
ここで、山折り谷折りは、上述したような縦方向の折り線に沿った畳み方に限らず、図12に示すように、横方向及び斜め方向の折り線に沿った畳み方にも適用可能である。また、ここで述べた折り畳み手法は、図13に示すような、蛇腹折りにも適用可能である。
【0064】
図12(A)および(B)は、それぞれ横折りと対角線折りの例を示している。横折りは、横向きの軸に沿って文書を折り畳むものである。一方で、対角線折りは、対角線に沿って文書を折り畳むものである。
【0065】
図13(A)及び(B)は、蛇腹折りの例を示している。蛇腹折りは、ユーザーの指によってタッチされた2つのセクションの間に、1つ以上のセクションが挟まれている場合に行われる。この場合、1度の折り畳み操作によって、複数のセクションが蛇腹状に折り畳まれる。
【0066】
対称並行モデルを用いて蛇腹折りを実装する場合、折り畳み操作に当たって、2つの接触点は、対称的に且つ並行的に、両者が近づく方向に、または遠ざかる方向に、移動することになる。他の折り畳み方式との混同を避けるべく、蛇腹折りを明示的に指定する手法を採用することができる。
【0067】
非対称順次モデルを用いて蛇腹折りを実装する場合には、2つの指が同時並行的に動く対称並行モデルとは異なり、利き手の指による接触点が移動している間、反対の手の指による接触点は静止したままとなる。
【0068】
図14は、一連の折り畳みの例を示したものである。この一連の折り畳みは、横方向および縦方向の折り線に沿った折り畳みを順次行うことによって達成される。
【0069】
ここでは、2つの接触点の例を示しているが、これに限定されるわけではなく、さらに多数の接触点を用いても文書の折り畳み操作は可能である。
【0070】
例えば、3つの接触点を用いる場合には、2つの接触点を用いる場合に比べ、より複雑な折り方の指示が可能となる。また、3つ以上の接触点を用いることで、異なる機能に対して異なるジェスチャーを割り当てることが容易になる。例えば、蛇腹折りを行う場合には、図13を用いて説明した利き手の1本指による操作の代わりに、利き手の2本指によってセクションの選択とその移動を行うようにすることで、他の機能と区別するようにすることができる。
【0071】
他の例としては、利き手の反対側の手の2本指で直線を特定することにより、任意の方向及び位置の折り線を指定することができる。折り線の位置の指定に関する詳細については、後述する。
【0072】
図15は、論理ジェスチャーマッピングの例を、図16は方向ジェスチャーマッピングの例を、図17は接触点拘束ジェスチャーマッピングの例をそれぞれ示している。
【0073】
ジェスチャーマッピングは、ジェスチャーを折り畳みの操作に割り当てる機構である。換言すれば、ジェスチャーマッピングは、ディスプレイ上の2次元空間におけるジェスチャーの動きを検出した経路イベントを、3次元空間における視覚化に変換するものである。
【0074】
具体的には、対称並行モデルや非対称順次モデルのようなジェスチャーモデルが、論理ジェスチャーマッピング、方向ジェスチャーマッピング、接触点拘束マッピングといった、何がしかの割り当て機構を経て、折り畳み操作に変換されるのである。
【0075】
論理マッピングジェスチャーでは、折り線に対して垂直な方向への指の移動量が、折り畳みの角度(量)に変換される。折り畳みの方向(例えば、山折りまたは谷折り)は、ベクトル幾何における伝統的な右手系の規則に従って決定される。
【0076】
図15(A)に示すように、文書1501上には、折り線1504、セクション1502および1503、ならびに接触点1505及び1506があるものとする。折り線1504は、この例では、ディスプレイの上部に向かう折り畳み軸ベクトルによって規定される。接触点1506が右方向に移動したことを検出すると、システムは、セクション1503を、折り線のベクトルをx方向(親指)、接触点の移動方向をy方向(人差し指)にしたときの、右手系におけるz方向(中指)である画面内側(奥側)に向かって回転させる。すなわち、山折りを行う。
【0077】
逆に、図15(B)に示すように、接触点1506が左方向に移動したことを検出すると、セクション1503を画面外側(手前側)に向かって回転させる。すなわち谷折りを行う。
【0078】
図16は、方向ジェスチャーマッピングの例を示している。このマッピングでは、ユーザーの2つの指の相対的な移動方向、たとえば、互いに遠ざかる方向への移動か、近づく方向への移動か、に基づいて操作への割り当てを行う。文書の折り畳み角は、ジェスチャーの移動量に基づいて決定される。
【0079】
折り畳みの方向を、2本の指同士が遠ざかる方向に移動したか、近づく方向に移動したかによって決定する場合には、例えば、遠ざかる方向への移動の場合には山折りを行い、近づく方向の場合には谷折りを行うというマッピングを行う。この場合、見かけ上の割り当ては、図15に示す論理ジェスチャーマッピングの例と同じものとなる。
【0080】
また、別の例として、このマッピングでは、折り畳みの向きを決定するための指の移動方向として、斜め方向への移動を採用してもよい。すなわち、画面上において、固定された接触点から移動した接触点を見て、両接触点を結ぶ線分の左側へ指が移動したのか、右側へ指が移動したのかに応じて、山折りか谷折かを決定するのである。図16(A)に示すように、文書1601には、折り線1606、接触点1604及び1605、ならびにセクション1602および1603があるものとする。接触点1605が文書の左上方向(固定接触点から見て左側)に移動したときに、山折りが行われる。また、図16(B)に示すように、接触点1605が文書の左下方向(固定接触点から見て右側)に移動した場合には、谷折りが行われる。
【0081】
図17は、接触点拘束ジェスチャーマッピングの例を示している。このマッピングでは、3次元空間におけるセクションの2次元の画面への射影を介して、接触点を文書内のセクション上の点に常に対応させることによって、その接触点の動きに文書表示を追従させる。このセクション上の点は、指の動きに追従するので、常に接触点の下にあることになる。接触点拘束マッピングにおいては、折り畳み角度とその方向を取得するために、リアルタイムで非線形方程式を解くことが必要となる。
【0082】
接触点拘束マッピングでは、2つの接触点を近づけることによって折り畳みを指示することになる(2つのセクション上の点が近づくということは、縮小か折り畳みかのいずれか)が、その折り畳みの方向、すなわち山折りか谷折りかを区別する方法が問題となる。この場合、方向ジェスチャーマッピングにおけるような、斜め方向のジェスチャーによる解決はできない。なぜなら、このマッピングにおいては、接触点が斜め方向に移動したということは、文書もそれに追随させるべく回転させるということを意味しており、折り畳み方向の指示に使うわけにはいかないからである。
【0083】
そこで、次のような方法が考えられる。ユーザーが2つの接触点を近づけることによって折り畳みを指示した場合、まずはシステムが山折り・谷折りのいずれかの方向を自動的に選択する(例えば、最初、谷折りを自動的に選択するように、システムが設定されているものとする)。もしもそれ(谷折り)が望むものではなかった場合には、ユーザーはすぐにジェスチャーの方向を反転させた(接触点を遠ざけた)後に、もう一度その方向を反転させて(接触点を近づけて)折り畳みの指示をする。これを受けたシステムは、最初の接触点の移動方向の反転(接触点が遠ざかったこと)を検出して、文書を伸ばして(折り畳み角度を小さくして)いき、元の折り畳まれていない状態に文書表示を戻す。さらに、接触点の再度の接近に応じて折り畳みを行うが、この際には、最初の折り畳み方向(谷折り)とは逆方向に折り畳み(山折り)を行う。結果として、折り畳まれた文書を伸ばしていった惰性で逆方向に折り畳まれるように文書が表示されるのである。図17(A)に、この惰性を用いた山折りの例を示す。
【0084】
他の手段としては、圧力を用いることが考えられる。例えばタッチスクリーンへの強い圧力を検知したら、それは山折りを指示するものであると設定しておくのである。図17(B)には、この圧力を用いた山折りの例を示す。図17(C)に、接触点拘束マッピングにおける谷折りの例を示す。この例では、右の接触点が左側の接触点に向かって移動している。惰性も圧力も使っていない。
【0085】
ここでは、3つのジェスチャーマッピングについて説明したが、これらに限定されることなく、任意のジェスチャーマッピングが適用可能である。
【0086】
図18に、文書の折り線および折り畳む箇所を決定する処理のフローチャートを示す。
【0087】
上述したように、文書上には、折り線を設定することができる。さらには、文書をユーザーによってセクションに分割することもできる。全てのセクションの境界は折り線になり得るが、ユーザーの指示により、予め定められたセクションの境界以外のところに折り線を設定してもよい。
【0088】
このセクション境界は、ヒューリスティクスあるいはコンテンツ分析アルゴリズムによってあらかじめ計算して得られた文書の切れ目に基づいて、あるいはユーザーの指示によって決定される。
【0089】
3次元視覚化においては、文書の個々のページオブジェクトは、三角形メッシュジオメトリを基本とする3次元モデルで構成される。文書のページ画像は、そのメッシュジオメトリ上にテクスチャとして貼り付けられる。
【0090】
折り畳みは原則として2つのセクションの間の境界で行われる。この境界は、メッシュジオメトリの境界の一部である。セクションとこれに関連付けられたメッシュジオメトリは、ページ内のコンテンツに基づいてあらかじめ計算しておいてもよいし、ユーザーの操作によってリアルタイムで決定してもよい。文書のセクションは、ユーザーによる折り畳み操作の前に決定しておく必要がある。
【0091】
ステップ1801において、ヒューリスティックスまたはコンテンツ分析アルゴリズムに基づいたセクション境界の事前計算が実行される。
【0092】
ヒューリスティックに事前計算が行われる場合、物理的な紙文書を、人が普通どのように折り畳むかに基づいて、その折り畳む位置がセクションの境界になるようにセクションが決定される。例えば、紙文書は二つ折り、三つ折り、または四つ折りされることが多いので、そのように折り畳んだ場合の折り線となる位置にセクションの境界が当たるようにする。この、物理的な紙文書が折り畳まれるであろう位置を境界とするようなメッシュジオメトリが、ヒューリスティクスによる事前計算におけるテンプレートとして用いられる。
【0093】
コンテンツ分析アルゴリズムによってセクションの事前計算を行う際に、射影プロファイルを用いることができる。このコンテンツ分析アルゴリズムは、メッシュジオメトリ生成の際の計算に用いられ、これによって、視覚的に一塊の領域を維持した形で分割される。
【0094】
ここで、視覚的に一塊の領域とは、文書レイアウトにおいて、他と明確に視覚的に区別可能なコンテンツの領域のことである。例えば、2段組のページレイアウトにおける各段は、縦方向の空白領域によって分割された、視覚的に一塊の領域である。この場合における境界は各段の外周となり、メッシュジオメトリは、その空白領域を縦に走る線分をメッシュの要素として有することとなる。これらの境界は、ページ画像を構成する各画素の横方向及び縦方向に対する射影プロファイルによって計算される。なお、この手法に限らず、ページの領域分割やレイアウト分析の手法が適用可能である。
【0095】
図19は、文書の射影プロファイルの一例を示すものである。コンテンツ分析を用いたセクション分割に射影プロファイルを用いる場合、横方向及び縦方向の境界を決定するために、横方向及び縦方向に各画素値が足し合わされる。
【0096】
ここで、横方向射影プロファイル1901は、横方向に画素値の和を取ったものであり、文章の行の位置を取得するのに特に役立つ。また、縦方向射影プロファイル1902は、縦方向に画素値の和を取ったものであり、段の位置を取得するのに特に役立つ。なお、ここでは、横方向及び縦方向の和を取ったが、この方向に限るものではない。また、ここでは、画素値の和を用いたが、画像を2値化した上で各方向における黒画素の数をプロファイルとして用いてもよい。
【0097】
セクション境界の候補位置としては、このプロファイルにおいて値が落ち込んでいる位置、すなわち、各局所領域において最小値を取る位置を採用する。図19に示した文書において、テキストを含んだ領域は黒画素で、テキストを含んでいない領域は白画素で表現されている。例えば、図19の文書における黒画素が画素値1を、白画素が画素値0を有しているとすると、射影プロファイルにおいて小さな値を有している位置ほど、セクション境界として適切な場所ということになる。
【0098】
図19を参照すると、段落間の空白に対応する位置で落ち込んでいるプロファイルの値が、行間のそれよりも小さくなっている。それぞれの段にある行が横一列に並ばないとしても、プロファイルにおける小さな落ち込みは依然として存在し、空白の最も多く存在する位置や、行や単語間の印刷されない白い領域を示す。プロファイルにおける落ち込み位置で、同じ値が連続する場合には、そのいずれかの位置(たとえばその中心位置)が、セクション境界の位置として選択される。
【0099】
文字によって変化する黒画素の量の影響を減らすため、重なりを持って移動するウィンドウを利用することができる。例えば、20画素のサイズのウィンドウを、5画素ずつ移動させながら、そのウィンドウ内における20画素の画素値の和や平均をとることでプロファイル値を求めることができる。
【0100】
落ち込み位置を検出する際のノイズを最小化する目的で、プロファイルのスムージング処理を適用してもよい。これには、例えば、メディアンフィルターが適用できる。
【0101】
また、ユーザーがセクション境界を指定してもよい。セクション境界の正確な位置は、ユーザーが指定した位置から最も近い位置にある、射影プロファイルの落ち込み位置を選択することによって決定する。この際、ユーザーの指先の範囲内に複数の落ち込み位置がある場合には、その中で最も小さなプロファイル値を有する落ち込み位置が選択される。
【0102】
落ち込みの深さ、すなわちその落ち込み位置におけるプロファイル値の最小値と隣接する位置におけるプロファイル値の最大値との差は、セクション境界の候補位置の評価の際に考慮されてもよい。複数の落ち込み位置がある場合には、それらを数値化した上で評価して、最も適したものを選択する。この評価値の算出において、落ち込みの深さが用いられるのである。
【0103】
落ち込み位置を、セクション境界の位置の候補として表示し、ユーザーがこれらのうちから位置を選択することができる。また、ユーザーは、その位置を調整することも可能である。
【0104】
図20は、写真2001を折り畳む例を示したものである。写真の折り畳みは、オブジェクト検出および画像の領域分割(セグメンテーション)アルゴリズムに基づいて、セクション境界が決定され、折り畳みが行われる。これらのアルゴリズムについては周知であるが、任意のものが用いられる。
【0105】
図20に示すように、顔が写っている写真を折り畳む場合を想定する。この場合、顔を折り畳まないということが大前提である。処理としては、まず、顔検出アルゴリズムによって画像中の顔の領域を検出し、顔を含んだ領域とそうでない領域とに当該画像を区分する。そして、それらの境界をセクション境界として折り畳みを行うのである。
【0106】
以上、文書のセクション境界を計算によって求める方法を述べてきたが、もちろんユーザーの指示によって、これとは無関係な任意の位置を折り線として決定してもよい。図18のステップ1802を参照すると、折り線が、ユーザーの指示によって決定される。
【0107】
非対称順次ジェスチャーモデルを用いる場合、例えば、第1の指の接触点によって折り線位置を指定し、第2の指をドラッグすることによってその折り線での折り畳みを指示する。この際の折り線の位置としては、例えば、第1の指の位置を通って、第2の指の移動方向と垂直に交わる直線上とすることができる。ここで、第1の指の接触点を通る直線は無数にあるが、第2の指の移動方向を、直線L2の方向とした場合、L2と直行する直線L1は一意に定めることができる。対称並行ジェスチャーモデルを用いる場合には、例えば、2つの指の接触点を結ぶ線分の垂直二等分線を折り線として採用することができる。
【0108】
いずれのモデルを採用する場合でも、折り線の方向を文書の横方向または縦方向と平行になるように、システムが修正するようにしてもよい。というのも、指先での指示はそれほど正確に行えるわけではないので(先の細いスタイラス等を用いれば改善されるが)、完全に思った方向を指定できるわけではなく、また、折り線としては文書の横方向及び縦方向が採用されることが望ましい場合がほとんどであるからである。このためには、指によって指定された折り線の方向が、文書の横方向または縦方向から所定の範囲内(例えば5度以内)である場合、採用する折り線としては、その横方向または縦方向にスナップする(張り付かせる)という手法が考えられる。
【0109】
3つ以上の接触点がサポートされているシステムの場合には、折り線の指定及び折り畳みに、より凝った(precious)ジェスチャーを用いることができる。例えば、非対称順次モデルを用いる場合、第2の手の2つの指によって折り線の位置と方向を指定することができる。その2つの指による2つの接触点を結ぶ直線が折り線として一意に定められるからである。そして、第1の手の第3の指が折り畳みの操作を行うのである。この場合は、折り畳み操作が行われる際に折り線の設定を行うこれまでの例と異なり、折り線の設定と折り畳み操作が独立して行われる。
【0110】
個々の文書に設定された折り線や文書の種類ごとに設定された折り線は、後の折り畳み操作のために保存され、再利用可能である。
【0111】
折り線を指定するために、指でドラッグして直線を描くことも可能である。しかしながら、これは、移動ジェスチャーと相容れない。ここで、移動ジェスチャーとは、タッチスクリーンにおける操作として一般的なジェスチャーであり、ユーザーがオブジェクトにタッチしドラッグすることを意味する。通常、そのオブジェクトはその指の移動方向に沿って移動する。折り線を作るためのドラッグジェスチャーが、(システムがサポートしている場合)移動ジェスチャーと同じものになってしまうので、これらを区別するための手段が必要となる。例えば、モード(折り線設定を行うモードと通常の移動を行うモード)の導入や、一時的な属性の導入である。また、ピンチジェスチャーは、一般に表示スケール変更(拡大・縮小)の指示として解釈される。
【0112】
折り線を設定する他のジェスチャーとして、3ドットジェスチャーが挙げられる。これは、指定したい直線に沿って短時間に3回画面をたたくジェスチャーである。このジェスチャーは、先の移動ジェスチャーと混同されることもない。他のジェスチャーと区別できないジェスチャー、すなわち同じ形状で異なる属性を持つジェスチャーは、相容れないのである。移動ジェスチャーの経路は、連続的な線分であるが、3ドットジェスチャーはそうではないので、両者は並存可能である。
【0113】
ユーザーによる折り線指定操作は、また、事前計算との組み合わせとなる。ユーザーが指定した折り線位置は、近傍にある事前計算したセクション境界にスナップするようにしてもよい。
【0114】
図18のステップ1803において、折り線が強調表示される。ユーザーによる折り畳みを指示するジェスチャーが行われているとシステムが検出した場合、すぐに折り線を強調表示する。強調表示は、折り線を異なる色で表示したり、太く(同じ色でも異なる色でも)表示したりすることで行われる。
【0115】
図21は、本発明を実装するコンピュータシステム2100の一例を示すブロック図である。システム2100は、プロセッサ2102及びメモリ2103を含むコンピュータプラットフォーム2101を含む。
【0116】
ここでは、コンピュータ可読記録媒体とは、コンピュータからその内容の読み込みが可能な任意の媒体であって有体物であるものを意味する。その例としては、光ディスクや半導体メモリが挙げられる。
【0117】
さらに、コンピュータプラットフォーム2101は、複数の入力装置2104からの入力を受ける。この入力装置としては、キーボード、マウス、タッチデバイス、音声入力装置等がある。コンピュータプラットフォーム2101には、リムーバルストレージ2105を接続することもできる。ここで、リムーバルストレージ、光ディスク(CDやDVD)、磁気ディスク等のコンピュータからそのデータの読み込みが可能な有体の記録媒体であって、コンピュータプラットフォーム2101からの取り外しが可能なものである。
【0118】
コンピュータプラットフォーム2101はさらに、インターネットやローカルのネットワークに接続されたネットワーク資源2106と接続して情報をやり取りすることもできる。
【0119】
ネットワーク資源2106は、リモートにあるネットワーク2107から、コンピュータプラットフォーム2101に対して、命令やデータを送信することが可能である。このネットワークリソースとの接続は、IEEE801.11、Bluetooth、携帯電話プロトコル等を利用した無線接続であってもよいし、電気ケーブルや光ファイバーを利用した有線接続であってもよい。
【0120】
コンピュータプラットフォーム2101は、ディスプレイ2108にデータやその他の情報を出力し、当該ディスプレイの画面上にその情報を表示させる。また、ディスプレイ2108は、画面上のタッチ操作をその入力として受け付ける入力装置として動作し、ユーザーからの入力を受け取る。このディスプレイ2108とコンピュータプラットフォーム2101は一体となって、携帯型の端末装置として実装されることもある。もちろん、入力装置2104をさらに一体化してもよい。
【0121】
これまで説明した文書の表示及び操作方法は、汎用コンピュータとしてのコンピュータシステム2100上のソフトウェアとして実装することもできるし、専用のハードウェアとしてのコンピュータシステム2100として実装することも可能である。また、その機能の一部をソフトウェアで他の機能をハードウェアで実行することも可能である。
【0122】
3次元ページオブジェクトは、固定された幾何構造の上に可変のコンテンツを貼り付けるという実装形態に限られず、幾何構造そのものから動的に生成するものであってもよい。
【0123】
また、折り畳みは、文書内の空白箇所だけでなく、オブジェクト上で行われてもよい。ユーザーが望む箇所に折り線を設定してそこで折り曲げればよいだけである。
【符号の説明】
【0124】
601 文書
602 セクション
603 セクション
604 接触点
605 接触点
606 折り線
【技術分野】
【0001】
マルチタッチディスプレイを用いた文書折り畳み表示装置およびプログラムに関する。
【背景技術】
【0002】
対話型の文書視覚化手法は、ディスプレイへの画像表示(たとえば3次元画像の表示)に用いられている。現在ではマルチタッチディスプレイがよく用いられている。
【0003】
ディスプレイ上への情報の視覚化に有効な原理は、フォーカスプラスコンテキスト(focus-plus-context)原理である。このフォーカスプラスコンテキスト原理を用いた表示方法においては、注目領域の内容を最小限の変形で忠実に描画する一方で、その周辺の背景領域(context region)の内容をある程度の変形を許容して表示する。これによって、画面スペースや演算のための資源の有効利用を図るのである。
【0004】
この原理を用いた手法の例として、魚眼ビューがある。しかしながら、これは文書の表示には向かない。なぜならば、魚眼ビューは直線を曲線に変形してしまうので、文字の視認性に難があるからである。
【0005】
この原理を用いた他の文書表示形態は、折り畳みである。ここでは、文書中のオブジェクトまたはページは、文書を構成する各要素がスクリーン面に対して平坦かつ平行に、そして変形することなく表示される。背景領域は、透視図法によって側面に折り畳まれる。
【0006】
非特許文献1においては、3つの「壁(wall)」が文書を3次元表示するのに用いられている。このパースペクティブウォール(Perspective Wall)式の視覚化を、図1に示す。ここでは、中心の壁(wall)がユーザーの方に面しており、スクリーン面に平行な平面上で文書を変形させることなく表示している。また、文書の2つの側壁は透視図法を用いて変形することによって描画されている。ここで、透視図変形においては、図1のように、スクリーンの奥の方にあるコンテンツほど小さくなる。また、図1から分かるように、線分(例えば、文字を構成する線分)は、側壁上においても線分として描画される。
【0007】
非特許文献2においては、フォーカスプラスコンテキスト原理を用いた折り畳み式の情報視覚化法に関する他の例が開示されている。ここでも、3次元空間での折り畳みというメタファーが用いられており、当該空間における複数の注目領域が変形することなく表示される一方で、背景領域は透視図変形されて描画される。すなわち、複数の注目領域はスクリーン面に対して平行に保たれるが、それ以外の空間は折り畳まれてしまうのである。
【0008】
また、図2のように、ディスプレイ上において、文書を互いに重ねるように表示するという手法も広く用いられている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】マッキンレー他(Mackinlay et al.)、「パースペクティブウォール:スムーズに統合される詳細と背景(The Perspective Wall: Details and context smoothly integrated )」、計算システムにおける人的要因に関するACM会議予稿集(Proceedings of the ACM Conference on Human Factors in Computing Systems)、1991年、頁173〜179
【非特許文献2】エルムフィスト他(Elmqvist et al.)、「メランジ:マルチフォーカス相互作用のための空間折り畳み(Melange: Space folding for multi-focus interaction)」、計算システムにおける人的要因に関する第26回年次SIGCHI会議予稿集(Proceeding of the twenty-sixth annual SIGCHI conference on Human factors in computing systems)、2008年、頁1333〜1342
【発明の概要】
【発明が解決しようとする課題】
【0010】
これまでは、画面に表示された文書の折り畳み操作を行う際において、折り畳みの指示、その折り畳み位置、または折り畳み角度の指定を行う直感的で簡易な方法がなかった。
【課題を解決するための手段】
【0011】
第1の手段としては、ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力手段と、前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知する検知手段と、表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するジェスチャー検出手段と、前記ジェスチャー検出手段が前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成する折り畳み画像データ生成手段と、を有するようにする。
【0012】
第2の手段としては、第1の手段に加えて、前記ジェスチャー検出手段が、前記第2の接触点が静止している間の前記第1の接触点の移動量を検出し、前記折り畳み画像データ生成手段が、検出された前記第1の接触点の移動量が大きいほど、折り畳む量を大きくした画像データを生成するようにする。
【0013】
第3の手段としては、第1または第2の手段に加えて、前記ジェスチャー検出手段が、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点に近づく方向か、遠ざかる方向かを検出し、前記折り畳み画像データ生成手段が、検出した移動方向が遠ざかる方向の場合と近づく方向の場合とで、異なる折り畳み方向へ折り畳んだような画像データを生成するようにする。
【0014】
第4の手段としては、第1または第2の手段に加えて、前記ジェスチャー検出手段が、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点から前記第1の接触点の初期位置を見た場合に左右いずれの方向に向かっているかを検出し、前記折り畳み画像データ生成手段が、検出した移動方向が左方向と右方向とで、異なる折り畳み方向へ折り畳んだような画像データを生成するようにする。
【0015】
第5の手段としては、ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力するステップと、前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知するステップと、表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するステップと、前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成するステップと、をプログラムによってコンピュータに実行させるようにする。
【発明の効果】
【0016】
請求項1及び5に記載した発明によれば、一般的なピンチジェスチャーとの共存が可能であって、直感的かつ簡易な文書の折り畳みの指示が可能となる。
【0017】
請求項2に記載した発明によれば、さらに、折り畳みの指示と同時に、折り畳みの量の直感的且つ簡易な指示が可能となる。
【0018】
請求項3及び4に記載した発明によれば、さらに折り畳みの指示と同時に、折り畳みの方向の直感的且つ簡易な指示が可能となる。
【図面の簡単な説明】
【0019】
【図1】フォーカスプラスコンテキスト法に関する従来技術の説明図である。
【図2】文書の重ね合わせ表示に関する従来技術の説明図である。
【図3】本発明の一態様における、文書の折り畳み表示のフローチャートである。
【図4】本発明の一態様における、文書の折り畳み表示システムのブロック図である。
【図5】本発明の一態様における、文書表示を示す図である。
【図6】谷折りの際の対称並行ジェスチャーモデルを示す図である。
【図7】山折りの際の対称並行ジェスチャーモデルを示す図である。
【図8】対称並行ジェスチャーモデルのフローチャートである。
【図9】谷折りの際の「非対称並行」ジェスチャーモデルを示す図である。
【図10】山折りの際の「非対称並行」ジェスチャーモデルを示す図である。
【図11】「非対称並行」ジェスチャーモデルのフローチャートである。
【図12】横折りおよび対角線折りを示す図である。
【図13】蛇腹折りを示す図である。
【図14】一連の折り畳みを示す図である。
【図15】論理ジェスチャーマッピングを示す図である。
【図16】方向ジェスチャーマッピングを示す図である。
【図17】接触点制限ジェスチャーマッピングを示す図である。
【図18】折り線位置決定のフローチャートである。
【図19】文書の射影プロファイルを示す図である。
【図20】写真の折り畳みの例を示す図である。
【図21】本発明の一態様におけるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0020】
本発明の一実施の形態を説明するが、以下の説明では、文書の操作のために複数の指をディスプレイに接触させるマルチタッチジェスチャーを行うことが前提となる。ここで、ジェスチャーとは、1または2以上の接触点(後述)の位置及び動きの組み合わせのことであるが、場合によってはここに接触の圧力の大きさ等、接触点にまつわる他の要素が加わることがある。また、マルチタッチジェスチャーとは、2以上の接触点のジェスチャーを指す。例えば、1本の指で文書のセクションをタッチしホールドし、他の指で他のセクションをタッチしドラッグする、といった文書操作がその例である。以下では、ディスプレイにタッチ(接触)するために指を使う例を用いて説明を行うが、これは指に限られるものではなく、接触を検知するタッチセンサを有するディスプレイがその接触を検知できるような硬さを有し、且つ位置を指定するという目的を達成できる程度に先が細い物であれば任意の物(指示用被接触物)が適用可能である。
【0021】
また、文書としては、紙文書を模したものが含まれるが、これに限定されることなく、ディスプレイ上に表示可能な任意の画像や文書が含まれる。例えば、ウェブページや写真である。さらには、ウェブブラウザやワードプロセッサなどのアプリケーションプログラムのウィンドウ表示であってもよい。また、文書は、コンテンツの無い空の文書であってもよいし、何らかのコンテンツを含んだものであってもよい。
【0022】
次に、「文書ページオブジェクト」という用語について説明する。文書ページオブジェクトは、文書を構成する各ページまたは複数のページの集合に対応するオブジェクトである。以下の説明においては、各ページまたは複数ページを表す2次元のグラフィカルオブジェクト(例えば、長方形のオブジェクト)として表現される。なお、ここでいう文書のページとしては、画像や文字を含んだ文書の一部であればよく、コンピュータで実行されるアプリケーションのウィンドウ、例えばウェブブラウザやワードプロセッサのウィンドウ表示に対応するものであってもよい。また、文書ページオブジェクトは、何らかのコンテンツを含んでもいてもよいし、何も含んでいない、すなわちブランクであってもよい。以下では、文書の折り畳み処理の説明をするが、文書ページオブジェクトとして、折り畳まない、または折り畳めない文書を含んでいてよいことはもちろんである。
【0023】
図3に、文書の折り畳みを模した文書画像の表示を行うシステムにおける具体的処理のフローチャートを示す。この例では、マルチタッチスクリーンを用いて、ユーザーの2つの指(2つの手の指)による同時操作を可能にしている。図4は、この方法を実装する文書視覚化システムの一例を示すブロック図である。このシステムでは、グラフィカルユーザーインターフェースを採用した3次元アプリケーションが実行される。
【0024】
図3及び図4を参照する。ステップ301において、折り畳みを行うジェスチャーモデルを適用するか否かが決定される。この場合における、ジェスチャーモデルとは、マルチタッチディスプレイ上における接触点の動きをどのように取り扱うかを特定するモデルである。ここで、接触点とは、被接触物(典型的には、そして以下の説明においても、ユーザーの指を意味するが、スタイラス等でもよい)とディスプレイとが接触する点のことである。
【0025】
以下では、このジェスチャーモデルを、(1)対称または非対称、(2)順次または並行という2種類の特性の組み合わせで表現する。「対称、非対称」は、手の役割を表す特性であり、入力時における2つの指による接触点が、対称的に(同様に)扱われるのか、非対称的に(異なるように)扱われるのかを表している。非対称の場合、ユーザーの両手にはそれぞれ異なった役割が割り当てられる。この場合、より繊細な動きが要求される役割を、利き手の指に割り当てるのが好ましい。「順次、並行」は、入力時の接触点の動きを1つの点だけに限定するのか、同時に複数の動きを許容するのかを表す特性である。
【0026】
これら2つの特性の組み合わせとしては、「対称順次」、「対称並行」、「非対称順次」および「非対称並行」があり得る。とはいっても、「対称順次」モデルの適用は、現実的には無いだろう。というのも、この場合は2つの指を同時に動かすことを制限する理由がないからである。また、「非対称並行」モデルは、実際にあり得ない。というのも、以下の具体的説明から明らかになるように「非対称」では、一方の手が動いている間その他方の手を動かさない、すなわち「並行」しないということが前提だからである。よって、以下の実施例においては、「対称並行」モデルおよび「非対称順次モデルの2つを取り扱う。
【0027】
ステップ301において、ジェスチャーモデルを適用すべきことが決定されると、図4に示すシステム400は、ジェスチャーモデルを適用することになる。
【0028】
ステップ302では、予め定められたシステムの設定値に基づいて、対称並行モデルを適用するか否かを決定する。対称並行モデルでは、2つの接触点(すなわち、指)が同時に動くことを許容するが、それぞれの接触点は同様の意味で解釈される。例えば、ユーザーは、文書ページオブジェクト中において隣接する2つのセクションを選択すべくそれらにタッチする際に、通常は両手の指それぞれ1本ずつを使うことになる。このとき、ユーザーの両手は同時に動くことになるが、その2つの指の接触イベントは、本システムにおいて同様の意味で(セクションの選択として)解釈される。ここで、セクションとは、文書中の領域のことであり、後述するようにその文書の視覚的特性や内容的特性またはユーザーの指示によって、一塊と認識した領域のことである。
【0029】
システムの設定(システムにおける初期設定または事前のユーザー設定)が、対称並行モデルの適用を指定していた場合、ステップ303において、対称並行ジェスチャーモデルユニット403において、対称並行モデルが適用される。このモデルの詳細については、図6及び図7を参照して後に説明する。
【0030】
ステップ302において、対称並行モデルの適用が指定されていないと判断した場合、ステップ304において非対称順次モデルが非対称順次ジェスチャーモデルユニット402を用いて適用される。
【0031】
非対称順次モデルにおいては、一方の指が動いている間は他方の指は静止したままであることが前提となる。このモデルの詳細は、図9乃至図11を用いて後に説明する。
【0032】
ステップ305においては、ステップ301乃至305で選択されたジェスチャーモデルに対して、特定のジェスチャーマッピングが適用されるか否かが、システムの設定に基づいて決定される。
【0033】
ここで、ジェスチャーマッピングとは、ディスプレイ表面の2次元空間における(指による)ジェスチャーの軌跡を、文書表示における3次元空間の視覚化(visualization)に対応させることである。ここでは、ジェスチャーマッピングは、論理ジェスチャーマッピング、方向ジェスチャーマッピング、および接触点拘束ジェスチャーマッピングを含むものとする。
【0034】
論理ジェスチャーマッピングでは、スクリーン上において折り線(文書を折り畳む際に折り目となる線分)と直角の方向へのジェスチャーの移動量が、折り畳みの角度(折り畳む量)と対応付けられる。折り畳みの方向は、右手の法則のような伝統的な規則で決定される。
【0035】
接触点拘束ジェスチャーマッピングでは、文書表示の3次元空間におけるセクション上の最初にタッチした点を、ディスプレイの画面上における指の接触点に追随させて動かすように表示する。
【0036】
方向ジェスチャーマッピングでは、ユーザーの2本の指による接触点同士の間隔が、開く方向に移動しているのか、それとも閉じる方向へ移動しているのかによって、折り畳みの方向が決定される。折り畳みの角度は、その移動量に応じて決定される。
【0037】
ステップ306において、システムの設定が論理ジェスチャーマッピングの適用を指定していると判断した場合には、ステップ307において論理ジェスチャーマッピングが、論理ジェスチャーマッピングユニット404によって適用される。
【0038】
ステップ308において、システムの設定が方向ジェスチャーマッピングの適用を指定していると判断した場合には、ステップ309において方向ジェスチャーマッピングユニット405によって 方向ジェスチャーマッピングが適用される。
【0039】
ステップ310において、システムの設定が接触点拘束ジェスチャーマッピングの適用を指定していると判断した場合には、ステップ311において、接触点拘束ジェスチャーマッピングユニット406によって、接触点拘束ジェスチャーマッピングが適用される。
【0040】
それぞれのジェスチャーマッピングの実装については、図15乃至17を用いて後に詳細に説明する。ここでは、これら3つのジェスチャーマッピングを説明したが、当然ながら他の任意のマッピングを適用できる。
【0041】
また、図3及び4ではシステム設定によってジェスチャーマッピングを選択する例を示したが、これに限らず、任意のマッピング選択方法が適用可能である。
【0042】
例えば、ユーザーは、メニューやダイアログボックスを用いて、ジェスチャーモデルおよびジェスチャーマッピングを特定するシステム設定を、使用する装置に応じて変更することができる。また、例えば、装置の製造メーカーがあらかじめその装置にマルチタッチジェスチャーモデルの指定を組み込んでおく等、その装置そのものに初期設定がしてあってもよい。
【0043】
そして、ジェスチャーモデルおよびジェスチャーマッピングの実装によって、図5に示すように、ディスプレイ501の画面上において、折り畳まれたセクションを有する文書の視覚化が可能となる。具体的には、図5に示すように、1つまたは複数の文書が、ユーザーによるジェスチャーによって、表示されまた折り畳み操作される。すなわち、ユーザーの所望の注目領域に対しては、変形を加えないようにしつつ、他の重要ではない領域については折り曲げて、ある程度は読める(見える)ものの、透視図変形された状態で表示されるようにするのである。
【0044】
これらの文書の折り畳みは、ディスプレイ上における単一の文書だけでなく、複数の文書の折り畳みの視覚化に適用可能である。上述のように、ここでの文書の視覚化は、物理的な紙や文書の折り畳みを模した形で実現される。
【0045】
図6は、対称並行モデルによる谷折りの実例を示すものである。図7は、同モデルによる山折りの説明である。そして、図8は、同モデルのフローチャートを示す。
【0046】
図6は、文書601が、セクション602及び603の2つのセクションに分割されている例を示している。文書中のセクションの決定に関しては、図18及び19を用いて説明する。
【0047】
ここでは、2つのセクションの例を示してはいるが、セクションの数はこれに限られない。ただし、説明の便宜のため、以下では2つの例のみを取り上げることにする。
【0048】
図6は、また、接触点604がセクション602上にあり、接触点605がセクション603上にある場合を示している。なお、これら接触点は必ずしもセクション上に無ければならないわけではない。接触点に最も近いセクションが選択されたセクションとして認識されてもよい。接触点は、指がスクリーンに接触している点である。接触点は、ディスプレイの画面においてユーザーがいつどこにタッチしたかを検出することで、特定される。
【0049】
対称並行モデルでは、文書ページオブジェクトの2つのセクションにタッチしてこれを選択するために、ユーザーはそれぞれ1本の指を用い、またそれらを同時に動かすことになる。これら2本の指のタッチイベントは、同様の意味を有するものとして解釈される
【0050】
次に、ユーザーは、接触点604及び605上にある指を、選択された2つのセクションを両者の境界で折り畳むべく動かす。同図では、そのセクションの境界が折り線606となっている例を示している。折り線の位置の決定については、図18及び19を参照して追って説明する。図6に示すように、接触点604及び605上の2つの指が、互いに近づく方向に対称的且つ同時並行的にそれぞれ移動するときに、文書601が谷折りされる。
【0051】
一方で、図7に示すように、接触点704及び705が、互いに遠ざかる方向に対称的且つ同時並行的にそれぞれ移動するときには、文書601が山折りされる。
【0052】
この具体的処理の流れを説明する。図8のステップ801に示すように、対称並行モデルを用いて折り畳みを行う場合、接触点が文書ページオブジェクト上に設定される。次に、ステップ802において、折り畳み操作を行うユーザーの指の動き、すなわち接触点の動きが、対称的且つ並行的なものとして解釈される。
【0053】
対称並行モデルにおける指の動きがシステムにおいて正しく解釈され、他のジェスチャーと混同されないようにするために、対称的な指の動きを他のジェスチャーから区別する方法が用いられる。例えば、文書を操作する際の一般的なマルチタッチジェスチャー操作として、ピンチ(片手の2本の指でつまむ動きの)ジェスチャーがあるが、対称並行モデルではこのジェスチャーとの区別が困難である。なお、ピンチジェスチャーは、一般に表示スケール変更(拡大・縮小)の指示として解釈される。
【0054】
ここで、システムによるコマンドの混同を防止するため、ユーザーが適切な操作を行うことを確保するような仕組みが用いられる。例えば、「対称並行」モデルに従ったコマンドのみを実行するようなモードを作ることや、「対称並行」モデルに従ったコマンドが好ましいことをユーザーに注意喚起することが、その例として挙げられる。
【0055】
図9は、非対称順次ジェスチャーモデルによる谷折りの例を示している。図10は、同モデルによる山折りを示している。図11は、同モデルを実装する際のフローチャートである。
【0056】
図9から分かるように、文書901は、セクション902及び903という2つのセクションに分割されている。文書のセクション分割に関しては、図18及び19を用いて後に説明する。さらに図9から分かるように、この場合、接触点904はセクション902上にあり、接触点905はセクション903上にある。
【0057】
非対称順次モデルは、物理オブジェクトにおけるユーザーインタラクションを模している。例えば、ナイフで物を切る場合を想定すると、利き手でその物を切る動作を行っている間、反対の手は動かさずにその物を押さえつけるが、このような動作に範をとったのである。
【0058】
非対称順次モデルを用いて文書を折り畳む場合、第2の指(利き手でない手の指が好ましい)は、文書のセクションまたは折り線をタッチして選択し、そのまま動かさない。そして、第1の指(利き手の指が好ましい)で、対象となるセクションをタッチして選択し、そのままその指を動かすことで、折り畳み動作を行う。このモデルの場合には、対称並行モデルの場合と異なり、ピンチジェスチャーとの区別が容易であり、モード等の特段の区別の仕組みを用意することなく、共存させることが可能である。
【0059】
図9(A)に示すように、利き手でない方の手の指によって、セクション902内の接触点904が定められ、また、利き手の指によってセクション903内の接触点905が定められるものとする。ここで折り畳みを行う際には、接触点905上の指を接触点904に近づくように移動させている間、接触点904上の指は静止したままにする。
【0060】
図9(B)は、接触点905が接触点904に近づくように移動した後に、セクション902および903の境界で谷折りが行われる例を示している。この境界は、折り線906となる。折り線の位置の決定については、図18及び19を参照して後に詳しく説明する。
【0061】
図10(A)に示すように、ユーザーの利き手でない方の手の指によって接触点1004が定められ、利き手の指によって接触点1005が定められるものとする。ここで折り畳みを行う際には、セクション1003内における接触点1005上の指が接触点1004から遠ざかるように移動させる間、セクション1002内における接触点1004上の指は静止したままにする。図10(B)に示すように、接触点1005が接触点1004から遠ざかるように移動した後、山折りが行われる。
【0062】
図11を参照してユーザーの操作を説明する。ステップ1101において、非対称順次モデルを用いて文書を折り畳む場合、2つの接触点が文書上において定められる。その後、ステップ1102において、ユーザーの利き手によって設定された接触点が折り畳みを行うべく移動している間、その反対の手による接触点は静止したままとなる。
【0063】
ここで、山折り谷折りは、上述したような縦方向の折り線に沿った畳み方に限らず、図12に示すように、横方向及び斜め方向の折り線に沿った畳み方にも適用可能である。また、ここで述べた折り畳み手法は、図13に示すような、蛇腹折りにも適用可能である。
【0064】
図12(A)および(B)は、それぞれ横折りと対角線折りの例を示している。横折りは、横向きの軸に沿って文書を折り畳むものである。一方で、対角線折りは、対角線に沿って文書を折り畳むものである。
【0065】
図13(A)及び(B)は、蛇腹折りの例を示している。蛇腹折りは、ユーザーの指によってタッチされた2つのセクションの間に、1つ以上のセクションが挟まれている場合に行われる。この場合、1度の折り畳み操作によって、複数のセクションが蛇腹状に折り畳まれる。
【0066】
対称並行モデルを用いて蛇腹折りを実装する場合、折り畳み操作に当たって、2つの接触点は、対称的に且つ並行的に、両者が近づく方向に、または遠ざかる方向に、移動することになる。他の折り畳み方式との混同を避けるべく、蛇腹折りを明示的に指定する手法を採用することができる。
【0067】
非対称順次モデルを用いて蛇腹折りを実装する場合には、2つの指が同時並行的に動く対称並行モデルとは異なり、利き手の指による接触点が移動している間、反対の手の指による接触点は静止したままとなる。
【0068】
図14は、一連の折り畳みの例を示したものである。この一連の折り畳みは、横方向および縦方向の折り線に沿った折り畳みを順次行うことによって達成される。
【0069】
ここでは、2つの接触点の例を示しているが、これに限定されるわけではなく、さらに多数の接触点を用いても文書の折り畳み操作は可能である。
【0070】
例えば、3つの接触点を用いる場合には、2つの接触点を用いる場合に比べ、より複雑な折り方の指示が可能となる。また、3つ以上の接触点を用いることで、異なる機能に対して異なるジェスチャーを割り当てることが容易になる。例えば、蛇腹折りを行う場合には、図13を用いて説明した利き手の1本指による操作の代わりに、利き手の2本指によってセクションの選択とその移動を行うようにすることで、他の機能と区別するようにすることができる。
【0071】
他の例としては、利き手の反対側の手の2本指で直線を特定することにより、任意の方向及び位置の折り線を指定することができる。折り線の位置の指定に関する詳細については、後述する。
【0072】
図15は、論理ジェスチャーマッピングの例を、図16は方向ジェスチャーマッピングの例を、図17は接触点拘束ジェスチャーマッピングの例をそれぞれ示している。
【0073】
ジェスチャーマッピングは、ジェスチャーを折り畳みの操作に割り当てる機構である。換言すれば、ジェスチャーマッピングは、ディスプレイ上の2次元空間におけるジェスチャーの動きを検出した経路イベントを、3次元空間における視覚化に変換するものである。
【0074】
具体的には、対称並行モデルや非対称順次モデルのようなジェスチャーモデルが、論理ジェスチャーマッピング、方向ジェスチャーマッピング、接触点拘束マッピングといった、何がしかの割り当て機構を経て、折り畳み操作に変換されるのである。
【0075】
論理マッピングジェスチャーでは、折り線に対して垂直な方向への指の移動量が、折り畳みの角度(量)に変換される。折り畳みの方向(例えば、山折りまたは谷折り)は、ベクトル幾何における伝統的な右手系の規則に従って決定される。
【0076】
図15(A)に示すように、文書1501上には、折り線1504、セクション1502および1503、ならびに接触点1505及び1506があるものとする。折り線1504は、この例では、ディスプレイの上部に向かう折り畳み軸ベクトルによって規定される。接触点1506が右方向に移動したことを検出すると、システムは、セクション1503を、折り線のベクトルをx方向(親指)、接触点の移動方向をy方向(人差し指)にしたときの、右手系におけるz方向(中指)である画面内側(奥側)に向かって回転させる。すなわち、山折りを行う。
【0077】
逆に、図15(B)に示すように、接触点1506が左方向に移動したことを検出すると、セクション1503を画面外側(手前側)に向かって回転させる。すなわち谷折りを行う。
【0078】
図16は、方向ジェスチャーマッピングの例を示している。このマッピングでは、ユーザーの2つの指の相対的な移動方向、たとえば、互いに遠ざかる方向への移動か、近づく方向への移動か、に基づいて操作への割り当てを行う。文書の折り畳み角は、ジェスチャーの移動量に基づいて決定される。
【0079】
折り畳みの方向を、2本の指同士が遠ざかる方向に移動したか、近づく方向に移動したかによって決定する場合には、例えば、遠ざかる方向への移動の場合には山折りを行い、近づく方向の場合には谷折りを行うというマッピングを行う。この場合、見かけ上の割り当ては、図15に示す論理ジェスチャーマッピングの例と同じものとなる。
【0080】
また、別の例として、このマッピングでは、折り畳みの向きを決定するための指の移動方向として、斜め方向への移動を採用してもよい。すなわち、画面上において、固定された接触点から移動した接触点を見て、両接触点を結ぶ線分の左側へ指が移動したのか、右側へ指が移動したのかに応じて、山折りか谷折かを決定するのである。図16(A)に示すように、文書1601には、折り線1606、接触点1604及び1605、ならびにセクション1602および1603があるものとする。接触点1605が文書の左上方向(固定接触点から見て左側)に移動したときに、山折りが行われる。また、図16(B)に示すように、接触点1605が文書の左下方向(固定接触点から見て右側)に移動した場合には、谷折りが行われる。
【0081】
図17は、接触点拘束ジェスチャーマッピングの例を示している。このマッピングでは、3次元空間におけるセクションの2次元の画面への射影を介して、接触点を文書内のセクション上の点に常に対応させることによって、その接触点の動きに文書表示を追従させる。このセクション上の点は、指の動きに追従するので、常に接触点の下にあることになる。接触点拘束マッピングにおいては、折り畳み角度とその方向を取得するために、リアルタイムで非線形方程式を解くことが必要となる。
【0082】
接触点拘束マッピングでは、2つの接触点を近づけることによって折り畳みを指示することになる(2つのセクション上の点が近づくということは、縮小か折り畳みかのいずれか)が、その折り畳みの方向、すなわち山折りか谷折りかを区別する方法が問題となる。この場合、方向ジェスチャーマッピングにおけるような、斜め方向のジェスチャーによる解決はできない。なぜなら、このマッピングにおいては、接触点が斜め方向に移動したということは、文書もそれに追随させるべく回転させるということを意味しており、折り畳み方向の指示に使うわけにはいかないからである。
【0083】
そこで、次のような方法が考えられる。ユーザーが2つの接触点を近づけることによって折り畳みを指示した場合、まずはシステムが山折り・谷折りのいずれかの方向を自動的に選択する(例えば、最初、谷折りを自動的に選択するように、システムが設定されているものとする)。もしもそれ(谷折り)が望むものではなかった場合には、ユーザーはすぐにジェスチャーの方向を反転させた(接触点を遠ざけた)後に、もう一度その方向を反転させて(接触点を近づけて)折り畳みの指示をする。これを受けたシステムは、最初の接触点の移動方向の反転(接触点が遠ざかったこと)を検出して、文書を伸ばして(折り畳み角度を小さくして)いき、元の折り畳まれていない状態に文書表示を戻す。さらに、接触点の再度の接近に応じて折り畳みを行うが、この際には、最初の折り畳み方向(谷折り)とは逆方向に折り畳み(山折り)を行う。結果として、折り畳まれた文書を伸ばしていった惰性で逆方向に折り畳まれるように文書が表示されるのである。図17(A)に、この惰性を用いた山折りの例を示す。
【0084】
他の手段としては、圧力を用いることが考えられる。例えばタッチスクリーンへの強い圧力を検知したら、それは山折りを指示するものであると設定しておくのである。図17(B)には、この圧力を用いた山折りの例を示す。図17(C)に、接触点拘束マッピングにおける谷折りの例を示す。この例では、右の接触点が左側の接触点に向かって移動している。惰性も圧力も使っていない。
【0085】
ここでは、3つのジェスチャーマッピングについて説明したが、これらに限定されることなく、任意のジェスチャーマッピングが適用可能である。
【0086】
図18に、文書の折り線および折り畳む箇所を決定する処理のフローチャートを示す。
【0087】
上述したように、文書上には、折り線を設定することができる。さらには、文書をユーザーによってセクションに分割することもできる。全てのセクションの境界は折り線になり得るが、ユーザーの指示により、予め定められたセクションの境界以外のところに折り線を設定してもよい。
【0088】
このセクション境界は、ヒューリスティクスあるいはコンテンツ分析アルゴリズムによってあらかじめ計算して得られた文書の切れ目に基づいて、あるいはユーザーの指示によって決定される。
【0089】
3次元視覚化においては、文書の個々のページオブジェクトは、三角形メッシュジオメトリを基本とする3次元モデルで構成される。文書のページ画像は、そのメッシュジオメトリ上にテクスチャとして貼り付けられる。
【0090】
折り畳みは原則として2つのセクションの間の境界で行われる。この境界は、メッシュジオメトリの境界の一部である。セクションとこれに関連付けられたメッシュジオメトリは、ページ内のコンテンツに基づいてあらかじめ計算しておいてもよいし、ユーザーの操作によってリアルタイムで決定してもよい。文書のセクションは、ユーザーによる折り畳み操作の前に決定しておく必要がある。
【0091】
ステップ1801において、ヒューリスティックスまたはコンテンツ分析アルゴリズムに基づいたセクション境界の事前計算が実行される。
【0092】
ヒューリスティックに事前計算が行われる場合、物理的な紙文書を、人が普通どのように折り畳むかに基づいて、その折り畳む位置がセクションの境界になるようにセクションが決定される。例えば、紙文書は二つ折り、三つ折り、または四つ折りされることが多いので、そのように折り畳んだ場合の折り線となる位置にセクションの境界が当たるようにする。この、物理的な紙文書が折り畳まれるであろう位置を境界とするようなメッシュジオメトリが、ヒューリスティクスによる事前計算におけるテンプレートとして用いられる。
【0093】
コンテンツ分析アルゴリズムによってセクションの事前計算を行う際に、射影プロファイルを用いることができる。このコンテンツ分析アルゴリズムは、メッシュジオメトリ生成の際の計算に用いられ、これによって、視覚的に一塊の領域を維持した形で分割される。
【0094】
ここで、視覚的に一塊の領域とは、文書レイアウトにおいて、他と明確に視覚的に区別可能なコンテンツの領域のことである。例えば、2段組のページレイアウトにおける各段は、縦方向の空白領域によって分割された、視覚的に一塊の領域である。この場合における境界は各段の外周となり、メッシュジオメトリは、その空白領域を縦に走る線分をメッシュの要素として有することとなる。これらの境界は、ページ画像を構成する各画素の横方向及び縦方向に対する射影プロファイルによって計算される。なお、この手法に限らず、ページの領域分割やレイアウト分析の手法が適用可能である。
【0095】
図19は、文書の射影プロファイルの一例を示すものである。コンテンツ分析を用いたセクション分割に射影プロファイルを用いる場合、横方向及び縦方向の境界を決定するために、横方向及び縦方向に各画素値が足し合わされる。
【0096】
ここで、横方向射影プロファイル1901は、横方向に画素値の和を取ったものであり、文章の行の位置を取得するのに特に役立つ。また、縦方向射影プロファイル1902は、縦方向に画素値の和を取ったものであり、段の位置を取得するのに特に役立つ。なお、ここでは、横方向及び縦方向の和を取ったが、この方向に限るものではない。また、ここでは、画素値の和を用いたが、画像を2値化した上で各方向における黒画素の数をプロファイルとして用いてもよい。
【0097】
セクション境界の候補位置としては、このプロファイルにおいて値が落ち込んでいる位置、すなわち、各局所領域において最小値を取る位置を採用する。図19に示した文書において、テキストを含んだ領域は黒画素で、テキストを含んでいない領域は白画素で表現されている。例えば、図19の文書における黒画素が画素値1を、白画素が画素値0を有しているとすると、射影プロファイルにおいて小さな値を有している位置ほど、セクション境界として適切な場所ということになる。
【0098】
図19を参照すると、段落間の空白に対応する位置で落ち込んでいるプロファイルの値が、行間のそれよりも小さくなっている。それぞれの段にある行が横一列に並ばないとしても、プロファイルにおける小さな落ち込みは依然として存在し、空白の最も多く存在する位置や、行や単語間の印刷されない白い領域を示す。プロファイルにおける落ち込み位置で、同じ値が連続する場合には、そのいずれかの位置(たとえばその中心位置)が、セクション境界の位置として選択される。
【0099】
文字によって変化する黒画素の量の影響を減らすため、重なりを持って移動するウィンドウを利用することができる。例えば、20画素のサイズのウィンドウを、5画素ずつ移動させながら、そのウィンドウ内における20画素の画素値の和や平均をとることでプロファイル値を求めることができる。
【0100】
落ち込み位置を検出する際のノイズを最小化する目的で、プロファイルのスムージング処理を適用してもよい。これには、例えば、メディアンフィルターが適用できる。
【0101】
また、ユーザーがセクション境界を指定してもよい。セクション境界の正確な位置は、ユーザーが指定した位置から最も近い位置にある、射影プロファイルの落ち込み位置を選択することによって決定する。この際、ユーザーの指先の範囲内に複数の落ち込み位置がある場合には、その中で最も小さなプロファイル値を有する落ち込み位置が選択される。
【0102】
落ち込みの深さ、すなわちその落ち込み位置におけるプロファイル値の最小値と隣接する位置におけるプロファイル値の最大値との差は、セクション境界の候補位置の評価の際に考慮されてもよい。複数の落ち込み位置がある場合には、それらを数値化した上で評価して、最も適したものを選択する。この評価値の算出において、落ち込みの深さが用いられるのである。
【0103】
落ち込み位置を、セクション境界の位置の候補として表示し、ユーザーがこれらのうちから位置を選択することができる。また、ユーザーは、その位置を調整することも可能である。
【0104】
図20は、写真2001を折り畳む例を示したものである。写真の折り畳みは、オブジェクト検出および画像の領域分割(セグメンテーション)アルゴリズムに基づいて、セクション境界が決定され、折り畳みが行われる。これらのアルゴリズムについては周知であるが、任意のものが用いられる。
【0105】
図20に示すように、顔が写っている写真を折り畳む場合を想定する。この場合、顔を折り畳まないということが大前提である。処理としては、まず、顔検出アルゴリズムによって画像中の顔の領域を検出し、顔を含んだ領域とそうでない領域とに当該画像を区分する。そして、それらの境界をセクション境界として折り畳みを行うのである。
【0106】
以上、文書のセクション境界を計算によって求める方法を述べてきたが、もちろんユーザーの指示によって、これとは無関係な任意の位置を折り線として決定してもよい。図18のステップ1802を参照すると、折り線が、ユーザーの指示によって決定される。
【0107】
非対称順次ジェスチャーモデルを用いる場合、例えば、第1の指の接触点によって折り線位置を指定し、第2の指をドラッグすることによってその折り線での折り畳みを指示する。この際の折り線の位置としては、例えば、第1の指の位置を通って、第2の指の移動方向と垂直に交わる直線上とすることができる。ここで、第1の指の接触点を通る直線は無数にあるが、第2の指の移動方向を、直線L2の方向とした場合、L2と直行する直線L1は一意に定めることができる。対称並行ジェスチャーモデルを用いる場合には、例えば、2つの指の接触点を結ぶ線分の垂直二等分線を折り線として採用することができる。
【0108】
いずれのモデルを採用する場合でも、折り線の方向を文書の横方向または縦方向と平行になるように、システムが修正するようにしてもよい。というのも、指先での指示はそれほど正確に行えるわけではないので(先の細いスタイラス等を用いれば改善されるが)、完全に思った方向を指定できるわけではなく、また、折り線としては文書の横方向及び縦方向が採用されることが望ましい場合がほとんどであるからである。このためには、指によって指定された折り線の方向が、文書の横方向または縦方向から所定の範囲内(例えば5度以内)である場合、採用する折り線としては、その横方向または縦方向にスナップする(張り付かせる)という手法が考えられる。
【0109】
3つ以上の接触点がサポートされているシステムの場合には、折り線の指定及び折り畳みに、より凝った(precious)ジェスチャーを用いることができる。例えば、非対称順次モデルを用いる場合、第2の手の2つの指によって折り線の位置と方向を指定することができる。その2つの指による2つの接触点を結ぶ直線が折り線として一意に定められるからである。そして、第1の手の第3の指が折り畳みの操作を行うのである。この場合は、折り畳み操作が行われる際に折り線の設定を行うこれまでの例と異なり、折り線の設定と折り畳み操作が独立して行われる。
【0110】
個々の文書に設定された折り線や文書の種類ごとに設定された折り線は、後の折り畳み操作のために保存され、再利用可能である。
【0111】
折り線を指定するために、指でドラッグして直線を描くことも可能である。しかしながら、これは、移動ジェスチャーと相容れない。ここで、移動ジェスチャーとは、タッチスクリーンにおける操作として一般的なジェスチャーであり、ユーザーがオブジェクトにタッチしドラッグすることを意味する。通常、そのオブジェクトはその指の移動方向に沿って移動する。折り線を作るためのドラッグジェスチャーが、(システムがサポートしている場合)移動ジェスチャーと同じものになってしまうので、これらを区別するための手段が必要となる。例えば、モード(折り線設定を行うモードと通常の移動を行うモード)の導入や、一時的な属性の導入である。また、ピンチジェスチャーは、一般に表示スケール変更(拡大・縮小)の指示として解釈される。
【0112】
折り線を設定する他のジェスチャーとして、3ドットジェスチャーが挙げられる。これは、指定したい直線に沿って短時間に3回画面をたたくジェスチャーである。このジェスチャーは、先の移動ジェスチャーと混同されることもない。他のジェスチャーと区別できないジェスチャー、すなわち同じ形状で異なる属性を持つジェスチャーは、相容れないのである。移動ジェスチャーの経路は、連続的な線分であるが、3ドットジェスチャーはそうではないので、両者は並存可能である。
【0113】
ユーザーによる折り線指定操作は、また、事前計算との組み合わせとなる。ユーザーが指定した折り線位置は、近傍にある事前計算したセクション境界にスナップするようにしてもよい。
【0114】
図18のステップ1803において、折り線が強調表示される。ユーザーによる折り畳みを指示するジェスチャーが行われているとシステムが検出した場合、すぐに折り線を強調表示する。強調表示は、折り線を異なる色で表示したり、太く(同じ色でも異なる色でも)表示したりすることで行われる。
【0115】
図21は、本発明を実装するコンピュータシステム2100の一例を示すブロック図である。システム2100は、プロセッサ2102及びメモリ2103を含むコンピュータプラットフォーム2101を含む。
【0116】
ここでは、コンピュータ可読記録媒体とは、コンピュータからその内容の読み込みが可能な任意の媒体であって有体物であるものを意味する。その例としては、光ディスクや半導体メモリが挙げられる。
【0117】
さらに、コンピュータプラットフォーム2101は、複数の入力装置2104からの入力を受ける。この入力装置としては、キーボード、マウス、タッチデバイス、音声入力装置等がある。コンピュータプラットフォーム2101には、リムーバルストレージ2105を接続することもできる。ここで、リムーバルストレージ、光ディスク(CDやDVD)、磁気ディスク等のコンピュータからそのデータの読み込みが可能な有体の記録媒体であって、コンピュータプラットフォーム2101からの取り外しが可能なものである。
【0118】
コンピュータプラットフォーム2101はさらに、インターネットやローカルのネットワークに接続されたネットワーク資源2106と接続して情報をやり取りすることもできる。
【0119】
ネットワーク資源2106は、リモートにあるネットワーク2107から、コンピュータプラットフォーム2101に対して、命令やデータを送信することが可能である。このネットワークリソースとの接続は、IEEE801.11、Bluetooth、携帯電話プロトコル等を利用した無線接続であってもよいし、電気ケーブルや光ファイバーを利用した有線接続であってもよい。
【0120】
コンピュータプラットフォーム2101は、ディスプレイ2108にデータやその他の情報を出力し、当該ディスプレイの画面上にその情報を表示させる。また、ディスプレイ2108は、画面上のタッチ操作をその入力として受け付ける入力装置として動作し、ユーザーからの入力を受け取る。このディスプレイ2108とコンピュータプラットフォーム2101は一体となって、携帯型の端末装置として実装されることもある。もちろん、入力装置2104をさらに一体化してもよい。
【0121】
これまで説明した文書の表示及び操作方法は、汎用コンピュータとしてのコンピュータシステム2100上のソフトウェアとして実装することもできるし、専用のハードウェアとしてのコンピュータシステム2100として実装することも可能である。また、その機能の一部をソフトウェアで他の機能をハードウェアで実行することも可能である。
【0122】
3次元ページオブジェクトは、固定された幾何構造の上に可変のコンテンツを貼り付けるという実装形態に限られず、幾何構造そのものから動的に生成するものであってもよい。
【0123】
また、折り畳みは、文書内の空白箇所だけでなく、オブジェクト上で行われてもよい。ユーザーが望む箇所に折り線を設定してそこで折り曲げればよいだけである。
【符号の説明】
【0124】
601 文書
602 セクション
603 セクション
604 接触点
605 接触点
606 折り線
【特許請求の範囲】
【請求項1】
ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力手段と、
前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知する検知手段と、
表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するジェスチャー検出手段と、
前記ジェスチャー検出手段が前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成する折り畳み画像データ生成手段と、
を有することを特徴とする文書折り畳み表示装置。
【請求項2】
前記ジェスチャー検出手段は、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動量を検出し、
前記折り畳み画像データ生成手段は、検出された前記第1の接触点の移動量が大きいほど、折り畳む量を大きくした画像データを生成することを特徴とする請求項1記載の文書折り畳み表示装置。
【請求項3】
前記ジェスチャー検出手段は、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点に近づく方向か、遠ざかる方向かを検出し、
前記折り畳み画像データ生成手段は、検出した移動方向が遠ざかる方向の場合と近づく方向の場合とで、異なる折り畳み方向へ折り畳んだような画像データを生成することを特徴とする、請求項1または2記載の文書折り畳み表示装置。
【請求項4】
前記ジェスチャー検出手段は、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点から前記第1の接触点の初期位置を見た場合に左右いずれの方向に向かっているかを検出し、
前記折り畳み画像データ生成手段は、検出した移動方向が左方向と右方向とで、異なる折り畳み方向へ折り畳んだような画像データを生成することを特徴とする、請求項1または2記載の文書折り畳み表示装置。
【請求項5】
ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力するステップと、
前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知するステップと、
表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するステップと、
前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成するステップと、
をコンピュータに実行させるための文書折り畳み表示プログラム。
【請求項1】
ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力手段と、
前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知する検知手段と、
表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するジェスチャー検出手段と、
前記ジェスチャー検出手段が前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成する折り畳み画像データ生成手段と、
を有することを特徴とする文書折り畳み表示装置。
【請求項2】
前記ジェスチャー検出手段は、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動量を検出し、
前記折り畳み画像データ生成手段は、検出された前記第1の接触点の移動量が大きいほど、折り畳む量を大きくした画像データを生成することを特徴とする請求項1記載の文書折り畳み表示装置。
【請求項3】
前記ジェスチャー検出手段は、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点に近づく方向か、遠ざかる方向かを検出し、
前記折り畳み画像データ生成手段は、検出した移動方向が遠ざかる方向の場合と近づく方向の場合とで、異なる折り畳み方向へ折り畳んだような画像データを生成することを特徴とする、請求項1または2記載の文書折り畳み表示装置。
【請求項4】
前記ジェスチャー検出手段は、さらに、前記第2の接触点が静止している間の前記第1の接触点の移動方向が、前記第2の接触点から前記第1の接触点の初期位置を見た場合に左右いずれの方向に向かっているかを検出し、
前記折り畳み画像データ生成手段は、検出した移動方向が左方向と右方向とで、異なる折り畳み方向へ折り畳んだような画像データを生成することを特徴とする、請求項1または2記載の文書折り畳み表示装置。
【請求項5】
ディスプレイ装置の画面に表示する文書の情報を、前記ディスプレイ装置に対して出力する出力するステップと、
前記文書が表示された画面上における、少なくとも2箇所の接触点の位置及び動きを検知するステップと、
表示された文書上で第2の接触点が静止している間に、第1の接触点が当該文書上を移動するというジェスチャーを検出するステップと、
前記ジェスチャーを検出した場合には、予め設定された折り線によって区分される前記文書の第1の接触点側の領域を、透視図法によって前記画面の奥側または手前側に、当該折り線を基準にして折り畳んだように疑似3次元表示する2次元画像データを生成するステップと、
をコンピュータに実行させるための文書折り畳み表示プログラム。
【図1】
【図3】
【図4】
【図8】
【図11】
【図18】
【図21】
【図2】
【図5】
【図6】
【図7】
【図9】
【図10】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図19】
【図20】
【図3】
【図4】
【図8】
【図11】
【図18】
【図21】
【図2】
【図5】
【図6】
【図7】
【図9】
【図10】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図19】
【図20】
【公開番号】特開2012−113686(P2012−113686A)
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願番号】特願2011−127211(P2011−127211)
【出願日】平成23年6月7日(2011.6.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願日】平成23年6月7日(2011.6.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]