以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、情報処理装置100のハードウェア構成を示す図である。尚、図1に示すハードウェア構成はあくまで一例である。
情報処理装置100は、タッチパネルを備える装置である。本実施形態では、いわゆるスマートフォンやタブレット端末のような装置を想定して説明を行うが、特にこれに限らない。タッチパネルを備える装置であれば、パーソナルコンピュータであってもよい。
CPU101は、システムバスを介してメモリやコントローラを統括的に制御する。ROM102あるいはフラッシュメモリ114には、CPU101の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステム200が記憶されている。更には、情報処理装置100が実行する機能を実現するために必要な、後述する各種プログラム等が記憶されている。
RAM103は、CPU101の主メモリ、ワークエリア等として機能する。CPU101は、処理の実行に際して必要なプログラム等をRAM103にロードして、プログラムを実行することで各種動作を実現するものである。
ディスプレイコントローラ104は、ディスプレイ110等の表示装置への表示を制御する。ディスプレイ110は例えば液晶ディスプレイである。また、ディスプレイ110の表面にはタッチパネル111が備えられている。タッチパネル111に対するタッチ操作の検知をタッチパネルコントローラ105が制御する。タッチパネルコントローラ105は、タッチパネル111に対する複数の箇所に対するタッチ操作(以下、マルチタッチという。)も検知可能である。
カメラコントローラ106は、カメラ112における撮影を制御する。カメラ112はデジタルカメラであり、カメラコントローラ106からの制御で撮像した画像を撮像素子でデジタルデータに変換する。カメラ112は静止画と動画を撮影することが可能である。
センサコントローラ107は、情報処理装置100が備える各種センサ113からの入力を制御する。情報処理装置100のセンサ113には様々なセンサが存在し、例えば方位センサ、加速度センサ等である。
ネットワークコントローラ108は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
フラッシュメモリコントローラ109は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するフラッシュメモリ114へのアクセスを制御する。本実施形態においては、フラッシュメモリとして説明を行うが、ハードディスクやフレキシブルディスク、或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の記憶媒体であってもよい。
前述したCPU101、各メモリ、各コントローラは、1つのチップ115に統合されている。いわゆるSoC(System on Chip)の形態で情報処理装置100の内部に備えられている。
尚、CPU101は、例えばRAM103内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ110での表示を可能としている。
本発明の情報処理装置100が後述する各種処理を実行するために用いられる各種プログラム等はフラッシュメモリ114に記録されており、必要に応じてRAM103にロードされることによりCPU101によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルはフラッシュメモリ114に格納されている。以上が、本実施形態におけるハードウェア構成である。
図2は、情報処理装置100の機能構成を示す図である。尚、図2に示す機能構成はあくまで一例である。
情報処理装置100の機能部として、記憶部201、表示制御部202、及び操作検知部203を備えている。これらはオペレーティングシステム200において動作する機能部である。
記憶部201は、後述する各種テーブルの情報や各種画面、カメラ112で撮影することにより生成された画像データ等を構成する情報をRAM103やフラッシュメモリ114に記憶するための機能部である。必要に応じて、情報の追加・更新・削除を行う。また、後述する文字列入力アプリ210からの要求があった場合も同様に動作する。
表示制御部202は、ディスプレイ110の表示を制御するための機能部である。表示制御部202から画面等の表示指示がなされると、ディスプレイコントローラ104を介してディスプレイ110に表示指示が送信される。そして、ディスプレイ110はこの指示を受信すると、指示に従って画面等を表示する。
操作検知部203は、タッチパネル111に対するタッチ操作を検知するための機能部である。タッチパネル111に対するタッチ操作の位置、タッチ操作された数等を検知することができる。また、タッチパネル111に対して1度タッチ操作がなされたのか、タッチ操作したままスライドした(以下、スライド操作という。)のか等、タッチ操作の種別も検知することができる。尚、本実施形態においては、タッチパネル111に対してタッチ操作をしたままスライドすることをスライド操作と呼ぶが、いわゆるフリック操作やスワイプ操作も含む。
また情報処理装置100は、オペレーティングシステム200において動作可能な文字列入力アプリ210がインストールされている。文字列入力アプリ210は、画像データ制御部211、表示制御指示部212、操作取得部213、パースライン制御部214、遠近感制御部215、及び文字列制御部216を備えている。
画像データ制御部211は、記憶部201に記憶されている画像データに対して処理を実行するための機能部である。画像データ制御部211は、画像データの取得や保存を行うことができる。
表示制御指示部212は、文字列入力アプリ210で表示する画面等の表示を表示制御部202に指示するための機能部である。表示制御部202は、表示制御指示部212からの指示に応じた画面等をディスプレイ110に表示する。
操作取得部213は、操作検知部203で検知したタッチ操作の内容を取得するための機能部である。文字列入力アプリ210は、操作検知部203から操作取得部213に渡されたタッチ操作の内容に応じて、各機能部が文字列の入力や後述するパースラインの生成、画面の表示制御等を実行する。
パースライン制御部214は、タッチパネル111に対するタッチ操作によって生成されるパースラインを制御するための機能部である。本実施形態においてパースラインとは、遠近感を制御するための線要素である。パースラインは、一点透視図法や二点透視図法等で用いられる消失点に収束する。パースライン制御部214は、ユーザからのタッチ操作によってこのパースラインを生成し、表示制御部202の機能によりディスプレイ110にこれを表示する。
遠近感制御部215は、ユーザから入力された文字列の遠近感を制御するための機能部である。文字列の仮想的な位置や、文字列に対する仮想的な視点等を設定し、これらの情報に基づいて一点透視図法や二点透視図法を用いて遠近感を表現する。遠近感制御部215によって特定された遠近感で描画されるよう、遠近感制御部215から文字列制御部216に指示を出す。尚、文字列以外の表示アイテム(画像データ、絵文字、動画データ等)の遠近感を本実施形態と同様の方法で制御する場合には、遠近感制御部215が表示アイテムの遠近感を文字列と同様に制御する。
文字列制御部216は、ユーザから入力された文字列の位置を移動したり、文字列を変形したりするための機能部である。文字列制御部216が文字列を変形する場合には、文字列をアウトライン化してパスデータに変換し、パスを操作することで文字列を変形する。また、文字列制御部216は、遠近感制御部215からの指示に応じた形状となるよう、文字列を変形する。尚、文字列以外の表示アイテム(画像データ、絵文字、動画データ等)を本実施形態と同様の方法で移動・変形させる場合には、文字列制御部216が表示アイテムを文字列と同様に移動・変形する。以上が、本実施形態における機能構成である。
次に、本実施形態における一連の処理の流れについて、図3のフローチャートを用いて説明する。尚、本実施形態では文字列に対する処理について説明するが、前述した表示アイテムについても同様の処理を行うことで実現可能である。
ステップS301では、情報処理装置100のCPU101は、ユーザからの指示に応じて文字列入力アプリ210のプログラムをフラッシュメモリ114から読み出して、これを起動する。
ステップS302では、情報処理装置100のCPU101は、表示制御部202の機能によりディスプレイ110に画像データの選択画面を表示し、画像データに対する選択を受け付ける。より具体的には、表示制御指示部212の機能により画像データの選択画面の表示指示を表示制御部202に行うことで表示する。画像データの選択画面は、フラッシュメモリ114に記憶された画像データの一覧が表示される画面である。この画面で文字列を追加したい画像データに対する選択をタッチ操作により受け付ける。
ステップS303では、情報処理装置100のCPU101は、画像データ制御部211の機能により、ステップS302で選択された画像データのコピーを生成し、RAM103に一時保存する。こうすることで、フラッシュメモリ114に記憶された画像データに対して変更を加えることなく、作業を進めることができる。また、コピーした画像データの横幅を取得し、図4に示す画像データテーブル400の横幅401に格納する。
画像データテーブル400は、情報処理装置100のフラッシュメモリ114に記憶されるデータテーブルである。画像データテーブル400は、横幅401を含む。横幅401は、ステップS303でRAM103に一時記憶した画像データの横幅を格納する項目である。尚、画像データテーブル400のテーブル構成はあくまで一例であり、これに限らない。
ステップS304では、情報処理装置100のCPU101は、図5に示すようなメイン画面500を生成し、表示制御部202の機能によりディスプレイ110にメイン画面500を表示する。より具体的には、生成されたメイン画面500の表示指示を表示制御指示部212から表示制御部202に送信し、これを表示する。メイン画面500には、ステップS303でRAM103に一時記憶した画像データが画像データ表示領域501に表示される。また、メイン画面500は、追加ボタン502と保存ボタン503とを備えている。追加ボタン502は、新たな文字列を追加するためのボタンである。また、保存ボタン503は、文字列を追加した画像データを保存するためのボタンである。尚、メイン画面500の構成はあくまで一例であり、これに限らない。
ステップS305では、情報処理装置100のCPU101は、文字列追加処理を実行する。文字列追加処理の詳細は、後述する図7に示す。
ステップS306では、情報処理装置100のCPU101は、操作検知部203の機能によりタッチパネル111に対するタッチ操作を検知したか否かを判定する(タッチ操作検知手段)。より具体的には、操作取得部213が操作検知部203からタッチ操作の内容を取得したか否かによって、タッチパネル111に対するタッチ操作を検知したか否かを判定する。タッチパネル111に対するタッチ操作を検知したと判定した場合には、ステップS307に処理を進める。そうでない場合には、タッチパネル111に対するタッチ操作を検知するまで、ステップS306を繰り返し実行する。
ステップS307では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、第1の方向に対するスライド操作であるか否かを判定する。ここでいう第1の方向とは、2本のパースラインに応じた向きである。例えば、ステップS305で生成された2本のパースラインと略平行な向きである。尚、第1の方向は、ある程度幅を持った方向であることが望ましい。第1の方向に対するスライド操作であると判定した場合には、ステップS308に処理を進める。そうでない場合には、ステップS309に処理を進める。
ステップS308では、情報処理装置100のCPU101は、奥行き調整処理を実行する。奥行き調整処理の詳細は、後述する図13に示す。
ステップS309では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、第2の方向に対するスライド操作であるか否かを判定する。ここでいう第2の方向とは、ステップS307の第1の方向とは異なる向きである。例えば、ステップS305で生成された2本のパースラインと略垂直な向きである。尚、第2の方向も第1の方向と同様に、ある程度幅を持った方向であることが望ましい。第2の方向に対するスライド操作であると判定した場合には、ステップS310に処理を進める。そうでない場合には、ステップS311に処理を進める。
ステップS310では、情報処理装置100のCPU101は、文字列制御部216の機能により2本のパースラインから特定される消失点に基づいて、ユーザから入力された文字列を回転する(文字列回転手段)。また、文字列の回転に合わせて、パースライン制御部214の機能により2本のパースラインも消失点に基づいて回転する。
図6はステップS310で実行される処理のイメージ図である。後述するが図6(a)は、ステップS305でメイン画面500に2本のパースライン(第1のパースライン901、第2のパースライン902)を生成し、ユーザから入力された文字列422を変形して表示した状態である。情報処理装置100は、文字列422に対する第2の方向601のスライド操作を検知すると、第1のパースライン901と第2のパースライン902との消失点416を中心として、文字列422とこれらのパースラインとを回転させる。消失点416はステップS305で特定されるため、これを用いる。回転した結果が、図6(b)である。このようにして、2本のパースラインから特定される消失点に基づいてユーザが直感的に文字列を回転させることができるようになる。
図3の説明に戻る。ステップS311では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、第1の方向に対するピンチ操作であるか否かを判定する。ここでいう第1の方向は、ステップS307と同様の方向を示す。また、ピンチ操作とは、タッチパネル111の複数の位置をタッチしたまま、そのタッチした位置を変化させる操作をいう。いわゆるピンチアウトやピンチインといった操作である。第1の方向に対するピンチ操作であると判定した場合には、ステップS312に処理を進める。そうでない場合には、ステップS313に処理を進める。
ステップS312では、情報処理装置100のCPU101は、文字列調整処理を実行する。文字列調整処理の詳細は、後述する図16に示す。
ステップS313では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、パースライン制御部214の機能により設定される調整点が操作されたか否かを判定する。調整点とは、パースライン上に生成される、パースラインの位置を変更するためのアイコンである。調整点の詳細は、後述する。調整点が操作されたと判定した場合には、ステップS314に処理を進める。そうでない場合には、ステップS315に処理を進める。
ステップS314では、情報処理装置100のCPU101は、調整点操作処理を実行する。調整点操作処理の詳細は、後述する図19に示す。
ステップS315では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、文字列の追加操作がなされたか否かを判定する。より具体的には、メイン画面500の追加ボタン502が押下されたか否かを判定する。文字列の追加操作がなされたと判定した場合には、ステップS316に処理を進める。そうでない場合には、ステップS317に処理を進める。
ステップS316では、情報処理装置100のCPU101は、文字列追加処理を実行する。ステップS316で実行する文字列追加処理は、ステップS305で実行する文字列追加処理を同じである。ステップS316では、ステップS305で追加する文字列とは別の文字列を追加することになる。文字列追加処理の詳細は、後述する図7に示す。
ステップS317では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、文字列の削除操作がなされたか否かを判定する。より具体的には、ステップS305またはステップS316の文字列追加処理で画像データ上に追加された文字列に対して所定秒数タッチを受け付け、これに応じて表示される削除ボタン(不図示)に対するタッチ操作を検知したか否かを判定する。文字列の削除操作がなされたと判定した場合には、ステップS318に処理を進める。そうでない場合には、ステップS319に処理を進める。
ステップS318では、情報処理装置100のCPU101は、文字列制御部216の機により、ステップS317で所定秒数タッチを受け付けた文字列を削除する。また、パースライン制御部214の機能により、削除した文字列に関する2本のパースラインも合わせて削除する。
ステップS319では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、保存操作がなされたか否かを判定する。より具体的には、メイン画面500の保存ボタン503が押下されたか否かを判定する。保存操作がなされたと判定した場合には、ステップS320に処理を進める。そうでない場合には、ステップS321に処理を進める。
ステップS320では、情報処理装置100のCPU101は、記憶部201の機能により、フラッシュメモリ114の任意の保存場所に、文字列が追加された画像データを保存する。画像データを保存する際には、画像データ制御部211の機能により、メイン画面500に表示されている文字列をステップS303でRAM103に一時記憶した画像データに合成した画像データを生成する。そして、生成した画像データを記憶部201の機能により、フラッシュメモリ114の任意の保存場所に保存する。このように、保存操作がなされることで、遠近感を持った文字列が合成された画像データが書き出される。
ステップS321では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、文字列入力アプリ210の起動終了操作がなされたか否かを判定する。文字列入力アプリ210の起動終了操作は、メイン画面500に終了ボタンを設けてもよいし、オペレーティングシステム200が備えるメニューによって終了させてもよい。文字列入力アプリ210の起動終了操作がなされたと判定した場合には、ステップS322に処理を進める。そうでない場合には、いずれの操作にも該当しないので、ステップS306に処理を戻す。
ステップS322では、情報処理装置100のCPU101は、ステップS301で起動した文字列入力アプリ210を終了し、本一連の処理を終了する。以上が、本実施形態における一連の処理の流れである。
次に、文字列追加処理の詳細な処理の流れについて、図7のフローチャートを用いて説明する。尚、本実施形態では文字列を追加する処理について説明するが、前述した表示アイテムについても同様の処理を行うことで実現可能である。
まずステップS701では、情報処理装置100のCPU101は、表示制御部202の機能により、ディスプレイ110に図8に示すような文字列入力画面800を表示し、文字列の入力を受け付ける(入力受付手段)。文字列入力画面800は、選択された画像データに追加する文字列を入力するための画面である。文字列入力画面800は、文字列表示領域801、キーボード入力領域802、OKボタン803を備えている。文字列表示領域801は、キーボード入力領域802で受け付けたキー入力により文字列を表示する領域である。キーボード入力領域802は、ソフトウェアキーボードを表示するための領域である。OKボタン803は、文字列の入力を完了するためのボタンである。尚、本実施形態では文字列の入力を受け付けているが、前述した表示アイテムの入力を受け付けるようにしてもよい。以下、文字列に対する処理については表示アイテムに対する処理に置き換えることで、2本のパースラインに沿った遠近感で表示アイテムを変形することが可能である。
ステップS702では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、OKボタン803が押下されたか否かを判定する。OKボタン803が押下されたと判定した場合には、ステップS703に処理を進める。そうでない場合には、OKボタン803が押下されるまでステップS702の処理を繰り返す。
ステップS703では、情報処理装置100のCPU101は、記憶部201の機能により、ステップS701で入力を受け付けた文字列を図4に示す文字列テーブル420に記憶する。より具体的には、文字列テーブル420に新たなレコードを作成し、このレコードの文字列422に入力を受け付けた文字列を格納する。
文字列テーブル420は、情報処理装置100のフラッシュメモリ114に記憶されるデータテーブルである。文字列テーブル420は、文字列ID421、文字列422、奥行き位置423、及び奥行き幅424を含む。文字列ID421は、文字列ごとに割り振られる識別情報が格納される項目である。文字列422は、ステップS701で入力を受け付けた文字列が格納される項目である。この文字列422が画像データ上に表示されることになる。奥行き位置423と奥行き幅424は、後述する平面図において文字列がどの位置に配置され、どういった幅なのかを特定するための情報が格納される。尚、文字列テーブル420のテーブル構成はあくまで一例であり、これに限らない。
ステップS704では、情報処理装置100のCPU101は、表示制御部202の機能により、メイン画面500を表示する。このとき、メイン画面500が備える各種ボタンに対して押下されても各種機能が動作しない状態として表示する。このようにすることで、ユーザが不要な操作を行うことを防止する。また、ステップS304と同様に、ステップS303でRAM103に一時記憶した画像データが画像データ表示領域501に表示される。このように画像データを表示した状態で、後述するステップS705においてスライド操作を受け付けることにより、画像データの遠近感に合わせてパースラインを引くことが可能となる。
ステップS705では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、メイン画面500の画像データ表示領域501でスライド操作がなされたか否かを判定する。図9(a)は、メイン画面500でスライド操作がなされた場合のイメージ図である。ユーザはタッチパネル111に対してスライド操作を行う。すると、操作検知部203がこれを検知し、操作取得部213にタッチ操作の内容を渡す。操作取得部213がこれを受けると、スライド操作がなされたと判定する。スライド操作がなされたと判定した場合には、ステップS706に処理を進める。そうでない場合には、スライド操作がなされるまでステップS705を繰り返し実行する。
ステップS706では、情報処理装置100のCPU101は、パースライン制御部214の機能により、ステップS705で受け付けたスライド操作の始点を示す座標値を取得する。ここでいう座標値は、ディスプレイ110の左上を原点とするXY座標系に基づく座標値である。取得した座標値は、図4に示すパースラインテーブル410に新しくレコードを作成し、作成したレコードの第1の始点412に格納する。2本目のパースラインを生成する場合には、当該レコードの第2の始点414に格納する。
パースラインテーブル410は、情報処理装置100のフラッシュメモリ114に記憶されるデータテーブルである。パースラインテーブル410は、パースラインID411、第1の始点412、第1の終点413、第2の始点414、第2の終点415、及び消失点416を含む。パースラインID411は、パースラインの組に対して割り振られる識別情報を格納する項目である。第1の始点412と第1の終点413は、第1のパースライン901を生成するスライド操作の始点と終点の座標値を格納する項目である。第2の始点414と第2の終点415は、第2のパースライン902を生成するスライド操作の始点と終点の座標値を格納する項目である。消失点416は、第1のパースライン901の長さと第2のパースライン902の長さとを延長した時に交わる点、つまり消失点の座標値を格納する項目である。尚、パースラインテーブル410のテーブル構成はあくまで一例であり、これに限らない。
ステップS707では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ステップS705でなされたスライド操作が終了したか否かを判定する。より具体的には、操作検知部203からタッチ操作の内容が渡されなくなったら、スライド操作が終了したと判定する。スライド操作が終了したと判定した場合には、ステップS708に処理を進める。そうでない場合には、スライド操作が終了するまでステップS707を繰り返し実行する。
ステップS708では、情報処理装置100のCPU101は、パースライン制御部214の機能により、ステップS705で受け付けたスライド操作の終点を示す座標値を取得する。取得した座標値は、ステップS706で作成したレコードの第1の終点413に格納する。2本目のパースラインを生成する場合には、当該レコードの第2の終点415に格納する。
ステップS709では、情報処理装置100のCPU101は、パースライン制御部214の機能により、ステップS706で取得した始点の座標値とステップS708で取得した終点の座標値とを通る直線を生成する(線要素生成手段)。この直線がパースラインである。そして生成したパースラインをディスプレイ110に表示する。図9(b)は、ステップS709で生成したパースラインをメイン画面500に表示した場合のイメージ図である。前述した通り、図9(a)のようにスライド操作がなされると、このスライド操作の第1の始点412と第1の終点413とを通る直線である第1のパースライン901を生成する。尚、本実施形態では始点と終点とを通る直線としたが、始点と終点とを結ぶ線分であってもよい。
ステップS710では、情報処理装置100のCPU101は、パースライン制御部214の機能により、スライド操作がなされた始点と終点の位置に調整点のアイコンを生成し、これを表示する。図9(b)に示す通り、第1の始点412と第1の終点413の位置に調整点を示すアイコンを表示する。このアイコンをスライド操作によって移動することで、文字列を変形することができる。
ステップS711では、情報処理装置100のCPU101は、パースライン制御部214の機能により、2本のパースラインが生成されたか否かを判定する。すなわち、ステップS705乃至ステップS710の処理の流れを2回実行したか否かを判定する。または、パースラインテーブル410の第1の始点412から第2の終点415までの各項目に座標値が格納されたか否かを判定する。2本のパースラインが生成されたと判定した場合には、ステップS712に処理を進める。そうでない場合には、1本しかパースラインが生成されていないのでステップS705に処理を戻し、2本目のパースラインを生成するべく、処理を進める。
図9(c)と図9(d)は、2本目のパースラインを生成する場合のイメージ図を示す。図9(c)に示す通り、メイン画面500に1本目のパースラインである第1のパースライン901が表示された状態で、スライド操作を受け付ける。すると、第1のパースライン901と同様に、スライド操作の始点と終点の座標値を取得し、それぞれを第2の始点414と第2の終点415に格納する。そして、これらを通る直線である第2のパースライン902を生成し、これをメイン画面500に表示する。この表示した結果が、図9(d)である。このようにして、2本のパースラインを生成する。2本のパースラインが生成できたら、この2本のパースラインが交わる点である消失点を特定し、この座標値をステップS706で作成したレコードの消失点416に格納する。尚、本実施形態ではスライド操作によりパースラインを生成したが、パースラインの始点と終点が特定できるのであれば、どのようなタッチ操作であってもよい。
ステップS712では、情報処理装置100のCPU101は、パースライン制御部214の機能により、生成された2本のパースライン上にある第1の始点412と第2の始点414とが共に消失点416の左方向または右方向に存在するか否かを判定する。より具体的には、第1の始点412のX座標の値と第2の始点414のX座標の値とが、どちらも消失点416が示すX座標の値より小さいまたは大きいか否かを判定する。本実施形態では、2本のパースラインの引き方によって図11と図12(c)のいずれかの表示形態としている。この表示形態を決定するためにステップS712で判定をしている。ステップS712の判定はあくまで一例であり、他の方法であってもよい。第1の始点412と第2の始点414とが共に消失点416の左方向または右方向に存在すると判定した場合には、ステップS713に処理を進める。そうでない場合には、ステップS720に処理を進める。
ステップS713では、情報処理装置100のCPU101は、遠近感制御部215の機能により、ステップS303で一時記憶した画像データの横幅401と、2本のパースラインから特定される消失点416とを取得する。そして、取得した横幅401と消失点416とを用いて、平面図における奥行きの長さを特定する。
図10は、遠近感のある文字列に変形するためのイメージ図である。本実施形態では、このイメージ図に示すロジックを用いて、文字列を変形する。図10は大きく2つの図に分かれている。1つは、図10の下部1000の透視図である。もう1つは図10の上部1001の平面図である。透視図は、平面図の透視面1002を通って仮想的な視点に向かう光を映した図である。この透視図の中の範囲1003が画像データ上に表示されることになる。尚、以降の図においても同様の構成で表現する。
まず、ステップS713では、この平面図の縦の長さ、つまり奥行きの長さを決定する。奥行きの長さを決定しなければ、後述する処理によって文字列が移動して画像データの横幅を越えてしまうため、このように奥行きに制限を設けている。
ここで決定する奥行きの長さは、透視面1002から奥行き面1004までの長さである。尚、透視面1002から手前面1005までの長さは任意である。透視面1002から奥行き面1004までの長さを特定する際には、まず2本のパースラインの消失点416から透視面1002に対して直交する直線を引き、この直線上に仮想的な視点1006を設ける。この直線上であれば、視点1006の位置は任意である。更に、画像データの横幅401と同じ幅を持つ範囲1003の左右の辺のうち、視点1006に近い辺から透視面1002に対して直交する直線を引き、その直交する交点1007を特定する。そして、範囲1003の左右の辺のうち、もう一方の辺から透視面1002に対して直交する直線を引き、この直線と、交点1007と視点1006とを通る直線との交点1008を特定する。この交点1008を通る奥行き面1004から透視面1002までの長さを奥行きの長さ1009とする。
ステップS714では、情報処理装置100のCPU101は、遠近感制御部215の機能により、2本のパースライン上にある調整点(すなわち、始点と終点)のうち、X座標の値が最小の調整点とX座標の値が最大の調整点とを特定する。より具体的には、第1の始点412から第2の終点415に格納されている調整点のX座標の値を比較し、X座標の値が最小の調整点と、X座標の値が最大の調整点とを特定する。図10でいえば、X座標の値が最大の調整点は第1の終点413であり、X座標の値が最小の調整点は第1の始点412である。
ステップS715では、情報処理装置100のCPU101は、遠近感制御部215の機能により、ステップS714で特定した調整点の各X座標から、文字列の奥行き位置423と奥行き幅424とを特定する。図10を用いて具体的に説明する。ステップS714で説明した通り、X座標の値が最大の調整点は第1の終点413であり、X座標の値が最小の調整点は第1の始点412である。まず、この2つの調整点から透視面1002に対して直線を引き、直交する交点1010、交点1011を特定する。これらの交点と視点1006とを通る直線を引く。そしてこの直線と、交点1008を通り透視面1002と直交する直線との交点1012及び交点1013とを特定する。この交点1013の座標値を奥行き位置423に格納し、交点1012と交点1013との長さを奥行き幅424に格納する。つまり、交点1013から交点1012に向かって、文字列が透視面1002に対して直交するように配置されているイメージとなる。このようにして文字列の奥行き位置と奥行き幅とを決定する。
ステップS716では、情報処理装置100のCPU101は、遠近感制御部215の機能により、文字列を構成する各文字の表示位置と表示幅とを特定する。特定した表示位置と表示幅は、文字テーブル430の表示位置433と表示幅434に格納する。
文字テーブル430は、情報処理装置100のフラッシュメモリ114に記憶されるデータテーブルである。文字テーブル430は、関連文字列ID431、文字432、表示位置433、及び表示幅434を含む。関連文字列ID431は、当該レコードの文字に関する文字列の文字列ID421を格納する項目である。文字432は、関連文字列ID431が示す文字列の各文字を格納する項目である。表示位置433と表示幅434は、当該文字を表示する位置の座標値やその文字の幅を格納する項目である。尚、文字テーブル430のテーブル構成はあくまで一例であり、これに限らない。
再び図10を用いてステップS716を説明する。ステップS715で平面図における文字列の位置や幅が特定できた。次にこの文字列が何文字であるのかを文字列422に格納された文字列から特定する。例えば、図8に示すように「SUMMER」と入力された場合には、文字列422にはこれが格納されているので、6文字であることがわかる。そして、交点1013から交点1012までの奥行き幅424をこの文字数で等分する。本実施形態では文字数によって等分するが、文字ごとに文字幅が異なるプロポーショナルフォントである場合には、文字列全体に対する各文字の割合によって按分するとよい。こうして等分した各点1014と視点1006とを結ぶ直線を引き、この直線と透視面1002との交点を特定する。この交点を通り透視面1002と直交する直線を引き、透視図まで伸ばすと文字列の領域である斜線領域1015が各文字を表示する領域ごとに分割される。図10では6文字なので、6つの領域に分割されていることがわかる。この領域を1文字分の領域として用いることで、文字列の遠近感を表現することができる。この分割された領域の位置と幅を各文字の表示位置433と表示幅434に格納する。
このように文字列を構成する文字の表示幅を、平面図を用いて特定することで、文字列を構成する各文字の遠近感を表現することが可能となる。本実施形態では主に一点透視図法の考えに従って遠近感を表現するが、二点透視図法や三点透視図法を用いてもよい。
ステップS717では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS718で特定された各文字の表示位置433を用いて、各文字を画像データ表示領域501の画像データ上に配置する。画像データ上に配置する際には、文字列を表示するためのレイヤーを設け、このレイヤー上に配置するようにする。
ステップS718では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS717で配置した文字を2本のパースラインと各文字の表示幅434とを用いて変形する(表示アイテム変形手段)。すなわち、入力を受け付けた文字列を、文字列を構成する各文字の位置に応じた遠近感となるよう変形する。より具体的には、図10の斜線領域1015の各文字を配置する領域の形状に合わせるように変化させる。変形させた結果が、図11に示す文字列である。図11に示すメイン画面500には、第1のパースライン901と第2のパースライン902との間に文字列422が配置され、これらのパースラインに沿うよう、かつ図10で求めた表示位置433及び表示幅434になるよう変形させて表示している。
ステップS719では、情報処理装置100のCPU101は、表示制御部202の機能により、ステップS718で変形した文字列をタッチパネル111下のディスプレイ110に表示する(表示制御手段)。ステップS303でRAM103に一時記憶した画像データが画像データ表示領域501に表示されているので、変形した文字列はこの画像データの上に重畳して表示される。表示が完了したら文字列追加処理を終了する。
本実施形態では、図5の画像データ表示領域501に示すような画像データ上にパースラインを引いて遠近感のある文字列を追加した。一方、図21に示すような画像データを用いる場合には、画像データの被写体に含まれる直線に沿うようパースラインを引くことで、画像データに含まれる被写体の遠近感と追加する文字列の遠近感とを一致させることができる。
図21は倉庫内の棚を撮影した写真の画像データである。この棚の底板や天板に沿うように、第1のパースライン901と第2のパースライン902とを生成すれば、棚の底板や天板の直線が収束する消失点と、生成したパースラインの消失点とを一致させることができる。そのため、第1のパースライン901と第2のパースライン902に沿うように変形する文字列は、この棚の底板や天板の遠近感と同じ遠近感で表現することができる。よって、なるべくこのような直線に沿うようにパースラインを生成することが望ましい。本実施形態ではこれを受けて、画像データ表示領域501に画像データを表示させ、この画像データ上でパースラインの入力(スライド操作)を受け付ける構成としている。画像データ上でパースラインの入力を受け付けるようにすれば、遠近感を合わせたい被写体を構成する直線上をなぞるようにスライド操作することができ、容易にこの直線とパースラインとを合わせることができる。
図7の説明に戻る。一方、ステップS720では、情報処理装置100のCPU101は、遠近感制御部215の機能により、2本のパースライン上にある調整点(すなわち、始点と終点)のうち、Y座標の値が最小の調整点とY座標の値が最大の調整点とを特定する。より具体的には、第1の始点412から第2の終点415に格納されている調整点のY座標の値を比較し、Y座標の値が最小の調整点と、Y座標の値が最大の調整点とを特定する。図12(a)でいえば、調整点1201と調整点1202が特定される。
ステップS721では、情報処理装置100のCPU101は、遠近感制御部215の機能により、ステップS720で特定した各Y座標から、文字列を構成する各文字の表示位置433と表示幅434とを特定する。図12(b)を用いて具体的に説明する。図12(b)に示す通り、ステップS720で特定した調整点から画面と平行な直線1203と直線1204を引く。このいずれかの直線を、2本のパースラインの間で文字列の文字数を用いて等分する。プロポーショナルフォントの場合は、前述した通り、文字列全体に対する各文字の割合によって按分するとよい。そして等分された各点1205と消失点416とを結ぶ直線を生成することで、斜線領域1206が各文字を表示する領域ごとに分割される。この分割した領域の位置と幅とを各文字の表示位置433と表示幅434に格納する。
ステップS722では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS721で特定された各文字の表示位置433を用いて、各文字を画像データ表示領域501の画像データ上に配置する。画像データ上に配置する際には、文字列を表示するためのレイヤーを設け、このレイヤー上に配置するようにする。
ステップS723では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS722で配置した文字を2本のパースラインと各文字の表示幅434とを用いて変形する。すなわち、入力を受け付けた文字列を、文字列を構成する各文字の位置に応じた遠近感となるよう変形する。より具体的には、図12(b)の斜線領域1206の各文字を配置する領域の形状に合わせるように変化させる。変化させた結果を、図12(c)に示す。図12(c)に示すメイン画面500には、2本のパースラインの間に文字列422が配置され、これらのパースラインに沿うよう、かつ図12(b)で求めた表示位置433及び表示幅434になるように変形させて表示している。このように、図11のような横方向に対する遠近感だけでなく、縦方向に対する遠近感を表現することも可能である。
ステップS724では、情報処理装置100のCPU101は、表示制御部202の機能により、ステップS718で変形した文字列をタッチパネル111下のディスプレイ110に表示する。表示が完了したら文字列追加処理を終了する。以上のようにして、文字列に遠近感を持たせて表示することが可能となる。
次に、奥行き調整処理の詳細な処理の流れについて、図13のフローチャートを用いて説明する。尚、本実施形態では文字列の奥行き調整について説明するが、前述した表示アイテムについても同様の処理を行うことで実現可能である。
まずステップS1301では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、文字列の奥行き位置423を変更する。図14を用いて具体的に説明する。まず、ユーザからタッチパネル111下のディスプレイ110に表示されている文字列に対するスライド操作を受け付ける(移動指示受付手段)。例えば図14(a)に示すように、メイン画面500に表示されている文字列422に対して左方向にスライド操作を受け付ける。これに応じて、図14(b)に示すように、平面図上の文字列の奥行き位置423を透視面1002の方に移動する(表示アイテム移動手段)。そして移動された位置を奥行き位置423に格納する。本実施形態では画像データの横幅401に基づいて奥行き幅424が決定されているので、文字列は画像データの横幅401を越えないように制御する。すなわち、透視面1002から奥行き面1004までの間で奥行き位置423を決定する。これを越えるスライド操作は無視する。尚、本実施形態ではこのような動作とするが、文字列が画像データの横幅401を越えてもよい。ただし、文字列に対してスライド操作を受け付けることができるよう、文字列全体が画像データの横幅401を越えないようにすることが望ましい。すなわち、文字列の一部分が画像データの横幅401の中に表示されることが望ましい。
ステップS1302では、情報処理装置100のCPU101は、遠近感制御部215の機能により、文字列を構成する各文字の表示位置と表示幅とを特定する。特定した表示位置と表示幅は、文字テーブル430の表示位置433と表示幅434に格納する。スライド操作によって奥行き位置423が変更されると、この奥行き位置423で文字数によって奥行き幅424を等分し、等分した各点と視点1006とを結ぶ直線を引く。プロポーショナルフォントについては前述した通りである。そして、この直線と透視面1002との交点を特定する。この交点を通り透視面1002と直交する直線を引き、透視図まで伸ばすと文字列の領域である斜線領域1401が各文字を表示する領域ごとに分割される。この領域を1文字分の領域として用いることで、文字列の遠近感を表現することができる。この分割された領域の位置と幅を各文字の表示位置433と表示幅434に格納する。
ステップS1303では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1302で特定された各文字の表示位置433を用いて、各文字を画像データ表示領域501の画像データ上に配置する。画像データ上に配置する際には、文字列を表示するためのレイヤーを設け、このレイヤー上に配置するようにする。
ステップS1304では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1303で配置した文字を2本のパースラインと各文字の表示幅434とを用いて変形する。すなわち、入力を受け付けた文字列を、文字列を構成する各文字の位置に応じた遠近感となるよう変形する。より具体的には、図14(b)の斜線領域1401の各文字を配置する領域の形状に合わせるように変化させる。変化させた結果を、図14(c)に示す。図14(c)に示すメイン画面500には、2本のパースラインの間に文字列422が配置され、これらのパースラインに沿うよう、かつ図14(b)で求めた新たな表示位置433及び表示幅434になるように変形させて表示している。このようにしてスライド操作に応じて文字列を移動させ、その移動先の位置に応じた遠近感で文字列を変形して表示することが可能となる。
ステップS1305では、情報処理装置100のCPU101は、表示制御部202の機能により、ステップS1304で変形した文字列をタッチパネル111下のディスプレイ110に表示する。
ステップS1306では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ディスプレイ110に表示されている文字列に対するスライド操作が終了したか否かを判定する。より具体的には、操作検知部203からタッチ操作の内容が渡されなくなったら、スライド操作が終了したと判定する。スライド操作が終了したと判定した場合には、奥行き調整処理を終了する。そうでない場合には、ステップS1301に処理を戻す。このように、スライド操作が継続している間は、所定の間隔でステップS1301乃至ステップS1306を繰り返すようにすることで、スライド操作に応じてリアルタイムに文字列を移動させて遠近感を変更することができる。この所定の間隔は特に問わないが、文字列の移動に伴ってスムーズに文字列を変形させるためには、短い間隔であればあるほどよい。
図15は、図14とは逆の方向に文字列を移動した場合の処理のイメージ図である。図15(a)に示すように、メイン画面500に表示されている文字列422に対して右方向にスライド操作を受け付ける。これに応じて、図15(b)に示すように、平面図上の文字列の奥行き位置423を奥行き面1004の方に移動する。そしてこの奥行き位置423において、奥行き幅424を文字数で分割し、前述したように文字の表示位置433と表示幅434を特定する。この特定した表示位置433と表示幅434で文字列を構成する各文字を配置し、2本のパースラインに沿うよう、かつ図15(b)で求めた新たな表示位置433及び表示幅434になるように変形させて表示する。その結果が図15(c)である。
このように、2本のパースラインと略平行な方向に対して文字列を移動させるだけで、その移動先の位置に応じた遠近感で文字列をリアルタイムに変形し、これを表示することが可能である。
次に、文字列調整処理の詳細な処理の流れについて、図16のフローチャートを用いて説明する。尚、本実施形態では文字列の調整処理について説明するが、前述した表示アイテムについても同様の処理を行うことで実現可能である。
まずステップS1601では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ディスプレイ110に表示されている文字列上でピンチ操作を検知したのか否かを判定する。ピンチ操作を開始する際にタッチされている位置が文字列の表示位置と重なるか否かによって判定すればよい。文字列上でピンチ操作を検知したと判定した場合には、ステップS1603に処理を進める。そうでない場合には、ステップS1602に処理を進める。
ステップS1602では、情報処理装置100のCPU101は、表示制御部202の機能により、メイン画面500に表示されている画像データと文字列とパースラインとを拡大または縮小する。処理が完了したら、文字列調整処理を終了する。
一方、ステップS1603では、情報処理装置100のCPU101は、遠近感制御部215の機能により、現在の調整モードが文字間隔を調整するモードか、文字幅を調整するモードかを判定する。調整モードは、設定画面(不図示)でユーザからあらかじめ設定される、文字列上で第1の方向にピンチ操作がなされた場合に実行する処理のモードである。本実施形態では、2つの調整モードを備えている。1つは文字間隔を調整するモードである。もう1つは文字幅を調整するモードである。これらのモードは、あらかじめユーザによって設定され、図4に示す調整モードテーブル440の調整モード441に設定したモードを示す情報が格納される。つまり、ステップS1603では、調整モード441に格納されている情報に基づいて判定する。文字間隔を調整するモードであると判定した場合には、ステップS1604に処理を進める。文字幅を調整するモードであると判定した場合には、ステップS1610に処理を進める。
調整モードテーブル440は、情報処理装置100のフラッシュメモリ114に記憶されるデータテーブルである。調整モードテーブル440は、調整モード441を含む。調整モード441は、ユーザから設定された調整モードを示す情報を格納する項目である。本実施形態では、文字間隔を調整するモードである場合には「0」が格納され、文字幅を調整するモードである場合には「1」が格納される。尚、調整モードテーブル440のテーブル構成はあくまで一例であり、これに限らない。
まず文字間隔を調整するモードの動作について説明する。ステップS1604では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ピンチ操作に応じた文字間隔を特定する。図17を用いて説明する。図17(a)は、メイン画面500において文字列422の上で第1の方向にピンチ操作がされている状態を示す図である。このようにタッチパネル111で二点以上の位置をタッチしたまま、この二点の位置関係が変化した場合(ピンチ操作を受け付けた場合)に、平面図における文字列の文字間隔を変更する。図17(a)の場合にはピンチアウトがなされたので、文字間隔を広げる。そのため、図17(b)の平面図における文字間隔1701に示すように、ピンチ操作に応じた文字間隔を特定し、特定した文字間隔を設定する。あらかじめ平面図上で文字ごとに分割されているので、この分割された境を特定した文字間隔分、広げればよい。
ステップS1605では、情報処理装置100のCPU101は、遠近感制御部215の機能により、ステップS1606で特定された文字間隔を用いて、文字列を構成する各文字の表示位置と表示幅とを特定する(間隔変更手段)。特定した表示位置と表示幅は、文字テーブル430の表示位置433と表示幅434に格納する。図17(b)に示すように文字間隔が広げられた平面図上の各文字の両端と視点1006とを直線で結び、この直線と透視面1002との交点を特定する。この交点を通り透視面1002と直交する直線を引き、透視図まで伸ばすと文字列の領域である斜線領域1702が各文字を表示する領域となる。こうすることで、文字列の文字間隔についても遠近感を持たせることができる。この分割された領域の位置と幅を各文字の表示位置433と表示幅434に格納する。
ステップS1606では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1605で特定された各文字の表示位置433を用いて、各文字を画像データ表示領域501の画像データ上に配置する。画像データ上に配置する際には、文字列を表示するためのレイヤーを設け、このレイヤー上に配置するようにする。
ステップS1607では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1606で配置した文字を2本のパースラインと各文字の表示幅434とを用いて変形する。すなわち、入力を受け付けた文字列を、文字列を構成する各文字の位置に応じた遠近感となるよう変形する。より具体的には、図17(b)の斜線領域1702の各文字を配置する領域の形状に合わせるように変化させる。変化させた結果を、図17(c)に示す。図17(c)に示すメイン画面500には、2本のパースラインの間に文字列422が配置され、これらのパースラインに沿うよう、かつ図17(b)で求めた文字間隔の表示位置433及び表示幅434になるように変形させて表示している。このようにしてピンチ操作に応じて文字列の文字間隔を変更させ、その変更した文字間隔で遠近感のあるように文字列を変形して表示することが可能となる。
ステップS1608では、情報処理装置100のCPU101は、表示制御部202の機能により、ステップS1607で変形した文字列をタッチパネル111下のディスプレイ110に表示する。
ステップS1609では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ディスプレイ110に表示されている文字列に対するピンチ操作が終了したか否かを判定する。より具体的には、操作検知部203からタッチ操作の内容が渡されなくなったら、ピンチ操作が終了したと判定する。ピンチ操作が終了したと判定した場合には、文字列調整処理を終了する。そうでない場合には、ステップS1604に処理を戻す。このように、ピンチ操作が継続している間は、所定の間隔でステップS1604乃至ステップS1609を繰り返すようにすることで、ピンチ操作に応じてリアルタイムに文字列の文字間隔を変更し、更に遠近感を変更することができる。この所定の間隔は特に問わないが、文字間隔の変更に伴ってスムーズに文字列を変形させるためには、短い間隔であればあるほどよい。
次に文字幅を調整するモードの動作について説明する。ステップS1610では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ピンチ操作に応じた文字幅を特定する。図18を用いて説明する。図18(a)は、図17(a)と同様に、メイン画面500において文字列422の上で第1の方向にピンチ操作がされている状態を示す図である。このようにタッチパネル111で二点以上の位置をタッチしたまま、この二点の位置関係が変化した場合(ピンチ操作を受け付けた場合)に、平面図における文字列の文字幅を変更する。図18(a)の場合にはピンチアウトがなされたので、文字幅を広げる。そのため、図18(b)の平面図における文字幅1801に示すように、ピンチ操作に応じた文字幅を特定し、特定した文字幅を設定する。あらかじめ平面図上で文字ごとに分割されているので、この分割された各文字の文字幅を広げればよい。
ステップS1611では、情報処理装置100のCPU101は、遠近感制御部215の機能により、ステップS1610で特定された文字幅を用いて、文字列を構成する各文字の表示位置と表示幅とを特定する(幅変更手段)。特定した表示位置と表示幅は、文字テーブル430の表示位置433と表示幅434に格納する。図18(b)に示すように文字幅が広げられた平面図上の各文字の両端と視点1006とを直線で結び、この直線と透視面1002との交点を特定する。この交点を通り透視面1002と直交する直線を引き、透視図まで伸ばすと文字列の領域である斜線領域1802が各文字を表示する領域となる。こうすることで、変更した文字幅で文字列に対して遠近感を持たせることができる。この分割された領域の位置と幅を各文字の表示位置433と表示幅434に格納する。
ステップS1612では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1611で特定された各文字の表示位置433を用いて、各文字を画像データ表示領域501の画像データ上に配置する。画像データ上に配置する際には、文字列を表示するためのレイヤーを設け、このレイヤー上に配置するようにする。
ステップS1613では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1612で配置した文字を2本のパースラインと各文字の表示幅434とを用いて変形する。すなわち、入力を受け付けた文字列を、文字列を構成する各文字の位置に応じた遠近感となるよう変形する。より具体的には、図18(b)の斜線領域1802の各文字を配置する領域の形状に合わせるように変化させる。変化させた結果を、図18(c)に示す。図18(c)に示すメイン画面500には、2本のパースラインの間に文字列422が配置され、これらのパースラインに沿うよう、かつ図18(b)で求めた文字幅の表示位置433及び表示幅434になるように変形させて表示している。このようにしてピンチ操作に応じて文字列の文字幅を変更させ、その変更した文字幅で遠近感のあるように文字列を変形して表示することが可能となる。
ステップS1614では、情報処理装置100のCPU101は、表示制御部202の機能により、ステップS1613で変形した文字列をタッチパネル111下のディスプレイ110に表示する。
ステップS1615では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ディスプレイ110に表示されている文字列に対するピンチ操作が終了したか否かを判定する。より具体的には、操作検知部203からタッチ操作の内容が渡されなくなったら、ピンチ操作が終了したと判定する。ピンチ操作が終了したと判定した場合には、文字列調整処理を終了する。そうでない場合には、ステップS1610に処理を戻す。このように、ピンチ操作が継続している間は、所定の間隔でステップS1610乃至ステップS1615を繰り返すようにすることで、ピンチ操作に応じてリアルタイムに文字列の文字幅を変更し、更に遠近感を変更することができる。この所定の間隔は特に問わないが、文字幅の変更に伴ってスムーズに文字列を変形させるためには、短い間隔であればあるほどよい。
このようにして、文字列の文字間隔または文字幅を変更するためのピンチ操作が継続している間は、そのピンチ操作による二点のタッチ操作の位置関係の変化によって文字間隔または文字幅を変更する。そして変更に応じた遠近感で文字列を表示することが可能となる。
次に、調整点操作処理の詳細な処理の流れについて、図19のフローチャートを用いて説明する。尚、本実施形態では文字列の調整点操作について説明するが、前述した表示アイテムについても同様の処理を行うことで実現可能である。
まずステップS1901では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、調整点の位置を変更する。そしてこの変更に伴って、位置が変更された調整点を通るようにパースラインの位置も変更する(線要素変更手段)。図20を用いて説明する。図20(a)は、メイン画面500において調整点である第1の終点413の上で下方向にスライド操作がされている状態を示す図である。このような操作を受け付けると、パースライン制御部214の機能により、スライド操作に応じて調整点の位置を変更する。調整点の位置が変更されると、変更された位置を通るようにパースラインの位置を変更する。図20(a)で調整した調整点は、第1の終点413であるので、この第1の終点413と共にパースラインを形成しているのは第1の始点412である。よって、図20(b)の透視図に示す通り、変更後の第1の終点413の座標と第1の始点412の座標とを通るパースラインを再生成する。
ステップS1902では、情報処理装置100のCPU101は、パースライン制御部214の機能により、調整点の変更に応じて変更されたパースラインと、他方のパースラインとの交点である消失点を特定する。図20(b)に示すように、位置が変更された第1のパースライン901と、もう一方の第2のパースライン902との交点を透視図上で特定する。そしてこの交点の座標値を消失点416に格納する。
ステップS1903では、情報処理装置100のCPU101は、ステップS1902で特定した新たな消失点416を用いて、文字列を構成する各文字の表示位置と表示幅とを特定する。特定した表示位置と表示幅は、文字テーブル430の表示位置433と表示幅434に格納する。図20(b)に示すように、消失点416が移動したので、これに伴って視点1006の位置も移動する。消失点416から透視面1002に対して直交する直線を引く。そしてこの直線上のうち、元の視点1006と同じ奥行き位置を新たな視点1006とする。この新たな視点1006と、平面上に配置され文字ごとに分割された文字の両端とを結ぶ直線を引き、この直線と透視面1002との交点を特定する。この交点を通り透視面1002と直交する直線を引き、透視図まで伸ばすと文字列の領域である斜線領域2001が各文字を表示する領域となる。このように、調整点の位置を変更することで消失点416の位置を変更し、更にこれに伴って視点1006が変更される。よって、変更された視点1006から見た新たな遠近感で文字列を変形することができる。この分割された領域の位置と幅を各文字の表示位置433と表示幅434に格納する。
ステップS1904では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1903で特定された各文字の表示位置433を用いて、各文字を画像データ表示領域501の画像データ上に配置する。画像データ上に配置する際には、文字列を表示するためのレイヤーを設け、このレイヤー上に配置するようにする。
ステップS1905では、情報処理装置100のCPU101は、文字列制御部216の機能により、ステップS1904で配置した文字を2本のパースラインと各文字の表示幅434とを用いて変形する。すなわち、入力を受け付けた文字列を、文字列を構成する各文字の位置に応じた遠近感となるよう変形する。より具体的には、図20(b)の斜線領域2001の各文字を配置する領域の形状に合わせるように変化させる。変化させた結果を、図20(c)に示す。図20(c)に示すメイン画面500には、2本のパースラインの間に文字列422が配置され、これらのパースラインに沿うよう、かつ図20(b)で求めた視点1006の表示位置433及び表示幅434になるように変形させて表示している。このようにして調整点を操作することに応じて仮想的な視点を変更し、その変更した視点から見た遠近感となるように文字列を変形して表示することが可能となる。
ステップS1906では、情報処理装置100のCPU101は、表示制御部202の機能により、ステップS1905で変形した文字列をタッチパネル111下のディスプレイ110に表示する。
ステップS1907では、情報処理装置100のCPU101は、操作取得部213の機能により取得したタッチ操作の内容に基づいて、ディスプレイ110に表示されている調整点に対するスライド操作が終了したか否かを判定する。より具体的には、操作検知部203からタッチ操作の内容が渡されなくなったら、スライド操作が終了したと判定する。スライド操作が終了したと判定した場合には、調整点操作処理を終了する。そうでない場合には、ステップS1901に処理を戻す。このように、スライド操作が継続している間は、所定の間隔でステップS1901乃至ステップS1907を繰り返すようにすることで、スライド操作に応じてリアルタイムに仮想的な視点を変更し、更にこの視点に応じた遠近感で文字列を変形することができる。この所定の間隔は特に問わないが、視点の変更に伴ってスムーズに文字列を変形させるためには、短い間隔であればあるほどよい。
このようにして、調整点の位置を変更するためのスライド操作が継続している間は、調整点の位置を変更することに応じて仮想的な視点の位置を変更し、この変更した位置から見た遠近感で文字列を変形することができる。
以上説明したように、本実施形態によれば、表示部に対する操作に基づいて、表示アイテムの遠近感を容易に表現することが可能となる。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行可能することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。