(57)【特許請求の範囲】
【請求項１】
タッチスクリーンを有する電子機器に搭載されるコンピュータを、
重力方向に対して垂直な水平面に対する前記電子機器の傾斜を、前記電子機器に搭載されたセンサの出力を利用して検知する姿勢検知手段と、
前記タッチスクリーンに対するタッチ操作を受け付ける領域であるタッチ操作領域を表示する位置を選択する位置選択手段と、
前記タッチ操作領域を前記タッチスクリーンに表示する表示制御手段として機能させ、
前記表示制御手段によって前記タッチ操作領域を前記タッチスクリーンに表示する前に、前記姿勢検知手段は前記水平面に対する前記電子機器の傾斜を検知し、前記位置選択手段は、互いに離れている少なくとも２つの位置から、検知された前記電子機器の傾斜に基づいて、前記タッチ操作領域を表示する位置を選択する
ようにコンピュータを機能させるプログラム。
【請求項２】
前記位置選択手段は、前記電子機器の傾斜によって、第１の位置から第１の方向において離れている第２の位置が前記第１の位置より低くなる場合に前記第２の位置を選択し、前記電子機器の傾斜によって、前記第２の位置より第１の位置が低くなる場合に前記第１の位置を選択する
請求項１に記載されるプログラム。
【請求項３】
前記位置選択手段は、前記タッチスクリーンの縦方向と横方向のうちの一方である第１の方向で離れている第１の位置と第２の位置から、前記電子機器の傾斜に基づいて前記タッチ操作領域を表示する位置を選択し、
前記第１の位置と前記第２の位置は、前記第１の方向における前記タッチスクリーンの中心を通り且つ前記タッチスクリーンの縦方向と横方向のうちの他方の方向である第２の方向に沿った前記タッチスクリーンの中心線を挟んで互いに反対側に規定されている
請求項１に記載されるプログラム。
【請求項４】
前記位置選択手段は、前記タッチスクリーンに対してなされた所定のタッチ操作に応じて検知された前記電子機器の傾斜に基づいて、前記タッチ操作領域が表示される位置を選択する
請求項１に記載されるプログラム。
【請求項５】
前記位置選択手段は、オペレーティングシステムに対する前記プログラムの起動指示となるタッチ操作に応じて検知された前記電子機器の傾斜に基づいて、前記タッチ操作領域が表示される位置を選択する
請求項１に記載されるプログラム。
【請求項６】
第１画面と、前記タッチ操作領域を含む第２画面とを、前記タッチスクリーンに選択的に表示する表示制御手段をさらに含み、
前記位置選択手段は、前記第１画面から前記第２画面への変更を指示するタッチ操作に応じて検知された前記電子機器の傾斜に基づいて、前記タッチ操作領域が表示される位置を選択する
請求項１に記載されるプログラム。
【請求項７】
前記姿勢検知手段は、前記タッチスクリーンの縦方向と横方向のうちの一方の方向である第１の方向に沿った第１の軸の前記水平面に対する傾斜を第１の傾斜として検知し、前記タッチスクリーンの縦方向と横方向のうちの他方の方向である第２の方向に沿った第２の軸の前記水平面に対する傾斜を第２の傾斜として検知し、
前記位置選択手段は、第１の位置と、第２の位置と、第３の位置と、第４の位置とから、前記第１の傾斜と前記第２の傾斜とに基づいて前記タッチ操作領域が表示される位置を選択し、
前記第１の位置と前記第２の位置は、前記第１の方向において離れており、
前記第３の位置と前記第４の位置は、前記第１の方向において離れており、
前記第３の位置と前記第４の位置は、前記第１の位置と前記第２の位置とから前記第２の方向において離れている
請求項１に記載されるプログラム。
【請求項８】
電子機器に設けられてるタッチスクリーンの表示制御方法であって、
重力方向に対して垂直な水平面に対する前記電子機器の傾斜を、前記電子機器に搭載されたセンサの出力を利用して検知する姿勢検知ステップと、
前記タッチスクリーンに対するタッチ操作を受け付ける領域であるタッチ操作領域が表示される位置を選択する位置選択ステップと、
前記タッチスクリーンに前記タッチ操作領域を表示する表示制御ステップとを含み、
前記表示制御ステップにおいて前記タッチ操作領域を前記タッチスクリーンに表示する前に、前記姿勢検知ステップにおいて前記水平面に対する前記電子機器の傾斜を検知し、前記位置選択ステップにおいて、互いに離れている少なくとも２つの位置から、検知された前記電子機器の傾斜に基づいて、前記タッチ操作領域が表示される位置が選択される
表示制御方法。
【請求項９】
電子機器に搭載されている、表示装置とタッチセンサを有するタッチスクリーンと、
前記電子機器の姿勢に応じた信号を出力するセンサと、
前記タッチスクリーンに対するタッチ操作を受け付ける領域であるタッチ操作領域を前記タッチスクリーンに表示する制御装置と、を有し、
前記制御装置は、
重力方向に対して垂直な水平面に対する前記電子機器の傾斜を、前記電子機器に搭載されたセンサの出力を利用して検知する姿勢検知手段と、
前記タッチ操作領域が表示される位置を選択する位置選択手段と、
前記タッチ操作領域を前記タッチスクリーンに表示する表示制御手段とを含み、
前記表示制御手段によって前記タッチ操作領域を前記タッチスクリーンに表示する前に、前記姿勢検知手段は前記水平面に対する前記電子機器の傾斜を検知し、前記位置選択手段は、互いに離れている少なくとも２つの位置から、検知された前記電子機器の傾斜に基づいて、前記タッチ操作領域を表示する位置を選択する
表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、表示システム、表示制御方法、及びプログラムに関する。
【背景技術】
【０００２】
携帯電話機や、タブレット端末などの携帯電子機器の多くには、表示装置とタッチセンサとで構成されるタッチスクリーンが搭載されている。タッチスクリーンには、ユーザが選択可能な項目（メニュー）や、文字入力を受け付ける複数のキーなどのタッチ操作を受け付ける領域（以下において、タッチ操作領域と称する）が表示される。このような電子機器を、例えば左手だけで操作する場合、タッチスクリーンの右領域に表示されたタッチ操作領域に指が届きにくいことがある。下記特許文献１は、電子機器の傾斜に応じてタッチ操作領域（具体的には、アイコン）の位置を変更する技術を開示している。この技術によると、例えば左手で電子機器を操作する場合、基準姿勢から電子機器を傾けることで、タッチスクリーンの左領域にタッチ操作領域を表示でき、電子機器の操作（タッチ操作領域のタッチ）が容易となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１９７３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、タッチスクリーンが重力方向と平行となる姿勢が電子機器の基準姿勢として定められた例が示されている。ユーザは、基準姿勢にある電子機器を、タッチスクリーンと平行な面内で右又は左に傾斜させることによって、タッチ操作領域の位置を右側又は左側に変更できる。ところが、電子機器を片手で操作する場合、特に大型のタッチスクリーンを有する電子機器を片手で操作する場合、ユーザは、特許文献1で示される基準姿勢ではなく、電子機器を水平に近い姿勢にして手の上に配置することがある。この場合、特許文献１で開示される技術を適用することは難しい。
【０００５】
本開示の目的の一つは、タッチスクリーンを有する電子機器を片手で操作する場合に、ユーザの直感的な動作でタッチ操作領域を適切な位置に表示できる表示システム、表示制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本開示で提案する表示システムは、電子機器に搭載されている、表示装置とタッチセンサを有するタッチスクリーンと、前記電子機器の姿勢に応じた信号を出力するセンサと、前記タッチスクリーンに対するタッチ操作を受け付ける領域であるタッチ操作領域を前記タッチスクリーンに表示する制御装置と、を有する。前記制御装置は、重力方向に対して垂直な水平面に対する前記電子機器の傾斜を、前記電子機器に搭載されたセンサの出力を利用して検知する姿勢検知手段と、前記タッチ操作領域が表示される位置を選択する位置選択手段とを含む。記位置選択手段は、互いに離れている少なくとも２つの位置から、前記水平面に対する前記電子機器の傾斜に基づいて、前記タッチ操作領域が表示される位置を選択する。
【０００７】
本開示で提案する表示制御方法の一例は、電子機器に設けられているタッチスクリーンための表示制御方法であり、重力方向に対して垂直な水平面に対する前記電子機器の傾斜を、前記電子機器に搭載されたセンサの出力を利用して検知する姿勢検知ステップと、前記タッチスクリーンに対するタッチ操作を受け付ける領域であるタッチ操作領域が表示される位置を選択する位置選択ステップとを含む。前記位置選択ステップにおいて、互いに離れている少なくとも２つの位置から、前記水平面に対する前記電子機器の傾斜に基づいて、前記タッチ操作領域が表示される位置が選択される。
【０００８】
本開示で提案するプログラムの一例は、タッチスクリーンを有する電子機器に搭載されるコンピュータを、重力方向に対して垂直な水平面に対する前記電子機器の傾斜を、前記電子機器に搭載されたセンサの出力を利用して検知する姿勢検知手段と、前記タッチスクリーンに対するタッチ操作を受け付ける領域であるタッチ操作領域を表示する位置を選択する位置選択手段として機能させる。前記位置選択手段は、互いに離れている少なくとも２つの位置から、前記水平面に対する前記電子機器の傾斜に基づいて、前記タッチ操作領域を表示する位置を選択する。
【０００９】
本開示で提案する表示システム、表示制御方法、及びプログラムによると、電子機器を片手で操作する場合に、ユーザの直感的な動作でタッチ操作領域を適切な位置に表示できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る電子機器を含む表示システムの一例のハードウェア構成を示す図である。
【図２Ａ】電子機器を右手で操作する様子を示す図である。
【図２Ｂ】右手で操作される電子機器の姿勢を示す図である。
【図３】左手で操作される電子機器の姿勢を示す図である。
【図４Ａ】タッチ操作領域が表示される位置を説明するための図である。
【図４Ｂ】タッチ操作領域が表示される位置を説明するための図である。
【図５】タッチ操作領域の移動を説明するための図である。
【図６】制御部が有する機能を示すブロック図である。
【図７Ａ】制御部による電子機器の姿勢検知を説明するための図である。
【図７Ｂ】制御部による電子機器の姿勢検知を説明するための図である。
【図８】シェイク操作を検知する処理の例を説明するための図である。
【図９】タッチスクリーン上の位置と摩擦係数とを対応づけるマップの例を示す図である。
【図１０】制御部が実行する処理の例を示すフロー図である。
【図１１】図１０のフロー図のＳ１０１で示される、タッチ操作領域の位置を選択する処理の例を示すフロー図である。
【図１２】図１０のＳ１０４で示されるタッチ操作領域の移動に係る処理の例を示すフロー図である。
【図１３Ａ】電子機器が横向きで使用される場合におけるタッチ操作領域の位置を説明するための図である。
【図１３Ｂ】電子機器が横向きで使用される場合におけるタッチ操作領域の位置を説明するための図である。
【図１４Ａ】電子機器が逆さの状態で使用される場合におけるタッチ操作領域の位置を説明するための図である。
【図１４Ｂ】電子機器が逆さの状態で使用される場合におけるタッチ操作領域の位置を説明するための図である。
【図１５】タッチ操作領域の位置を変形例を説明するための図である。
【図１６】タッチ操作領域の位置をさらに別の変形例を説明するための図である。
【図１７】図１０のフロー図のＳ１０１で示される、タッチ操作領域の位置を選択する処理の変形例を示すフロー図である。
【図１８】位置更新処理において算出される速度を説明するための図である。
【図１９】タッチスクリーン上の位置と摩擦係数とを対応づけるマップの例を示す図である。
【図２０】図１０のＳ１０４で示されるタッチ操作領域の移動に係る処理の変形例を示すフロー図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態の例について説明する。本明細書では、実施形態の一例として、電子機器１０について説明する。電子機器１０は、携帯情報端末（タブレット型コンピュータを含む）や、携帯電話機（スマートフォンを含む）などである。
【００１２】
［ハードウェア構成］
図１は、電子機器１０のハードウェア構成を示す図である。同図で示すように、電子機器１０は、制御部１１、記憶部１２、タッチスクリーン１３、及び姿勢センサ群１４を有している。
【００１３】
制御部１１は、例えば、少なくとも１つのマイクロプロセッサを有している。制御部１１は、記憶部１２に保存されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。
【００１４】
タッチスクリーン１３は、表示部１３ａ及びタッチセンサ１３ｂを有している。表示部１３ａは、例えば、液晶表示部や、有機ＥＬ表示部などである。タッチセンサ１３ｂは、例えば抵抗膜方式のセンサや静電容量方式のセンサなどであり、タッチスクリーン１３に触れたユーザの指の位置に応じた信号を出力する。
【００１５】
姿勢センサ群１４は、電子機器１０の姿勢に応じた信号を出力するセンサを含む。姿勢センサ群１４は、例えば３軸加速度センサ１４Ａを有する。３軸加速度センサ１４Ａは、直交する３方向、具体的には、タッチスクリーン１３の縦方向、横方向、及び法線方向（図７Ａ参照）において電子機器１０に作用している加速度に応じた信号を出力する。センサ１４Ａからの信号は、ローパスフィルタを介して制御部１１に入力されてもよい。制御部１１は、加速度センサ１４Ａからの信号に基づいて３方向の加速度を検知し、例えば、その加速度から重力方向に対して直交する面（水平面）に対する電子機器１０の傾斜を検知する。
【００１６】
姿勢センサ群１４は、加速度センサ１４Ａに加えて、３軸ジャイロセンサ１４Ｂや、３軸磁気センサ１４Ｃを有してもよい。３軸ジャイロセンサ１４Ｂは、タッチスクリーン１３の縦軸Ａｙ（図７Ａ参照）を中心とする電子機器１０の角速度と、タッチスクリーン１３の横軸Ａｘ（図７Ａ参照）を中心とする電子機器１０の角速度と、タッチスクリーン１３の法線方向（図７Ａ参照）に沿った軸を中心とする電子機器１０の角速度に応じた信号を出力する。制御部１１は、これらの値を時間積分することにより、電子機器１０の傾斜（水平面に対する傾斜）を検知できる。３軸磁気センサ１４Ｃは、地磁気に応じた信号を出力する。制御部１１は、３軸磁気センサ１４Ｃの出力に基づいて、例えば、重力方向に対して直交する平面における電子機器１０の向きを検知できる。
【００１７】
電子機器１０は、有線通信又は無線通信用の通信インタフェースを含み、例えば、ネットワークを介してデータ通信を行う通信部１５を有している。制御部１１が実行するプログラムや、制御部１１が利用するデータは、サーバ装置１００（例えば、ＷＥＢサーバ装置）からネットワークを介して電子機器１０に供給されるようにしてもよい。
【００１８】
［電子機器の姿勢とタッチ操作領域］
タッチスクリーン１３には、ユーザのタッチ操作（選択操作）を受け付ける領域が表示される。本明細書において、この領域を「タッチ操作領域」と称する。タッチ操作領域には、例えば、ユーザが選択可能な１又は複数の選択候補が表示される。選択候補は、ユーザが選択可能な項目（メニュー）や、文字入力を受け付ける複数のキーなどである。選択候補は、タッチスクリーン１３に表示されるボタン（例えば、ページの「閉じ」を指示するボタン）や、特定の機能（プログラム）が対応づけられた画像（アイコン）であってもよい。
【００１９】
図２Ａは電子機器１０を右手で操作する様子を示す図である。図２Ｂは右手で操作される電子機器１０の姿勢を示す図である。図３は、左手で操作される電子機器１０の姿勢を示す図である。図４Ａ〜図４Ｄは、タッチ操作領域Ｍが表示される位置を示す図である。図５はタッチ操作領域Ｍの移動を説明するための図である。
【００２０】
ユーザが電子機器１０を片手で操作する場合、タッチ操作領域Ｍに親指を伸ばすことが求められる。ところが、例えば図２Ａで示されるように右手で電子機器１０を操作する場合、手のサイズや電子機器のサイズによっては、タッチスクリーン１３の左領域に表示されるタッチ操作領域Ｍに親指が届きにくいことがある。反対に左手で電子機器１０を操作する場合には、タッチスクリーン１３の右領域に表示されるタッチ操作領域Ｍに親指が届きにくいことがある。
【００２１】
また、ユーザは、片手で電子機器１０を操作する場合、電子機器１０の右側と左側とを手で保持するのではなく、電子機器１０の裏面を指で支えることがある。この場合、電子機器１０は、水平面ｈに対して傾斜した姿勢で、支えられることが多い。例えば、右手で電子機器１０を操作する場合、電子機器１０は、図２Ｂで示されるように、水平面ｈに対して右側が下がった姿勢で支えられる場合が多い。反対に左手で電子機器１０を操作する場合、図３で示されるように、ユーザは、左側が下がった姿勢で電子機器１０を支えることが多い。
【００２２】
そこで、電子機器１０においては、ユーザが右手で電子機器を操作していると推定される場合、具体的には、水平面ｈに対して電子機器１０の右側が下がった姿勢にある場合、タッチ操作領域Ｍは図４Ａで示されるようにタッチスクリーン１３に規定されている右位置に表示される。反対に、ユーザが左手で電子機器を操作していると推定される場合、具体的には、水平面ｈに対して電子機器１０の左側が下がった姿勢にある場合、タッチ操作領域Ｍは、図４Ｂで示されるようにタッチスクリーン１３に規定されている左位置に表示される。
【００２３】
また、電子機器１０では、タッチ操作領域Ｍの移動も許容されている。例えば、右位置に配置されているタッチ操作領域Ｍ（図５の（１））を、図５の（２）で示されるように左位置に向けて移動させることができる。また、電子機器１０では、右位置に配置されているタッチ操作領域Ｍ（図５の（１））を、図５の（３）で示されるように右位置と左位置との間の位置に移動させることができる。つまり、電子機器１０では、ユーザにとって望ましい任意の位置に向けて、タッチ操作領域Ｍをタッチスクリーン１３の横方向に移動させることができる。これによって、手のサイズやタッチスクリーン１３のサイズによらず、各ユーザにとって適した位置にタッチ操作領域を表示できる。なお、図５で示す例とは異なり、タッチ操作領域Ｍのサイズや初期位置によっては、タッチ操作領域Ｍを右位置から更に右方に移動したり、タッチ操作領域Ｍを左位置から更に左方に移動できてもよい。
【００２４】
タッチスクリーン１３には同時に複数のタッチ操作領域が表示されてもよい。この場合、全てのタッチ操作領域が、電子機器１０の姿勢に応じて右位置に表示されたり、左位置に表示されてよい。また、全てのタッチ操作領域がタッチスクリーン１３の横方向において移動可能であってもよい。これとは異なり、予め規定される一部のタッチ操作領域（例えば、使用頻度の高い領域）だけが電子機器１０の姿勢に応じて右位置（又は左位置）に表示されてよい。また、予め規定される一部のタッチ操作領域（例えば、使用頻度の高い領域）だけがタッチスクリーン１３の横方向において移動可能であってもよい。
【００２５】
[制御部で行う処理]
図６で示すように、制御部１１は、その機能として、姿勢検知部１１Ａと、操作検知部１１Ｂと、表示制御部１１Ｃと、位置選択部１１Ｄと、位置更新部１１Ｅとを有している。表示制御部１１Ｃは、位置選択部１１Ｄによって選択された位置や、位置更新部１１Ｅによって更新された位置にタッチ操作領域Ｍを表示する。各部の機能は、制御部１１を構成するマイクロプロセッサが、記憶部１２に格納されているプログラムを実行することによって実現される。
【００２６】
なお、電子機器１０がネットワークを介してデータ通信を行う通信部を有している場合、以降で説明する機能（処理）の一部は、電子機器１０がネットワークを介して接続されるサーバ装置１００において実行されてよい。この場合、電子機器１０とサーバ装置１００が、タッチスクリーン１３の表示を制御する表示システムを構成する。一方、以降で説明する機能（処理）の全てが電子機器１０において実行される場合、サーバ装置１００は表示システムの要素でなくてよい。
【００２７】
[姿勢検知部]
姿勢検知部１１Ａは、姿勢センサ群１４の出力を利用して電子機器１０の姿勢を検知する。より具体的には、姿勢検知部１１Ａは、重力方向に対して垂直な水平面に対する電子機器１０の傾斜を検知する。図７Ａ及び図７Ｂは、制御部１１による電子機器１０の傾斜検知を説明するための図である。姿勢検知部１１Ａは、水平面ｈに対する電子機器１０の傾斜として、例えば、水平面ｈに対する、タッチスクリーン１３の横軸Ａｘの傾斜を検知する。（横軸Ａｘは、タッチスクリーン１３の横方向に沿った軸である。
【００２８】
姿勢検知部１１Ａは、例えば、加速度センサ１４Ａの出力を利用する。例えば、姿勢検知部１１Ａは、加速度センサ１４Ａの出力に基づいて横方向の加速度Ｆｘ（図７Ｂ参照）を取得し、この加速度Ｆｘに基づいて、水平面ｈに対する横軸Ａｘの傾斜を表す値を取得する。横軸Ａｘの傾斜を表す値は、例えば、水平面ｈに対する横軸Ａｘに対する角度θｘ（図７Ｂ参照）である。これとは異なり、水平面ｈに対する横軸Ａｘの傾斜を表す値としては、重力方向に対するタッチスクリーン１３の横軸Ａｘの角度や、横方向の加速度Ｆｘ自体を利用できる。姿勢検知部１１Ａが利用するセンサは、加速度センサ１４Ａだけに限られず、例えばジャイロセンサ１４Ｂを利用してもよい。
【００２９】
なお、電子機器１０は、図４Ａ及び図４Ｂで示す姿勢（縦姿勢）ではなく、縦姿勢から９０度だけ回転した横姿勢（図１３Ａ及び図１３Ｂで示す姿勢）で使用されてもよい。この場合、タッチ操作領域Ｍの位置は、タッチスクリーン１３の縦方向において離れている２つの位置（上位置と下位置）とから選択される。この場合、姿勢検知部１１Ａは、加速度センサ１４Ａの出力に基づいて縦方向の加速度を取得し、この加速度に基づいて、水平面ｈに対する縦軸Ａｙの傾斜を表す値を取得する。縦軸Ａｙの傾斜を表す値は、例えば、水平面ｈに対する縦軸Ａｙに対する角度である。これとは異なり、水平面ｈに対する縦軸Ａｙの傾斜を表す値としては、重力方向に対するタッチスクリーン１３の縦軸Ａｙの角度や、縦方向の加速度自体を利用できる。
【００３０】
[位置選択部]
位置選択部１１Ｄは、互いに離れている少なくとも２つの位置から、水平面ｈに対する電子機器１０の傾斜に基づいて、タッチ操作領域Ｍを表示する位置を選択する。例えば、位置選択部１１Ｄは、横方向において離れている右位置と左位置とから、電子機器１０の傾斜に基づいて、タッチ操作領域Ｍを表示する位置を選択する。具体的には、位置選択部１１Ｄは、水平面ｈに対するタッチスクリーン１３の横軸Ａｘの傾斜に基づいて、タッチ操作領域Ｍが表示される位置を選択する。電子機器１０の傾斜によって左位置より右位置が低くなる場合、位置選択部１１Ｄは右位置を選択する。反対に、電子機器１０の傾斜によって右位置より左位置が低くなる場合、位置選択部１１Ｄは左位置を選択する。
【００３１】
水平面ｈに対する横軸Ａｘの傾斜を表す値として、位置選択部１１Ｄは、例えば、姿勢検知部１１Ａが算出する角度θｘ（水平面ｈに対するタッチスクリーン１３の横軸Ａｘの角度、図７Ｂ参照）を利用する。横軸Ａｘの角度θｘ（図７Ｂ参照）が正である場合、或いは、正の閾値より大きい場合に、位置選択部１１Ｄは、右位置と左位置のうちの一方（例えば、左位置）を選択する。反対に、横軸Ａｘの角度θｘが負である場合、又は負の閾値よりも小さい場合、位置選択部１１Ｄは右位置と左位置のうちの他方（例えば、右位置）を選択する。横軸Ａｘの傾斜を表す値として位置選択部１１Ｄが利用する値は、角度θｘではなく、横方向の加速度Ｆｘ自体でもよいし、タッチスクリーン１３の横軸Ａｘと重力方向との間の角度であってもよい。
【００３２】
図４Ａ及び図４Ｂで示されるように、右位置は、例えば、横方向におけるタッチスクリーン１３の中心を通り且つ縦方向に沿っている中心線Ｃ１の右側に規定される位置であり、左位置は中心線Ｃ１の左側に規定される位置である。タッチ操作領域Ｍは部分的に中心線Ｃ１に重なっていてもよい。図４Ａ及び図４Ｂの例とは異なり、右位置と左位置の双方が、中心線Ｃ１の右側（又は左側）に規定されてもよい。この場合、タッチ操作領域Ｍの位置は、中心線Ｃ１よりも右側（又は左側）の領域内で選択されることとなる。この場合でも、タッチ操作領域Ｍの位置が固定されている場合に比して、親指による操作性を向上できる。
【００３３】
表示制御部１１Ｃが複数のタッチ操作領域を選択的に表示する場合、複数のタッチ操作領域のそれぞれについて右位置と左位置とが予め規定されていてよい。この場合、第１のタッチ操作領域について規定された右位置（又は左位置の）と、第２のタッチ操作領域について規定された右位置（又は左位置）は、異なっていてよい。こうすることで、例えばタッチ操作領域のサイズや使用頻度に適した位置に、それらを表示できる。
【００３４】
位置選択部１１Ｄは、タッチスクリーン１３に対してなされた所定のタッチ操作に応じて検知された横軸Ａｘの傾斜に基づいて、タッチ操作領域Ｍを表示する位置を選択する。
【００３５】
このタッチ操作の一例は、上述した姿勢検知部１１Ａ及び位置選択部１１Ｄを実現するプログラム（以下において、本件アプリケーションソフトウェアと称する）の起動を、制御部１１のオペレーティングシステムに対して指示するタッチ操作である。例えば、本件アプリケーションソフトウェアに対応づけられたアイコンがタッチスクリーン１３に表示されている場合、このアイコンに対するタッチ操作が上述した所定のタッチ操作に該当する。この場合、本件アプリケーションソフトウェアの起動に応じて、姿勢検知部１１Ａが電子機器１０の傾斜（水平面ｈに対する横軸Ａｘの傾斜）を検知し、位置選択部１１Ｄは、この検知された傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択する。このような位置選択部１１Ｄによると、本件アプリケーションソフトウェアを起動した直後の画面（例えば、アプリケーションソフトウェアの初期画面）において、タッチ操作領域Ｍが電子機器１０の傾斜に応じた位置に表示されることとなる。このことによって、本件アプリケーションソフトウェアの使用開始時からユーザにとって好ましい位置にタッチ操作領域Ｍが表示されることとなり、本件アプリケーションソフトウェアの操作性を向上できる。
【００３６】
表示制御部１１Ｃは、第１画面と、タッチ操作領域Ｍを含む第２画面とを選択的に表示してよい。例えば、表示制御部１１Ｃは、第１画面の表示を終了した後に、第２画面を表示してよい。第１画面は、例えば本件アプリケーションソフトウェアの初期画面であり、第２画面は、例えば、初期画面の次に表示される画面である。タッチ操作領域Ｍの位置を選択する処理のきっかけとなる所定のタッチ操作は、第１画面から第２画面への変更を指示するタッチ操作であってもよい。すなわち、第１画面から第２画面への変更を指示するタッチ操作に応じて、姿勢検知部１１Ａが電子機器１０の傾斜（水平面ｈに対する横軸Ａｘの傾斜）を検知し、位置選択部１１Ｄは、この検知された傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択してよい。そして、表示制御部１１Ｃは、第２画面において選択された位置に、タッチ操作領域Ｍを表示してよい。この処理によれば、タッチ操作領域Ｍを表示する直前の電子機器１０の姿勢（傾斜）に基づいて、タッチ操作領域Ｍの位置が選択されることとなる。
【００３７】
電子機器１０がネットワークを介してサーバ装置１００に接続されている場合、姿勢検知部１１Ａと表示制御部１１Ｃは制御部１１に実装され、位置選択部１１Ｄはサーバ装置１００の制御装置に実装されてもよい。この場合、姿勢検知部１１Ａが算出する電子機器１０の傾斜がサーバ装置１００に送信され、位置選択部１１Ｄは受信した電子機器１０の傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択してよい。その後、サーバ装置１００はその選択された位置の情報を電子機器１０に送信し、表示制御部１１Ｃは、選択された位置にタッチ操作領域Ｍを表示してよい。
【００３８】
さらに他の例として、電子機器１０がネットワークを介してサーバ装置１００に接続されている場合、表示制御部１１Ｃは制御部１１に実装され、姿勢検知部１１Ａと位置選択部１１Ｄはサーバ装置１００の制御装置に実装されてもよい。この場合、電子機器１０の制御部１１は姿勢センサ群１４の出力をサーバ装置１００に送信し、姿勢検知部１１Ａは受信した姿勢センサ群１４の出力に基づいて電子機器１０の傾斜を算出し、位置選択部１１Ｄは算出された電子機器１０の傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択してよい。その後、サーバ装置１００はその選択された位置の情報を電子機器１０に送信し、表示制御部１１Ｃは、選択された位置にタッチ操作領域Ｍを表示してよい。
【００３９】
電子機器１０がネットワークを介してサーバ装置１００に接続されている場合、制御部１１はそのサーバ装置１００に対して第１画面のデータと、タッチ操作領域Ｍを含む第２画面のデータとを要求してもよい。制御部１１のこのような処理は、制御部１１に実装されているＷｅｂブラウザによって実現され得る。サーバ装置１００は、第１画面のデータと第２画面のデータとに加えて、姿勢検知部１１Ａのプログラムと位置選択部１１Ｄのプログラムと表示制御部１１Ｃのプログラムとを電子機器１０に送信してもよい。第１画面のデータと第２画面のデータは、例えば、ＨＴＭＬ（HyperText Markup Language）で記述されたデータである。姿勢検知部１１Ａのプログラムと位置選択部１１Ｄのプログラムと表示制御部１１Ｃのプログラムは、例えば、JavaScript（登録商標）で記述される。制御部１１は受信したプログラムを実行して姿勢検知部１１Ａと位置選択部１１Ｄと表示制御部１１Ｃとして機能する。すなわち、制御部１１は、姿勢センサ群１４の出力に基づいて電子機器１０の傾斜を算出し、位置選択部１１Ｄは算出された電子機器１０の傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択してよい。そして、表示制御部１１Ｃは、第２画面において選択された位置に、タッチ操作領域Ｍを表示してよい。
【００４０】
さらに他の例として、制御部１１がサーバ装置１００に対して第１画面のデータと、タッチ操作領域Ｍを含む第２画面のデータとを要求したときに、サーバ装置１００は、例えば、ＨＴＭＬ（HyperText Markup Language）で記述される第１画面のデータと第２画面のデータとに加えて、例えばJavaScriptで記述される姿勢検知部１１Ａのプログラムと表示制御部１１Ｃのプログラムとを電子機器１０に送信してもよい。一方、位置選択部１１Ｄはサーバ装置１００の制御装置に実装されてもよい。この場合、姿勢検知部１１Ａが算出する電子機器１０の傾斜がサーバ装置１００に送信され、位置選択部１１Ｄは受信した電子機器１０の傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択する。その後、サーバ装置１００はその選択された位置の情報を電子機器１０に送信し、表示制御部１１Ｃは、選択された位置にタッチ操作領域Ｍを有する第２画面を表示してよい。
【００４１】
さらに他の例として、制御部１１がサーバ装置１００に対して第１画面のデータと、タッチ操作領域Ｍを含む第２画面のデータとを要求したときに、サーバ装置１００は、例えば、ＨＴＭＬ（HyperText Markup Language）で記述される第１画面のデータと第２画面のデータとに加えて、例えばJavaScriptで記述される表示制御部１１Ｃのプログラムを電子機器１０に送信してもよい。一方、姿勢検知部１１Ａと位置選択部１１Ｄはサーバ装置１００の制御装置に実装されてもよい。この場合、電子機器１０の制御部１１は姿勢センサ群１４の出力をサーバ装置１００に送信し、姿勢検知部１１Ａは受信した姿勢センサ群１４の出力に基づいて電子機器１０の傾斜を算出し、位置選択部１１Ｄは算出された電子機器１０の傾斜に基づいてタッチ操作領域Ｍを表示する位置を選択してよい。その後、サーバ装置１００はその選択された位置の情報を電子機器１０に送信し、表示制御部１１Ｃは、選択された位置にタッチ操作領域Ｍを有する第２画面を表示してよい。
【００４２】
[操作検知部]
操作検知部１１Ｂは、タッチ操作領域Ｍの移動のきっかけとなる操作、言い換えると、タッチ操作領域Ｍの位置の固定解除のきかっけとなる操作を検知する。電子機器１０において、操作検知部１１Ｂが検知する操作は、シェイク操作である。シェイク操作は、例えば電子機器１０を所定の方向に振る動作である。所定の方向は例えば、タッチスクリーン１３の横方向である。この場合、操作検知部１１Ｂは、加速度センサ１４Ａの出力によって、タッチスクリーン１３の横方向に作用する加速度を検知し、この加速度に基づいてシェイク操作を検知する。
【００４３】
図８は、シェイク操作を検知する処理の例を説明するための図である。ユーザがシェイク操作をすると、電子機器１０に作用する加速度は、同図で示すように上昇と下降とを繰り返す。操作検知部１１Ｂは、加速度センサ１４Ａによって検知される加速度の時系列変化に基づいて単位シェイク操作を検知する。そして、単位シェイク操作の回数が所定の期間（判定期間Ｔ）内に２以上の閾値に達したときに、操作検知部１１Ｂはシェイク操作がなされたと判断する。
【００４４】
単位シェイク操作は、例えば、所定の期間（単位判定期間Ｔｕ）内で発生する、閾値よりも大きな揺れである（単位判定期間Ｔｕ＜判定期間Ｔ）。操作検知部１１Ｂは、例えば、加速度の時系列変化に基づいて単位判定期間Ｔｕ内での極小Ｐｍｉｎ及び／又は極大Ｐｍａｘを検知し、極小Ｐｍｉｎ及び／又は極大Ｐｍａｘを利用して電子機器１０の揺れを判断する。例えば、極小Ｐｍｉｎと極大Ｐｍａｘとの差ΔＦｓが閾値よりも大きい場合に、操作検知部１１Ｂはその揺れを単位シェイク操作と判断する。他の例として、極小Ｐｍｉｎが負の閾値よりも小さく、極大Ｐｍａｘが正の閾値よりも大きい場合に、操作検知部１１Ｂは単位シェイク操作が生じたと判断してもよい。
【００４５】
操作検知部１１Ｂが利用する加速度は、必ずしもタッチスクリーン１３の横方向に作用する加速度でなくてもよい。例えば、操作検知部１１Ｂはタッチスクリーン１３の縦方向に作用する加速度を検知し、この加速度に基づいてシェイク操作を検知してもよい。この場合でも、操作検知部１１Ｂは、縦方向の加速度の時系列変化に基づいて、単位シェイク操作を検知し、単位シェイク操作の回数が判定期間Ｔ内に２以上の閾値に達したときに、操作検知部１１Ｂはシェイク操作がなされたと判断してよい。
【００４６】
[位置更新部]
位置更新部１１Ｅは、シェイク操作が検知された場合に、図５で例示されるようにタッチスクリーン１３に表示されているタッチ操作領域Ｍの位置を電子機器１０の姿勢に応じた方向に移動する。これによると、片手だけの簡単な操作でユーザが望む方向にタッチ操作領域Ｍの位置を動かすことができる。
【００４７】
電子機器１０の姿勢とは、例えば姿勢検知部１１Ａによって検知される電子機器１０の傾斜、すなわち、水平面ｈに対するタッチスクリーン１３の横軸Ａｘの傾斜である。したがって、位置更新部１１Ｅは、水平面ｈに対する横軸Ａｘの傾斜に応じた方向に、タッチ操作領域Ｍを移動する。ユーザが電子機器１０の右側を下げると、位置更新部１１Ｅは、タッチ操作領域Ｍを右方に移動し、ユーザが電子機器１０の左側を下げると、位置更新部１１Ｅは、タッチ操作領域Ｍを左方に移動する。
【００４８】
位置更新部１１Ｅは、タッチ操作領域Ｍを表示する位置を更新する処理を、所定の周期（例えば、タッチスクリーン１３の表示を更新する周期）で繰り返し実行する。位置更新部１１Ｅは、タッチ操作領域Ｍの現在の位置と、タッチ操作領域Ｍの速度とに基づいて、タッチ操作領域Ｍの次回の位置を算出する。以下では、現在の位置から次回の位置を算出する１回の処理を「位置更新処理」と称する。このような位置更新処理を繰り返し実行することによって、タッチスクリーン１３に表示されているタッチ操作領域Ｍは、右方又は左方に徐々に移動することとなる。
【００４９】
位置更新部１１Ｅは、水平面ｈに対する電子機器１０の傾斜（具体的には、水平面ｈに対する横軸Ａｘの傾斜）に基づいて、タッチ操作領域Ｍの速度を算出してよい。例えば、電子機器１０の傾斜が大きくなるに従って、タッチ操作領域Ｍの速度は高くなってもよい。こうすることで、下り坂を転がる物のようにタッチ操作領域Ｍが移動するので、本件アプリケーションソフトウェアの直感的な操作性を向上できる。タッチ操作領域Ｍの速度は、繰り返し実行される位置更新処理のそれぞれにおいて検知される電子機器１０の傾斜に基づいて、算出されてよい。こうすることで、タッチ操作領域Ｍの移動中に電子機器１０の傾斜が変わると、それに応じてタッチ操作領域Ｍの速度も変わる。
【００５０】
位置更新部１１Ｅは、タッチスクリーン１３に規定される擬似的な摩擦に基づいて、タッチ操作領域Ｍの速度を算出してもよい。ここで「摩擦」とは、例えば、タッチ操作領域Ｍの速度を下げる方向に作用する加速度であり、タッチ操作領域Ｍの移動に対する抵抗として機能する。位置更新部１１Ｅは、タッチスクリーン１３に規定される摩擦と、電子機器１０の傾斜（具体的には、水平面ｈに対する横軸Ａｘの傾斜）とに基づいて、タッチ操作領域Ｍの速度を算出してよい。こうすれば、ユーザは、例えば電子機器１０の傾斜を小さくすることで、タッチ操作領域の移動に対する抵抗を相対的に大きくでき、タッチ操作領域Ｍの速度を下げることができるので、望む位置にタッチ操作領域Ｍを止めることができる。
【００５１】
タッチスクリーン１３には、摩擦を得るための擬似的な摩擦係数が規定されていてもよい。摩擦、摩擦係数、及びタッチ操作領域の加速度は、例えば次式で表される。
摩擦＝Ｇ×ｃｏｓ（θｘ）×μ
加速度＝Ｇ×ｓｉｎ（θｘ）−Ｇ×ｃｏｓ（θｘ）×μ
ここで「Ｇ」は重力加速度であり、「θｘ」は水平面ｈに対する横軸Ａｘの角度であり、「μ」は摩擦係数である。位置更新部１１Ｅは、この加速度を利用して、タッチ操作領域Ｍの速度を算出できる。
【００５２】
摩擦或いは摩擦係数は、タッチスクリーン１３上の位置（座標）に応じて決められてもよい。例えば、位置更新部１１Ｅは、摩擦又は摩擦係数とタッチスクリーン１３上の位置（座標）とを対応づけるマップを参照し、タッチ操作領域Ｍの現在の位置に対応する摩擦又は摩擦係数を取得してよい。そして、位置更新部１１Ｅは、取得した摩擦又は摩擦係数と電子機器１０の傾斜とに基づいてタッチ操作領域Ｍの速度を算出してよい。このようなマップは記憶部１２に格納される。このような処理によると、タッチ操作領域Ｍの速度は、タッチ操作領域Ｍが表示されている位置（座標）に依拠することとなる。その結果、例えば、タッチ操作領域Ｍの位置として適した位置では、摩擦又は摩擦係数を高くすることで、タッチ操作領域Ｍの速度を低くでき、その位置にタッチ操作領域Ｍが止まりやすくなる。例えば、タッチ操作領域Ｍが右位置から左方に移動する場合、タッチ操作領域Ｍが左位置に近づくに従って、タッチ操作領域Ｍの速度を低くできる。
【００５３】
図９は、このようなマップの例を示す図である。右位置と左位置とに対応する領域Ｅ２では相対的に高い摩擦係数が規定され、その他の領域Ｅ１では相対的に低い摩擦係数が規定されている。このような摩擦係数によると、タッチ操作領域Ｍが右位置又は左位置に近づくに従って、タッチ操作領域Ｍの速度が低くなる。また、領域Ｅ１においても摩擦係数が設定されているので、ユーザは、タッチ操作領域Ｍの移動中に電子機器１０の傾斜を調整することによって、右位置と左位置との間の位置にタッチ操作領域Ｍを止めることができる。領域Ｅ１に規定されている摩擦係数は０であってもよい。
【００５４】
位置更新部１１Ｅの処理は、ここで説明する例に限られない。例えば、タッチスクリーン１３に規定される摩擦係数は、図９で示す例とは異なり、タッチスクリーン１３上に位置（座標）に応じて連続的に変化してもよい。
【００５５】
さらに他の例では、摩擦係数は、タッチスクリーン１３の全域において均一でもよい。この場合、位置更新部１１Ｅは、図９で例示するマップを参照することなく、一定の摩擦係数と電子機器１０の傾斜とに基づいて、タッチ操作領域Ｍの速度を算出してよい。
【００５６】
また、表示制御部１１Ｃが複数のタッチ操作領域や複数の画面を表示する場合、複数のタッチ操作領域及び／又は複数の画面のそれぞれについて、摩擦係数（又は、摩擦係数を規定するマップ）が設けられてよい。
【００５７】
さらに他の例では、タッチ操作領域Ｍの速度は、タッチスクリーン１３上の位置に依らず、一定であってもよい。この場合、位置更新部１１Ｅは、タッチ操作領域Ｍが右位置又は左位置に達したときに、タッチ操作領域Ｍの移動を停止してもよい。これによると、位置更新部１１Ｅが実行する処理を簡単化できる。
【００５８】
［位置更新処理の終了］
位置更新部１１Ｅは、予め定められた停止条件が成立したときに、位置更新処理を終了し、タッチ操作領域Ｍを停止する。停止条件の一例は、タッチ操作領域Ｍの速度が閾値より低くなることである。停止条件の他の例は、タッチ操作領域Ｍが右位置又は左位置に達することである。
【００５９】
位置更新部１１Ｅは、停止条件が成立したときにタッチ操作領域Ｍを停止し、そのときのタッチ操作領域Ｍの位置を記憶部１２に記録する。位置選択部１１Ｄは、次回にタッチ操作領域Ｍを表示するときや、新たなタッチ操作領域を表示するときに、それらを記憶部１２に格納した位置に表示する。こうすることによって、タッチ操作領域を移動する作業が必要となる頻度を低減できる。
【００６０】
通常状態において（言い換えると、シェイク操作が検知される前において）、タッチ操作領域Ｍの位置は定位置に固定されている。シェイク操作が検知されると、タッチ操作領域Ｍの位置の固定が解除され、タッチ操作領域Ｍの移動が許容される。停止条件が成立すると、シェイク操作が再び検知されるまで、タッチ操作領域Ｍの位置は移動後の位置に固定される。
【００６１】
[処理のフロー]
図１０は、制御部１１が実行する処理の例を説明するためのフロー図である。この処理は、本件アプリケーションソフトウェアの起動指示が制御部１１のオペレーティングシステムに対してなされたときに開始する。
【００６２】
本件アプリケーションソフトウェアの起動指示がなされると、位置選択部１１Ｄが、タッチ操作領域Ｍを表示する位置についての選択処理を実行する（Ｓ１０１）。この選択処理によって、タッチスクリーン１３の右位置と左位置とから、電子機器１０の傾斜（水平面ｈに対するタッチスクリーン１３の横軸Ａｘの傾斜）に応じた位置が選択される。選択処理の詳細は、後において図１１を参照しながら詳説する。タッチ操作領域Ｍの位置が選択されると、表示制御部１１Ｃは、本件アプリケーションソフトウェアの初期画面において選択された位置に、タッチ操作領域Ｍを表示する（Ｓ１０２）。
【００６３】
次に、操作検知部１１Ｂはシェイク操作がなされたか否かを判断する（Ｓ１０３）。上述したように、操作検知部１１Ｂは、加速度センサ１４Ａの出力によって検知される加速度の時系列変化に基づいて単位シェイク操作を検知し、その単位シェイク操作の回数が２以上の閾値に達したときに、シェイク操作がなされた判断する。シェイク操作がなされた場合、位置更新部１１Ｅは、電子機器１０の傾斜に応じた方向にタッチ操作領域Ｍを移動する（Ｓ１０４）。タッチ操作領域Ｍの移動に係る処理は、後において図１３を参照しながら詳説する。タッチ操作領域Ｍの移動が完了すると、位置更新部１１Ｅは、移動後の位置を記憶部１２に記憶させる（Ｓ１０５）。
【００６４】
次に、表示制御部１１Ｃは、表示すべき新たなタッチ操作領域があるか否かを判断する（Ｓ１０６）。表示すべき新たなタッチ操作領域がある場合、表示制御部１１Ｃは、記憶部１２に記憶させた位置に、その新たなタッチ操作領域を表示する（Ｓ１０７）。
【００６５】
制御部１１は、本件アプリケーションソフトウェアの終了指示を受けたか否かを判断する（Ｓ１０８）。この終了指示を受けた場合、制御部１１は本件アプリケーションソフトウェアによる処理を終了する。一方、終了指示を未だ受けていない場合、制御部１１はＳ１０３に戻り、以降の処理を再び実行する。
【００６６】
また、Ｓ１０３の処理において、シェイク操作がなされていない場合には、タッチ操作領域Ｍの移動に係るＳ１０４及びＳ１０５の処理を実行することなく、Ｓ１０６の処理を実行する。また、Ｓ１０６において、新たなタッチ操作領域がない場合には、Ｓ１０７の処理を行うことなく、本件アプリケーションソフトウェアの終了指示が生じたか否かを判断する（Ｓ１０８）。
【００６７】
図１１は、図１０のフロー図におけるＳ１０１で示される、タッチ操作領域Ｍを表示する位置についての選択処理の例を示すフロー図である。
【００６８】
姿勢検知部１１Ａは、加速度センサ１４Ａの出力を取得し（Ｓ２０１）、加速度センサ１４Ａの出力に基づいて、水平面ｈに対するタッチスクリーン１３の横軸Ａｘの傾斜を検知する（Ｓ２０２）。姿勢検知部１１Ａは、横軸Ａｘの傾斜を表す値として、例えば、水平面ｈと横軸Ａｘとの間の角度θｘ（図７Ｂ参照）を、横方向の加速度Ｆｘ（図７Ｂ参照）と重力加速度とに基づいて算出する。
【００６９】
位置選択部１１Ｄは、横軸Ａｘの傾斜を表す値と閾値とを比較する。例えば、位置選択部１１Ｄは、まず、角度θｘが正の閾値Ｔｈ（＋）より大きいか否かを判断する（Ｓ２０３）。ここで、角度θｘが閾値Ｔｈ（＋）よりも大きい場合、位置選択部１１Ｄは、右位置と左位置のうちの一方（例えば、左位置）を、タッチ操作領域Ｍを表示する位置として選択する（Ｓ２０４）。一方、角度θｘが閾値Ｔｈ（＋）よりも大きくない場合、位置選択部１１Ｄは、角度θｘが負の閾値Ｔｈ（−）よりも小さいか否かを判断する（Ｓ２０５）。ここで、角度θｘが閾値Ｔｈ（−）よりも小さい場合、位置選択部１１Ｄは、右位置と左位置のうちの他方（例えば、右位置）を、タッチ操作領域Ｍを表示する位置として選択する（Ｓ２０６）。一方、角度θｘが閾値Ｔｈ（−）よりも小さくない場合、すなわち、角度θｘの絶対値が閾値Ｔｈよりも小さい場合、位置選択部１１Ｄは、タッチ操作領域Ｍを表示する位置として予め定められた位置を選択する（Ｓ２０７）。
【００７０】
予め定められた位置は、例えば、右位置であってよい。一般的に、右利きのユーザが多いので、予め定められた位置として右位置を設定することによって、多くのユーザにとって望ましい位置にタッチ操作領域Ｍが表示されることとなる。予め定められた位置の他の例は右位置と左位置との間の位置であってもよい。予め定められた位置は、本件アプリケーションソフトウェアの前回の動作において、タッチ操作領域が表示される位置として、記憶部１２に最後に記録された位置であってもよい。
【００７１】
Ｓ２０４、Ｓ２０６、及びＳ２０７の処理においてタッチ操作領域を表示する位置が選択されると、位置選択部１１Ｄは選択した位置を記憶部１２に記録する（Ｓ２０８）。これにより、制御部１１の処理は、図１０で示すＳ１０２に戻る。
【００７２】
なお、タッチスクリーン１３の横軸Ａｘの傾斜を表す値は、必ずしも角度θｘでなくてもよい。この値は、例えば、タッチスクリーン１３の横方向に作用する加速度Ｆｘ自体であってもよい。この場合、位置選択部１１Ｄは、Ｓ２０３において加速度Ｆｘと正の閾値とを比較し、Ｓ２０５において加速度Ｆｘと負の閾値とを比較してよい。さらに他の例として、タッチスクリーン１３の横軸Ａｘの傾斜を表す値として、横軸Ａｘと重力方向との角度が利用されてもよい。この場合、横軸Ａｘと重力方向との角度が閾値（閾値＜π／２）より小さい場合、位置選択部１１Ｄは、右位置と左位置のうちの一方を選択し、横軸Ａｘと重力方向との角度が閾値（閾値＞π／２）より大きい場合、位置選択部１１Ｄは、右位置と左位置のうちの他方を選択してよい。
【００７３】
図１２は、図１０のＳ１０４で示されるタッチ操作領域Ｍの移動に係る処理の例を示すフロー図である。図１１のＳ３０１からＳ３０７で示される処理（位置更新処理）は、Ｓ３０８において停止条件が成立したと判断されるまで、所定の周期Ｔｃで繰り返し実行される。また、以下の説明において、（ｉ−１）、（ｉ）、（ｉ＋１）は、これらが付されている速度Ｖや加速度ａが算出された位置更新処理を表す。例えば、速度Ｖ（ｉ−１）は前回の位置更新処理で算出された速度Ｖであり、速度Ｖ（ｉ）は今回の位置更新処理で算出された速度Ｖである。
【００７４】
図１０で示すＳ１０３においてシェイク操作が検知されると、位置更新部１１Ｅは、図９で例示するマップを参照し、タッチ操作領域Ｍの現在の位置Ｘ（ｉ）での摩擦係数μ（ｉ）を取得する（Ｓ３０１）。また、位置更新部１１Ｅは、加速度センサ１４Ａの出力を取得し（Ｓ３０２）、その出力に基づいて、タッチスクリーン１３の横軸Ａｘと水平面ｈとの角度θｘを算出する（Ｓ３０３）。位置更新部１１Ｅは、角度θｘと摩擦係数μ（ｉ）とに基づいてタッチ操作領域Ｍの加速度ａ（ｉ）を算出する（Ｓ３０４）。加速度ａ（ｉ）は、例えば、次の式から算出され得る。
ａ（ｉ）＝Ｇ×ｓｉｎ（θｘ）−Ｇ×ｃｏｓ（θｘ）×μ（ｉ）    ・・・式（１）
ここで「Ｇ」は重力加速度である。
【００７５】
また、位置更新部１１Ｅは、タッチ操作領域Ｍの速度Ｖ（ｉ）を算出する（Ｓ３０５）。速度Ｖ（ｉ）は、例えば、前回の位置更新処理（前回のＳ３０４）で算出された加速度ａ（ｉ−１）と、周期Ｔｃと、前回の位置更新処理（前回のＳ３０５）で算出された速度Ｖ（ｉ−１）とに基づいて算出され得る。速度Ｖ（ｉ）は、例えば、次の式から算出され得る。
Ｖ（ｉ）＝Ｖ（ｉ−１）＋ａ（ｉ−１）×Ｔｃ    ・・・式（２）
【００７６】
位置更新部１１Ｅは、現在の位置Ｘ（ｉ）と速度Ｖ（ｉ）とに基づいて、次にタッチ操作領域Ｍを表示すべき位置Ｘ（ｉ＋１）を算出する（Ｓ３０６）。位置更新部１１Ｅは、現在の位置Ｘ（ｉ）と速度Ｖ（ｉ）と加速度ａ（ｉ）とに基づいて、次にタッチ操作領域Ｍを表示すべき位置Ｘ（ｉ＋１）を算出してもよい。位置Ｘ（ｉ＋１）は、例えば、次の式から算出され得る。
Ｘ（ｉ＋１）＝Ｘ（ｉ）＋Ｖ（ｉ）×Ｔｃ＋［ａ（ｉ）＾２］／２    ・・・式（３）
【００７７】
位置更新部１１Ｅは、位置Ｘ（ｉ＋１）にタッチ操作領域Ｍを表示する（Ｓ３０７）。そして、位置更新部１１Ｅは、予め定めた停止条件が成立したか否かを判断する（Ｓ３０８）。停止条件は、例えば、タッチ操作領域Ｍの速度Ｖ（ｉ）が閾値より低くなることである。停止条件の他の例は、タッチ操作領域Ｍが右位置又は左位置に達することである。停止条件が未だ成立していない場合、位置更新部１１Ｅは、算出した位置Ｘ（ｉ＋１）を現在の位置Ｘ（ｉ）とし、算出した速度Ｖ（ｉ）を前回の速度Ｖ（ｉ−１）とし、算出した加速度ａ（ｉ）を前回の加速度ａ（ｉ−１）とした上で（Ｓ３０９）、Ｓ３０１に戻り、以降の処理を再び実行する。
【００７８】
一方、Ｓ３０８において停止条件が成立している場合には、位置更新部１１Ｅは位置更新処理を終了し、図１１のフロー図で示した処理（Ｓ１０５）に戻る。
【００７９】
［第２の例］
なお、電子機器１０は、図４Ａ及び図４Ｂで示す姿勢（縦姿勢）だけでなく、図１３Ａ及び図１３Ｂで示す姿勢（縦姿勢から９０度だけ回転した姿勢）で使用されてもよい。この場合、タッチ操作領域Ｍの位置は、これらの図で示すように、タッチスクリーン１３の縦方向において離れている２つの位置（右上位置と右下位置）とから選択されてもよい。
【００８０】
電子機器１０は、図１４Ａ及び図１４Ｂで示すように、電子機器１０の上下が逆さになる姿勢（逆姿勢）で使用されてもよい。このとき、タッチスクリーン１３に表示される画面（文字や画像）は逆さに表示されてよい。すなわち、タッチスクリーン１３に表示される画面の向きは電子機器１０に対してロックされていてよい。このような場合でも、タッチ操作領域Ｍはユーザの手に近い位置に表示されるとよい。すなわち、電子機器１０が順姿勢にあるときにタッチスクリーン１３の下部に表示されるタッチ操作領域（図４Ａ及び図４Ｂで例示されるタッチ操作領域Ｍ）の位置は、電子機器１０が逆姿勢にある場合、図１４Ａ及び図１４Ｂで示すように、タッチスクリーン１３の右上位置と左上位置とから選択されるとよい。
【００８１】
さらに他の例として、電子機器１０が図１５で示す縦姿勢で使用されている場合においても、電子機器１０の傾斜に応じた斜め方向（左上方向や左下方向など）で離れている２つの位置からタッチ操作領域Ｍは選択されてよいし、タッチ操作領域Ｍは電子機器１０の傾斜に応じた斜め方向で移動可能であってよい。図１５において、符号Ｍｐで表される破線の領域は、タッチ操作領域Ｍの候補位置である。
【００８２】
さらに他の例として、電子機器１０が縦姿勢で使用されている場合においても、２つよりも多くの位置からタッチ操作領域Ｍは選択されてよい。例えば、図１６で示すように、タッチスクリーン１３の右側の領域Ｍａと左側の領域Ｍｂのうち電子機器１０の傾斜に応じた領域が選択され、さらにその選択された領域のなかで、電子機器１０の傾斜に応じた縦方向での位置に、タッチ操作領域Ｍは表示されてよい。
【００８３】
図１３Ａ、図１３Ｂ、図１４Ａ、図１４Ｂ、図１５、図１６で示す表示や、上述したタッチ操作領域Ｍの斜め方向での移動を可能とするために制御部１１が実行する処理の例を、第２の例として説明する。以下では、これまで説明した制御部１１の処理とは異なる点を中心にして説明する。第２の例による制御部１１の処理について説明のない事項には、図３乃至図１２を参照しながら説明した事項が適用されてよい。
【００８４】
［姿勢検知部］
姿勢検知部１１Ａ（図６参照）は、電子機器１０の傾斜として、例えば、水平面ｈに対するタッチスクリーン１３の横軸Ａｘの傾斜に加えて、水平面ｈに対するタッチスクリーン１３の縦軸Ａｙ（図７Ａ参照）の傾斜を検知する。（縦軸Ａｙは、タッチスクリーン１３の縦方向に沿った軸である。）
【００８５】
姿勢検知部１１Ａは、例えば、加速度センサ１４Ａの出力によって検知される縦方向の加速度に基づいて、縦軸Ａｙの傾斜を表す値を取得する。この値は、横軸Ａｘの傾斜を表す値と同様に、水平面ｈに対する縦軸Ａｙに対する角度でもよいし、重力方向に対する縦軸Ａｙの角度でもよいし、縦方向の加速度でもよい。
【００８６】
［位置選択部］
位置選択部１１Ｄ（図６参照）は、例えば、タッチスクリーン１３に規定されている４つの位置（具体的には、右上位置、右下位置、左上位置、及び左下位置）から、水平面ｈに対する横軸Ａｘの傾斜と水平面ｈに対する縦軸Ａｙの傾斜とに基づいて、タッチ操作領域Ｍを表示する位置を選択する。右上位置と左上位置は、それぞれ右下位置と左下位置から縦方向における上側に離れた位置である。右上位置と右下位置は、それぞれ左上位置と左下位置から右方に離れた位置である。
【００８７】
右上位置は、図１３Ａ、図１４Ａで例示するように、例えば、縦方向に沿っている中心線Ｃ１の右側に規定され、且つ横方向に沿っている中心線Ｃ２の上側に規定される位置である。右下位置は、図１５で示されるように、例えば、縦方向に沿っている中心線Ｃ１の右側に規定され、且つ横方向に沿っている中心線Ｃ２の下側に規定される位置である。左上位置は、図１５で示されるように、例えば、縦方向に沿っている中心線Ｃ１の左側に規定され、且つ横方向に沿っている中心線Ｃ２の上側に規定される位置である。左下位置は、例えば、縦方向に沿っている中心線Ｃ１の左側に規定され、且つ横方向に沿っている中心線Ｃ２の下側に規定される位置である。タッチ操作領域Ｍは、中心線Ｃ１及び／又は中心線Ｃ２に、部分的に重なっていてもよい。
【００８８】
なお、これら４つの位置は、ここで説明した例に限られない。右上位置、右下位置、左上位置、及び左下位置の全てが中心線Ｃ１の右側（又は左側）に規定されてもよい。この場合、タッチ操作領域Ｍの位置は、中心線Ｃ１よりも右側（又は左側）の領域内で選択されることとなる。同様に、右上位置、左上位置、右下位置、及び左下位置の全てが中心線Ｃ２の上側（又は下側）に規定されてもよい。この場合、タッチ操作領域Ｍの位置は、中心線Ｃ２よりも上側（又は下側）の領域内で選択されることとなる。これらの場合でも、タッチ操作領域Ｍの位置が固定されている場合に比して、親指による操作性を向上できる。
【００８９】
電子機器１０の傾斜によって、その左側（左上位置及び左下位置）より右側（右上位置及び右下位置）が低くなり、右下位置よりも右上位置が低くなる場合、位置選択部１１Ｄは、タッチ操作領域Ｍを表示する位置として、右上位置を選択する。つまり、横方向と縦方向とにおいて水平面ｈに対する４つの位置の高さを比較したときに、横方向と縦方向の双方において他の３つの位置よりも低くなる位置を、位置選択部１１Ｄはタッチ操作領域Ｍを表示する位置として選択する。
【００９０】
他の例として、位置選択部１１Ｄ（図６参照）は、図１６で示されるように、タッチスクリーン１３の右側の領域Ｍａと左側の領域Ｍｂのうち、水平面ｈに対する横軸Ａｘの傾斜に応じた領域を選択し、さらにその選択された領域のなかで、水平面ｈに対する横軸Ａｙの傾斜に応じた縦方向での位置を選択してもよい。
【００９１】
図１７は、図１０のフロー図におけるＳ１０１で示される、タッチ操作領域Ｍを表示する位置についての選択処理の変形例を示すフロー図である。ここでは、４つの位置（右上位置、左上位置、右下位置、及び左下位置）から、タッチ操作領域Ｍを表示する位置を選択する例について説明する。
【００９２】
姿勢検知部１１Ａは、加速度センサ１４Ａの出力を取得し（Ｓ４０１）、加速度センサ１４Ａの出力に基づいて、水平面ｈに対する横軸Ａｘの傾斜と、水平面ｈに対する縦軸Ａｙの傾斜とを検知する（Ｓ４０２）。具体的には、姿勢検知部１１Ａは、水平面ｈに対する横軸Ａｘの傾斜を表す値として、例えば水平面ｈと横軸Ａｘとの間の角度θｘ（図７Ｂ参照）を算出し、水平面ｈに対する縦軸Ａｙの傾斜を表す値として、例えば水平面ｈと縦軸Ａｙとの間の角度θｙを算出する。
【００９３】
次に、位置選択部１１Ｄは、角度θｘが正の閾値Ｔｈ（＋）より大きいか否かを判断する（Ｓ４０３）。ここで、角度θｘが閾値Ｔｈ（＋）よりも大きい場合、位置選択部１１Ｄは、例えば、タッチ操作領域Ｍを表示する位置の候補として、右側の２つの位置と左側の２つの位置のうち一方（例えば、左上位置と左下位置）を選択する（Ｓ４０４）。一方、角度θｘが閾値Ｔｈ（＋）よりも大きくない場合、位置選択部１１Ｄは、角度θｘが負の閾値Ｔｈ（−）よりも小さいか否かを判断する（Ｓ４０５）。ここで、角度θｘが閾値Ｔｈ（−）よりも小さい場合、位置選択部１１Ｄは、タッチ操作領域Ｍを表示する位置の候補として、右側の２つの位置と左側の２つの位置のうち他方（例えば、右上位置と右下位置）を選択する（Ｓ４０６）。角度θｘが閾値Ｔｈ（−）よりも小さくない場合、すなわち、角度θｘの絶対値が閾値Ｔｈよりも小さい場合、位置選択部１１Ｄは、タッチ操作領域Ｍを表示する位置の候補として、予め定められた２つの位置を選択する（Ｓ４０７）。
【００９４】
予め定められた２つの候補は、例えば、右上位置と右下位置であってよい。一般的に、右利きのユーザが多いので、予め定められた候補として右上位置と右下位置とを選択することによって、多くのユーザにとって望ましい位置にタッチ操作領域Ｍが表示されることとなる。予め定められた候補の他の例は、右上位置と左上位置との間の位置と、右下位置と左下位置との間の位置であってもよい。
【００９５】
次に、位置選択部１１Ｄは、算出した角度θｙが正の閾値Ｔｈ（＋）より大きいか否かを判断する（Ｓ４０８）。ここで、角度θｙが閾値Ｔｈ（＋）よりも大きい場合、位置選択部１１Ｄは、例えば、上述した処理（Ｓ４０４、Ｓ４０６、Ｓ４０７）においてタッチ操作領域Ｍを表示する位置の候補として選択された２つの位置のなかから、下側の位置と上側の位置のうちの一方（例えば、下側に規定される右下位置又は左下位置）を選択する（Ｓ４０９）。一方、角度θｙが閾値Ｔｈ（＋）よりも大きくない場合、位置選択部１１Ｄは、角度θｙが負の閾値Ｔｈ（−）よりも小さいか否かを判断する（Ｓ４１０）。角度θｙが閾値Ｔｈ（−）よりも小さい場合、位置選択部１１Ｄは、例えば、上述した処理（Ｓ４０４、Ｓ４０６、Ｓ４０７）においてタッチ操作領域Ｍを表示する位置の候補として選択された２つの位置のなかから、下側の位置と上側の位置のうちの他方（例えば、上側に規定される右上位置又は左上位置）を選択する（Ｓ４１１）。一方、角度θｙが閾値Ｔｈ（−）よりも小さくない場合、すなわち、角度θｙの絶対値が閾値Ｔｈよりも小さい場合、位置選択部１１Ｄは、タッチ操作領域Ｍを表示する位置の候補として、予め定められた位置を選択する（Ｓ４１２）。
【００９６】
予め定められた位置は、例えば、タッチ操作領域Ｍを表示する位置の候補として選択された２つの位置のうち下側の位置である。例えば、タッチ操作領域Ｍを表示する位置の候補として右上位置と右下位置とが選択されている場合、Ｓ４１２においては、右下位置が選択される。他の例として、タッチ操作領域Ｍを表示する位置の候補として、右上位置と左上位置との間の位置と、右下位置と左下位置との間の位置が選択されている場合には、Ｓ４１２においては右下位置と左下位置との間の位置が選択されてよい。
【００９７】
Ｓ４０９、Ｓ４１１、及びＳ４１２の処理においてタッチ操作領域を表示する位置が選択されると、位置選択部１１Ｄは選択した位置を記憶部１２に記憶させる（Ｓ４１３）。
【００９８】
制御部１１が実行する処理は、図１７で示す例に限られない。例えば、タッチスクリーン１３の横軸Ａｘの傾斜を表す値は、必ずしも角度θｘでなくてもよい。この値は、例えば、タッチスクリーン１３の横方向に作用する加速度Ｆｘ自体であってもよい。この場合、位置選択部１１Ｄは、Ｓ４０３、Ｓ４０５において加速度Ｆｘと閾値とを比較してよい。同様に、縦軸Ａｙの傾斜を表す値は、必ずしも角度θｙでなくてもよい。この値は、例えば、タッチスクリーン１３の縦方向に作用する加速度自体であってもよい。この場合、位置選択部１１Ｄは、Ｓ４０８、Ｓ４１０において縦方向の加速度と閾値とを比較してよい。さらに他の例として、タッチスクリーン１３の横軸Ａｘの傾斜を表す値として、横軸Ａｘと重力方向との角度が利用されてもよい。また、タッチスクリーン１３の縦軸Ａｙの傾斜を表す値として、縦軸Ａｙと重力方向との角度が利用されてもよい。
【００９９】
また、タッチ操作領域Ｍを表示する位置の候補として、右側又は左側の２つの位置を選択する処理（Ｓ４０４、Ｓ４０６、Ｓ４０７）に代えて、横軸Ａｘの傾斜と閾値とを比較する処理（Ｓ４０３及びＳ４０５）に続けて、縦軸Ａｙの傾斜と閾値とを比較する処理（Ｓ４０８及びＳ４１０）が実行されてもよい。
【０１００】
［位置更新部］
この第２の例においても、タッチ操作領域Ｍは、シェイク操作をきっかけとして移動可能であってよい。すなわち、タッチ操作領域Ｍは、現在これが表示されている位置（例えば、右下位置）から、電子機器１０の傾斜に応じた方向に移動可能であってよい。この場合、位置更新部１１Ｅは、所定の周期Ｔｃで繰り返し実行する位置更新処理を、タッチスクリーン１３の横方向と縦方向のそれぞれについて実行してよい。
【０１０１】
図１８は、第２の例による位置更新処理において算出される速度を説明するための図である。この図で示すように、位置更新部１１Ｅは、１回の位置更新処理において、タッチスクリーン１３の横方向におけるタッチ操作領域Ｍの速度Ｖｘと、横方向における現在の位置（座標Ｘ（ｉ））とに基づいて、横方向における次回の位置（座標Ｘ（ｉ＋１））を算出してよい。また、位置更新部１１Ｅは、１回の位置更新処理において、タッチスクリーン１３の縦方向におけるタッチ操作領域Ｍの速度Ｖｙと、縦方向における現在の位置（座標Ｙ（ｉ））とに基づいて、縦方向における次回の位置（座標Ｙ（ｉ＋１））を算出してよい。このような位置更新処理によって、タッチスクリーン１３に表示されているタッチ操作領域Ｍを、現在これが表示されている位置から、電子機器１０の傾斜に応じた任意の方向に動かすことができる。
【０１０２】
タッチ操作領域Ｍの速度Ｖｘ、Ｖｙのそれぞれは、姿勢検知部１１Ａによって検知される電子機器１０の傾斜に依拠してよい。例えば、位置更新部１１Ｅは、水平面ｈに対する横軸Ａｘの傾斜に基づいて横方向の速度Ｖｘを算出し、水平面ｈに対する縦軸Ａｙの傾斜に基づいて縦方向の速度Ｖｙを算出してもよい。こうすることで、下り坂を転がる物のようにタッチ操作領域Ｍが移動するので、本件アプリケーションソフトウェアの直感的な操作性を向上できる。
【０１０３】
位置更新部１１Ｅは、タッチスクリーン１３に規定される擬似的な摩擦に基づいて、タッチ操作領域Ｍの速度Ｖｘ、Ｖｙを算出してもよい。より具体的には、位置更新部１１Ｅは、水平面ｈに対する横軸Ａｘの傾斜と摩擦とに基づいて、タッチ操作領域Ｍの速度Ｖｘを算出し、水平面ｈに対する縦軸Ａｙの傾斜とに基づいて摩擦と、タッチ操作領域Ｍの速度Ｖｘを算出してよい。こうすれば、ユーザは、例えば電子機器１０の傾斜を小さくすることで、タッチ操作領域の移動に対する抵抗を相対的に大きくでき、タッチ操作領域Ｍの速度を下げることができるので、横方向及び縦方向のいずれについても、ユーザが望む位置（座標）にタッチ操作領域Ｍを止めることができる。
【０１０４】
タッチスクリーン１３には、摩擦を得るための擬似的な摩擦係数が規定されていてもよい。摩擦、及び摩擦係数は、例えば次式で表される。
横方向の摩擦＝Ｇ×ｃｏｓ（θｘ）×μ    ・・・式（４ａ）
縦方向の摩擦＝Ｇ×ｃｏｓ（θｙ）×μ    ・・・式（４ｂ）
ここで「Ｇ」は重力加速度であり、「θｘ」は水平面ｈに対する横軸Ａｘの角度であり、「θｙ」は水平面ｈに対する横軸Ａｘの角度であり、「μ」は摩擦係数である。
【０１０５】
摩擦或いは摩擦係数は、タッチスクリーン１３上の位置（座標）に応じて決められてもよい。例えば、位置更新部１１Ｅは、摩擦又は摩擦係数とタッチスクリーン１３上の位置（座標）とを対応づけるマップを参照し、タッチ操作領域Ｍの現在の位置に対応する摩擦又は摩擦係数を取得してよい。そして、位置更新部１１Ｅは、取得した摩擦又は摩擦係数と電子機器１０の傾斜とに基づいてタッチ操作領域Ｍの速度Ｖｘ、Ｖｙを算出してよい。
【０１０６】
図１９は、このようなマップの例を示す図である。タッチ操作領域Ｍが表示され得る４つの位置に対応する領域Ｅ２では相対的に高い摩擦係数が規定され、その他の領域Ｅ１では相対的に低い摩擦係数が規定されている。このような摩擦係数によると、タッチ操作領域Ｍが右上位置、右下位置、左上位置、又は左下位置に近づくに従って、タッチ操作領域Ｍの速度が低くなる。また、領域Ｅ１においても摩擦係数が設定されているので、ユーザは、タッチ操作領域Ｍの移動中に電子機器１０の傾斜を調整することによって、これら４つの位置の間の任意の位置にタッチ操作領域Ｍを止めることができる。領域Ｅ１に規定されている摩擦係数は０であってもよい。
【０１０７】
図２０は、図１０のＳ１０４で示される、タッチ操作領域Ｍの移動に係る処理の変形例を示すフロー図である。図２０で示す処理は、タッチスクリーン１３の縦方向の位置、速度、及び加速度を算出する点で図１２のフロー図で示す処理とは相違し、その他の点では同じである。
【０１０８】
シェイク操作が検知されると、位置更新部１１Ｅは、図１９で例示するマップを参照し、タッチ操作領域Ｍの現在の位置（Ｘ（ｉ）、Ｙ（ｉ））での摩擦係数μ（ｉ）を取得する（Ｓ５０１）。また、位置更新部１１Ｅは、加速度センサ１４Ａの出力を取得し（Ｓ５０２）、その出力に基づいて、タッチスクリーン１３の横軸Ａｘと水平面ｈとの角度θｘと、縦軸Ａｙと水平面ｈとの角度θｙとを算出する（Ｓ５０３）。位置更新部１１Ｅは、角度θｘと摩擦係数μ（ｉ）とに基づいてタッチ操作領域Ｍの加速度ａｘ（ｉ）を算出し、角度θｙと摩擦係数μ（ｉ）とに基づいてタッチ操作領域Ｍの加速度ａｙ（ｉ）を算出する（Ｓ５０４）。加速度ａｘ（ｉ）、ａｙ（ｉ）の算出には、例えば次式を利用できる。
ａｘ（ｉ）＝Ｇ×ｓｉｎ（θｘ）−Ｇ×ｃｏｓ（θｘ）×μ（ｉ）    ・・・式（５ａ）
ａｙ（ｉ）＝Ｇ×ｓｉｎ（θｙ）−Ｇ×ｃｏｓ（θｙ）×μ（ｉ）    ・・・式（５ｂ）
【０１０９】
また、位置更新部１１Ｅは、タッチ操作領域Ｍの速度Ｖｘ（ｉ）、Ｖｙ（ｉ）を算出する（Ｓ５０５）。速度Ｖｘ（ｉ）は、例えば、前回の位置更新処理（前回のＳ５０４）で算出された加速度ａｘ（ｉ−１）と、周期Ｔｃと、前回の位置更新処理（前回のＳ５０５）で算出された速度Ｖｘ（ｉ−１）とに基づいて算出され得る。同様に、速度Ｖｙ（ｉ）は、例えば、前回の位置更新処理（前回のＳ５０４）で算出された加速度ａｙ（ｉ−１）と、周期Ｔｃと、前回の位置更新処理（前回のＳ５０５）で算出された速度Ｖｙ（ｉ−１）とに基づいて算出され得る。速度Ｖｘ（ｉ）、Ｖｙ（ｉ）の算出には、例えば次式を利用できる。
Ｖｘ（ｉ）＝Ｖｘ（ｉ−１）＋ａｘ（ｉ−１）×Ｔｃ    ・・・式（６ａ）
Ｖｙ（ｉ）＝Ｖｙ（ｉ−１）＋ａｙ（ｉ−１）×Ｔｃ    ・・・式（６ｂ）
【０１１０】
位置更新部１１Ｅは、横方向における現在の位置Ｘ（ｉ）と速度Ｖｘ（ｉ）とに基づいて、次にタッチ操作領域Ｍを表示すべき位置Ｘ（ｉ＋１）を算出し、縦方向における現在の位置Ｙ（ｉ）と速度Ｖｙ（ｉ）とに基づいて、次にタッチ操作領域Ｍを表示すべき位置Ｙ（ｉ＋１）を算出する（Ｓ５０６）。次の位置（Ｘ（ｉ＋１）・Ｙ（ｉ＋１））の算出には、例えば次式を利用できる。
Ｘ（ｉ＋１）＝Ｘ（ｉ）＋Ｖｘ（ｉ）×Ｔｃ＋［ａｘ（ｉ）＾２］／２    ・・・式（７ａ）
Ｙ（ｉ＋１）＝Ｙ（ｉ）＋Ｖｙ（ｉ）×Ｔｃ＋［ａｙ（ｉ）＾２］／２    ・・・式（７ｂ）
このように、Ｓ５０５の処理とＳ５０６の処理とによって、横方向におけるタッチ操作領域Ｍの速度及び位置を算出し、縦方向におけるタッチ操作領域Ｍの速度及び位置を算出するので、タッチスクリーン１３に沿った斜め方向（例えば、左上方向や左下方向など）にタッチ操作領域Ｍを移動させることができる。
【０１１１】
位置更新部１１Ｅは、位置（Ｘ（ｉ＋１）、Ｙ（ｉ＋１））にタッチ操作領域Ｍを表示する（Ｓ５０７）。そして、位置更新部１１Ｅは、予め定めた停止条件が成立したか否かを判断する（Ｓ５０８）。ここで、停止条件は、例えば、タッチ操作領域Ｍの速度Ｖｘ（ｉ）・Ｖｙ（ｉ）のそれぞれが閾値より低くなることである。停止条件の他の例は、タッチ操作領域Ｍが右下位置、左下位置、右上位置、左上位置のいずれかに達することである。
【０１１２】
停止条件が未だ成立していない場合、位置更新部１１Ｅは、算出した位置（Ｘ（ｉ＋１）、Ｙ（ｉ＋１））を現在の位置（Ｘ（ｉ）、Ｙ（ｉ））とし、算出した速度Ｖｘ（ｉ）、Ｖｙ（ｉ）を前回の速度Ｖｘ（ｉ−１）、Ｖｙ（ｉ−１）とし、算出した加速度ａｘ（ｉ）、ａｙ（ｉ）を前回の加速度ａ（ｉ−１）、ａｙ（ｉ−１）とした上で（Ｓ５０９）、Ｓ５０１に戻り、以降の処理を再び実行する。一方、Ｓ５０８において停止条件が成立している場合には、位置更新部１１Ｅは位置更新処理を終了し、図１０のフロー図で示した処理（Ｓ１０５）に戻る。
【０１１３】
なお、水平面ｈに対する横軸Ａｘの傾斜は、上述したように、横軸Ａｘの方向において電子機器１０に作用する加速度で表されてもよい。また、水平面ｈに対する縦軸Ａｙの傾斜は、上述したように、縦軸Ａｙの方向において電子機器１０に作用する加速度で表されてもよい。この場合、タッチ操作領域Ｍの加速度ａｘ（ｉ）・ａｙ（ｉ）は、電子機器１０に作用する加速度で算出されてもよい。例えば、式（５ａ）及び式（５ｂ）に替えて以下の式が利用されてもよい。
ａｘ（ｉ）＝Ｇｘ−ｋｘ×μ（ｉ）    ・・・式（８ａ）
ａｙ（ｉ）＝Ｇｙ−ｋｙ×μ（ｉ）    ・・・式（８ｂ）
式（８ａ）と式（８ｂ）とにおいて、ＧｘとＧｙは、それぞれ、横方向において電子機器１０に作用する加速度と、縦方向において電子機器１０に作用する加速度である。係数ｋｘと係数ｋｙは、加速度Ｇｘ・Ｇｙが大きくなるに従って小さくなる値である。したがって、加速度Ｇｘ・Ｇｙが小さくなるに従って、摩擦係数μ（ｉ）の影響が相対的に大きくなり、タッチ操作領域Ｍの加速度ａｘ（ｉ）・ａｙ（ｉ）は小さくなる。タッチ操作領域Ｍの速度や位置の算出には、上述した式（６ａ）〜式（７ｂ）が利用されてよい。
【０１１４】
[まとめ]
以上説明したように、制御部１１は、その機能として、重力方向に対して垂直な水平面ｈに対する電子機器１０の傾斜を、電子機器１０に搭載されたセンサ１４Ａの出力を利用して検知する姿勢検知部１１Ａと、タッチスクリーン１３に対するタッチ操作を受け付ける領域であるタッチ操作領域Ｍを表示する位置を選択する位置選択部１１Ｄとを有している。位置選択部１１Ｄは、タッチスクリーン１３の横方向において離れている右位置と左位置とから、水平面ｈに対する横軸Ａｘの傾斜に基づいて、タッチ操作領域Ｍを表示する位置を選択する。これによると、電子機器１０を片手で操作する場合に、ユーザの直感的な動作でタッチ操作領域Ｍを適切な位置に表示できる。
【０１１５】
以上説明したように、制御部１１は、その機能として、電子機器１０に対してなされたシェイク操作を検知する操作検知部１１Ｂと、電子機器１０の姿勢を検知する姿勢検知部１１Ａと、タッチスクリーン１３に対するタッチ操作を受け付ける領域であってタッチスクリーン１３に表示されているタッチ操作領域Ｍを、シェイク操作が検知された場合に、電子機器１０の姿勢に応じた方向に移動する位置更新部１１Ｅとを有している。これによると、片手だけで可能な簡単な操作でユーザが望む方向にタッチ操作領域を移動できる。
【０１１６】
[変形例]
なお、本開示で提案する電子機器、プログラム、及び電子機器の制御方法は、これまで説明した電子機器１０で実現されている例に限られない。
【０１１７】
例えば、位置選択部１１Ｄを有する制御部１１において、位置更新部１１Ｅは設けられていなくてもよい。反対に、位置更新部１１Ｅを有する制御部１１において、位置選択部１１Ｄは設けられていなくてもよい。この場合、タッチ操作領域Ｍは、最初は予め規定された位置（例えば、右位置、右下位置、右上位置）に表示されてよい。
【０１１８】
また、位置選択部１１Ｄの処理において、水平面ｈに対する軸Ａｘ、Ａｙの傾斜と比較する閾値は必ずしも利用されていなくてもよい。この場合、例えば、水平面ｈに対する軸Ａｘ、Ａｙの傾斜を表す値の符号（＋と−）とに応じて、タッチ操作領域Ｍを表示する位置が選択されてよい。
【０１１９】
また、摩擦や、摩擦係数、電子機器１０の傾斜を利用してタッチ操作領域Ｍの速度を算出する処理は、シェイク操作を検知しない電子機器において実行されてもよい。すなわち、摩擦や、摩擦係数、電子機器１０の傾斜を利用してタッチ操作領域Ｍの速度を算出する処理は、シェイク操作とは独立して実行されてもよい。
【符号の説明】
【０１２０】
１０  電子機器、１１  制御部、１１Ａ  姿勢検知部、１１Ｂ  操作検知部、１１Ｃ  表示制御部、１１Ｄ  位置選択部、１１Ｅ  位置更新部、１２  記憶部、１３  タッチスクリーン、１３ａ  表示部、１３ｂ  タッチセンサ、１４  姿勢センサ群、１４Ａ  加速度センサ、１４Ｂ  ジャイロセンサ、１４Ｃ  磁気センサ、Ａｘ  タッチスクリーンの横軸、Ａｙ  タッチスクリーンの縦軸、Ｃ１・Ｃ２  中心線、Ｅ１・Ｅ２  摩擦係数が規定されている領域。
【図１】
0006945608.tif 000002
【図２Ａ】
0006945608.tif 000003
【図２Ｂ】
0006945608.tif 000004
【図３】
0006945608.tif 000005
【図４Ａ】
0006945608.tif 000006
【図４Ｂ】
0006945608.tif 000007
【図５】
0006945608.tif 000008
【図６】
0006945608.tif 000009
【図７Ａ】
0006945608.tif 000010
【図７Ｂ】
0006945608.tif 000011
【図８】
0006945608.tif 000012
【図９】
0006945608.tif 000013
【図１０】
0006945608.tif 000014
【図１１】
0006945608.tif 000015
【図１２】
0006945608.tif 000016
【図１３Ａ】
0006945608.tif 000017
【図１３Ｂ】
0006945608.tif 000018
【図１４Ａ】
0006945608.tif 000019
【図１４Ｂ】
0006945608.tif 000020
【図１５】
0006945608.tif 000021
【図１６】
0006945608.tif 000022
【図１７】
0006945608.tif 000023
【図１８】
0006945608.tif 000024
【図１９】
0006945608.tif 000025
【図２０】
0006945608.tif 000026