上述のように、拡張現実環境は、物理的空間のビューを提供し、ユーザが物理的空間及びその中の物理的オブジェクトに対する測定を重ね合わせることを可能にすることによって、物理的空間及びその中のオブジェクトの測定を行うために有用である。拡張現実環境を用いて測定する従来の方法は、多くの場合、機能性が制限される。いくつかの場合では、従来の方法は、意図された結果を達成するために(例えば異なる測定機能にアクセスするために多くの表示されたユーザインタフェース要素の作動を介する)、複数の別個の入力(例えば、ジェスチャ及びボタン押下などのシーケンス)を必要とする。本明細書に開示される実施形態は、(例えば、ユーザがより少ない入力で拡張現実環境内で異なる動作を実行することを可能にすることによって、及び/又はユーザインタフェースを単純化することによって)拡張現実環境で測定を行うための直感的な方法を提供する。加えて、本明細書の実施形態は、測定されている物理的オブジェクトについて、及び拡張現実環境において実行されている動作について、ユーザに追加情報を提供する、改善された視覚的及び触覚フィードバックを提供する。
本明細書に記載するシステム、方法、及びGUIは、複数の方法で仮想/拡張現実環境とのユーザインタフェース相互作用を改善する。例えば、物理的空間内の特徴の自動検出、改善されたラベリング、及び位置合わせガイド(例えば、改善された測定点配置及びエリア認識のため)を提供すること、及びユーザが測定情報と相互作用し、これを管理することを可能にすることによって、拡張現実環境を使用して物理的空間内の特徴を測定することをより容易にする。
以下、図1A~図1B、図2、及び図3A~3Cは、例示的なデバイスの説明を提供する。図4A~図4B及び図5A~図5COは、拡張現実環境を使用して物理的空間の測定を行うための例示的な状況及び例示的なユーザインタフェースを示す。図6A~図6Cは、拡張現実環境を使用して物理的空間の測定を行うためのアプリケーションと相互作用する方法のフロー図を示す。図7A~図7Eは、拡張現実環境内の物理的空間の表示された表現に測定を追加する方法のフロー図を示す。図8A~図8Cは、拡張現実環境内の自動的に決定されたアンカー点に仮想測定点を追加する方法のフロー図を示す。図9A~図9Bは、拡張現実環境内の物理的空間の測定のためのラベルを表示する方法のフロー図を示す。図10A~図10Bは、拡張現実環境内の物理的空間内の矩形エリアを測定し、このエリアと相互作用する方法のフロー図を示す。図11A~図11Bは、拡張現実環境内で測定情報と相互作用し、管理する方法のフロー図を示す。図12A~図12Cは、拡張現実環境内に自動的に決定された位置合わせガイドを提供する方法のフロー図を示す。図13A~図13Cは、拡張現実環境内で以前に追加された仮想アノテーションを自動的に除去するためのプロセスのフロー図である。図14A~図14Dは、物理的空間内のオブジェクトが、拡張現実環境内の対応する表現が追跡され得るオブジェクトとして識別されたかどうかを示すプロセスのフロー図である。図5A~図5COのユーザインタフェースを使用して、図6A~図6C、図7A~図7E、図8A~図8C、図9A~図9B、図10A~図10B、図11A~図11B、図12A~図12C、図13A~図13C及び図14A~図14Dのプロセスを示す。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態への詳細な参照が行われる。以下の詳細な説明では、説明される様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、記載されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭にしないよう詳細には説明されていない。
本明細書では、第1、第2などの用語は、いくつかの実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1の接触は、第2の接触と称することができ、同様に、第2の接触は、第1の接触と称し得る。第1の接触及び第2の接触は両方とも接触であるが、文脈がそうではないことを明確に示さない限り、それらは同じ接触ではない。
本明細書に記載する様々な実施形態の説明で使用される術語は、特定の実施形態を説明することのみを目的とし、限定的であることは意図されていない。記載する様々な実施形態の説明及び添付の特許請求の範囲では、単数形の「a(1つ、一)」、「an(1つ、一)」、及び「the(その、この)」は、文脈上別途明白に記載しない限り、複数形も同様に含むことが意図される。また、本明細書で使用されるとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上のいずれか及び全ての考えられる組み合わせを指し、かつこれを含むことを理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」、及び/又は「comprising(含む、備える)」は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
本明細書に記載される場合、用語「if(~の場合)」は、任意選択で、文脈に依存して「when(~のとき)」、「upon(~すると)」、「in response to determining(~と判定したことに応じて)」、又は「in response to detecting(~を検出したことに応じて)」を意味するものと解釈される。同様に、「~と判定された場合(if it is determined)」又は「[記載の状態又はイベント]が検出された場合(if[a stated condition or event]is detected)」という語句は、任意選択的に、文脈に応じて、「~と判定したとき(upon determining)」若しくは「~と判定したことに応じて(in response to determining)」、又は「[記載の状態又はイベント]を検出したとき(upon detecting[the stated condition or event])」若しくは「[記載の状態又はイベント]を検出したことに応じて(in response to detecting[the stated condition or event])」を意味すると解釈される。
仮想/拡張現実のためのコンピュータシステムは、仮想/拡張現実環境を生成する電子デバイスを含む。電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用する関連するプロセスの実施形態が説明される。いくつかの実施形態では、デバイスは、PDA機能及び/又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、Cupertino、CaliforniaのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含むが、これらに限定されない。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有するラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスが任意選択で使用される。いくつかの実施形態では、デバイスは、ポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有し、1つ以上のカメラも含む又はそれと通信している、デスクトップコンピュータであることも理解されたい。
以下の説明では、ディスプレイ及びタッチ感知面を有する(かつ/又はそれらと通信している)電子デバイスを含むコンピュータシステムを説明する。しかしながら、コンピュータシステムは、物理キーボード、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラなどの、1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
デバイスは、典型的には、ゲームアプリケーション、メモ取りアプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション、及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの、様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイスによって表示される対応する情報は、アプリケーションごとに、及び/又はそれぞれのアプリケーション内で、任意選択的に、調整及び/又は変更される。このように、デバイスの共通の物理アーキテクチャ(タッチ感知面など)は、任意選択的に、ユーザにとって直観的かつ透明なユーザインタフェースを備える様々なアプリケーションをサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム112を有するポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイシステム112は、便宜上「タッチスクリーン」と呼ばれる場合があり、単にタッチ感知ディスプレイと呼ばれる場合もある。デバイス100は、メモリ102(任意選択で、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、音声回路110、スピーカー111、マイクロフォン113、入出力(I/O)サブシステム106、その他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、(例えば、1つ以上のカメラの一部として)1つ以上の光学センサ164を任意選択的に含む。デバイス100は任意選択で、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出する1つ以上の強度センサ165を含む。デバイス100は、任意選択で、デバイス100上で触知出力を生成するための(例えばデバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などのタッチ感知面上に触知出力を生成する)1つ以上の触知出力生成器163を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン103を介して通信する。
本明細書及び特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。触知出力を使用して触覚フィードバックをユーザに提供することで、デバイスの操作性が向上し、ユーザデバイスインタフェースがより効率的になり(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)、加えて、ユーザがデバイスをより迅速かつ効率的に使用することを可能にすることによって、電力使用を低減させ、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、触知出力パターンは、触知出力の振幅、触知出力の動き波形の形状、触知出力の周波数、及び/又は触知出力の持続時間などの触知出力の特性を指定する。
異なる触知出力パターンを有する触知出力がデバイスによって生成されると(例えば、触知出力を生成するために可動質量を移動させる1つ以上の触知出力生成器を介して)、触知出力は、ユーザがデバイスを保持又はタッチする際に異なる触覚感覚を引き起こし得る。ユーザの感覚は、触知出力のユーザの知覚に基づいているとき、ほとんどのユーザは、デバイスによって生成される触知出力の波形、周波数、及び振幅の変化を識別することが可能である。したがって、波形、周波数、及び振幅を調整して、異なる動作が実行されたことをユーザに示すことができる。したがって、いくつかの状況では、所与の環境(例えば、グラフィカル特徴及びオブジェクトを含むユーザインタフェース、仮想の境界及び仮想のオブジェクトを有するシミュレートされた物理的環境、物理的な境界及び物理的な物体を有する実際の物理的環境、並びに/又は上記の任意の組合せ)において、物体の特性(例えば、サイズ、材料、重量、剛性、平滑度、など)、挙動(例えば、振動、変位、加速、回転、膨張など)、及び/又は相互作用(例えば、衝突、粘着、反発、吸引、摩擦など)をシミュレートするように設計、選択、及び/又は開発された触知出力パターンを有する触知出力は、入力エラーを低減させ、デバイスのユーザの動作の効率を増大させる有用なフィードバックをユーザに提供する。加えて、触知出力は、任意選択的に、入力閾値又はオブジェクトの選択などのシミュレートされた物理的特性に関係ないフィードバックに対応するように生成される。いくつかの状況では、そのような触知出力は、入力エラーを低減させ、デバイスのユーザの動作の効率を増大させる有用なフィードバックをユーザに提供する。
いくつかの実施形態では、適した触知出力パターンを有する触知出力は、ユーザインタフェース内又はデバイス内のシーンの後ろにおける対象イベントの出現に対する合図として働く。対象となるイベントの例は、デバイス上又はユーザインタフェース内で提供されるアフォーダンス(例えば、実ボタン、仮想ボタン、又はトグルスイッチ)のアクティブ化、要求された動作の成功又は失敗、ユーザインタフェース内の境界に到達すること又は超えること、新たな状態に入ること、オブジェクト間の入力の焦点を切り替えること、新たなモードのアクティブ化、入力閾値に到達すること又は超えること、入力又はジェスチャのタイプの検出又は認識などを含む。一部の実施形態では、触知出力は、リダイレクション又は中断入力が時宜を得て検出されない限り発生する、近いうち起こるイベント又は結果に対する警告又はアラートしての役割を果たすように提供される。触知出力はまた、他の文脈で、ユーザエクスペリエンスの向上、視覚若しくは運動の障害又は他のアクセシビリティに関する必要を有するユーザに対するデバイスのアクセシビリティの改善、並びに/あるいはユーザインタフェース及び/又はデバイスの効率及び機能性の改善のために使用される。触知出力は、任意選択的に、オーディオ出力及び/又は可視のユーザインタフェースの変化を伴い、ユーザがユーザインタフェース及び/又はデバイスと対話するときのユーザのエクスペリエンスを更に向上させ、ユーザインタフェース及び/又はデバイスの状態に関する情報のより良好な伝達を容易にし、入力エラーを低減させ、デバイスのユーザの動作の効率を増大させる。
図4F~図4Hは、1つ以上の変換(例えば、変調、増幅、トランケーションなど)のいずれか、又はそれらを介して、個別に又は組み合わせて使用できるサンプル触知出力パターンのセットを提供して、本明細書で論じたユーザインタフェース及び方法に関して上記で言及したもの、又は説明したものなどの、様々なシナリオ及び様々な目的に対して、好適な触覚フィードバックを作成する。触知出力のパレットのこの例は、触知出力パターンのアレイを作成するために、1組の3つの波形及び8つの周波数をどのように使用することができるかを示す。この図に示した触知出力パターンに加えて、これらの触知出力パターンのそれぞれは、例えば、図4I~4Kに示すフルタップ80Hz、フルタップ200Hz、ミニタップ80Hz、ミニタップ200Hz、マイクロタップ80Hz、及びマイクロタップ200Hzに対して、それぞれ利得1.0、0.75、0.5及び0.25の変更によって示すように、触知出力パターンに対する利得値を変更することにより、振幅が任意選択的に調整される。図4I~4Kに示すように、触知出力パターンの利得を変更することにより、パターンの周波数を変えたり波形の形状を変えたりすることなく、パターンの振幅を変更する。いくつかの実施形態では、可動質量にどれだけの力を印加することができるかによって、いくつかの触知出力生成器が制限されるため、触知出力パターンの周波数を変化させることで、振幅がより低くなり、したがって質量の周波数の動きが大きければ大きいほど、より低い振幅に制約され、波形を作成するために必要とされる加速が、触知出力生成器の動作力の範囲外の力を必要としないことが確実になる(例えば、230Hz、270Hz、及び300Hzにおけるフルタップのピーク振幅は、80Hz、100Hz、125Hz、及び200Hzにおけるフルタップの振幅より低い)。
図4F~4Kは、特定の波形を有する触知出力パターンを示す。触知出力パターンの波形は、その触知出力パターンで触知出力を生成するために可動質量が通過する時間に対する中立位置(例えば、xzero)に対する物理的変位のパターンを表す。例えば、図4Fに示す第1のセットの触知出力パターン(例えば「フルタップ」の触知出力パターン)は、完全な2サイクルの振動(例えば、中立位置で開始及び終了し、中立位置を3回横切る振動)を含む波形をそれぞれ有する。図4Gに示す触知出力パターン(例えば、「ミニタップ」の触知出力パターン)の第2のセットは、完全な1サイクルを含む振動(例えば、中立位置で開始及び終了し、中立位置を1回横切る振動)を含む波形をそれぞれ有する。図4Hに示す触知出力パターン(例えば、「マイクロタップ」の触知出力パターン)の第3のセットは、完全な1サイクルの半分を含む振動(例えば、中立位置で開始及び終了し、中立位置を横切らない振動)を含む波形をそれぞれ有する。触知出力パターンの波形はまた、触知出力の開始及び終了時の可動質量の漸進的な加速及び減速を表す開始バッファ及び終了バッファを含む。図4F~図4Kに示す例示的な波形は、可動質量の移動の最大限度及び最小限度を表すxmax値及びxmin値を含む。より大きな可動質量を有するより大きな電子デバイスの場合、質量の移動の最小限度及び最大限度が、より大きい、又はより小さいこともある。図4F~4Kに示す例は、1次元における質量の移動を説明しているが、同様の原理は2次元又は3次元における可動質量の移動にも適用し得る。
図4F~4Hに示すように、それぞれの触知出力パターンはまた、その特性周波数を有する触知出力からユーザが感じる触覚感覚の「ピッチ」に影響を及ぼす、対応する特性周波数を有する。連続する触知出力の場合、特性周波数は、触知出力生成器の可動質量によって所与の期間内に完了されるサイクルの数(例えば、1秒当たりのサイクル)を表す。個別の触知出力の場合、個別の出力信号(例えば、0.5、1、又は2回のサイクルを有する)が生成され、特性周波数値は、その特性周波数を有する触知出力を生成するために可動質量がどれだけ速く動く必要があるかを指定する。図4F~4Hに示すように、触知出力のそれぞれのタイプ(例えば、フルタップ、ミニタップ、又はマイクロタップなどのそれぞれの波形により定義される)については、より高い周波数値は、可動質量によるより速い移動(単数又は複数)に対応し、したがって、一般に、触知出力を完了する時間がより短い(例えば、離散的な触知出力に必要なサイクルの数を完了する時間開始及び終了バッファ時間を含む)。例えば、特性周波数が80Hzのフルタップは、特性周波数が100Hzのフルタップよりも完了までに時間がかかる(例えば、図4Fでは35.4ms対28.3ms)。加えて、所与の周波数に対して、それぞれの周波数においてその波形でより多くのサイクルを有する触知出力は、同じそれぞれの周波数においてその波形でより少ないサイクルを有する触知出力より、完成させるのに長くかかる。例えば、150Hzにおけるフルタップは、150Hzにおけるミニタップより、完成させるのに長くかかり(例えば、19.4msと12.8ms)、150Hzにおけるミニタップは、150Hzにおけるマイクロタップより、完成させるのに長くかかる(例えば、12.8msと9.4ms)。しかし、異なる周波数の触知出力パターンでは、この規則性が当てはまらないことがある(例えば、より多くのサイクルだがより高い周波数を伴う触知出力では、より少ないサイクルだがより低い周波数を伴う触知出力よりもかかる時間が短いことがあり、その逆も起こり得る)。例えば、300Hzにおいて、フルタップは、ミニタップと同じだけ長くかかる(例えば、9.9ms)。
図4F~4Hに示すように、触知出力パターンはまた、触知信号に含まれるエネルギ量に影響を及ぼす特性振幅、又はその特性振幅を有する触知出力を通じてユーザが感じ得る触覚感覚の「強度」を有する。いくつかの実施形態では、触知出力パターンの特性振幅は、触知出力を生成するときの中立位置からの可動質量の最大変位を表す絶対値又は正規化値を指す。いくつかの実施形態では、触知出力パターンの特性振幅は、例えば、様々な状態(例えば、ユーザインタフェースのコンテキスト及び挙動に基づいてカスタマイズされる)に従って、固定された若しくは動的に決定されたゲイン係数(例えば、0~1の値)、並びに/又は事前設定されたメトリック(例えば、入力ベースのメトリック、及び/若しくはユーザインタフェースベースのメトリック)によって、調整可能である。いくつかの実施形態では、入力ベースのメトリック(例えば、強度変化メトリック又は入力速度メトリック)は、入力の特性(例えば、触知出力の生成をトリガする入力中の押下入力における接触の特性強度の変化速度、又はタッチ感知面における接触の動き速度)を示す。いくつかの実施形態では、ユーザインタフェースベースのメトリック(例えば、境界横断速度メトリック)は、触知出力の生成をトリガするユーザインタフェースの変化中のユーザインタフェース要素の特性(例えば、ユーザインタフェース内で隠された又は可視の境界を越える要素の動き速度)を示す。一部の実施形態では、触知出力パターンの特性振幅は「包絡線」によって変調されてもよく、隣接するサイクルのピークは異なる振幅を有してもよく、上記の波形のうちの1つは、触知出力が生成されている間に経時的に触知出力の一部の振幅を徐々に調整するように、経時的に(例えば、0~1まで)変更する包絡線パラメータ乗算することによって更に変調される。
例示的な目的で、図4F~4Hでは、具体的な周波数、振幅、及び波形がサンプル触知出力パターンで表されているが、他の周波数、振幅及び波形を有する触知出力パターンも同様の目的で使用され得る。例えば、0.5~4回のサイクルを有する波形を使用することができる。また、60Hz~400Hzの範囲の他の周波数も用いることができる。
デバイス100は、ポータブル多機能デバイスの一例に過ぎず、デバイス100は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実装される。
メモリ102は、任意選択的に、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。CPU(単数又は複数)120及び周辺機器インタフェース118などのデバイス100の他の構成要素によるメモリ102へのアクセスは任意選択で、メモリコントローラ122により制御される。
周辺機器インタフェース118が使用され、デバイスの入力及び出力周辺機器を、CPU(単数又は複数)120及びメモリ102と結合することができる。1つ以上のプロセッサ120は、メモリ102に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる又は実行して、デバイス100のための様々な機能を実行し、データを処理する。
いくつかの実施形態では、周辺機器インタフェース118、CPU(単数又は複数)120、及びメモリコントローラ122は任意選択で、チップ104などの単一チップ上で実装される。いくつかの他の実施形態では、それらは別々のチップ上に任意選択的に実装される。
RF(radio frequency)(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、任意選択的に、これらの機能を実行するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(subscriber identity module、SIM)カード、メモリなどが挙げられる。RF回路108は、任意選択的に、ワールドワイドウェブ(World Wide Web、WWW)とも呼ばれるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(local area network、LAN)及び/若しくはメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。無線通信は任意選択で、移動通信のためのグローバルシステム(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケット接続(high-speed downlink packet access、HSDPA)、高速アップリンクパケット接続(high-speed uplink packet access、HSUPA)、Evolution,Data-Only(EV-DO)、HSPA、HSPA+、デュアルセルHSPA(Dual-Cell HSPA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth、Wireless Fidelity(Wi-Fi)(例えば、IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g、及び/若しくはIEEE 802.11n)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi-MAX、電子メールのためのプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/若しくはポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、並びに/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルを含むが、それらに限定されない、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。
オーディオ回路110、スピーカー111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカー111に送信する。スピーカー111は、電気信号を人間の可聴音波に変換する。また、オーディオ回路110は、マイクロフォン113によって音波から変換された電気信号を受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース118に送信する。オーディオデータは、任意選択的に、周辺機器インタフェース118によって、メモリ102及び/若しくはRF回路108から取得され、かつ/又はメモリ102及び/若しくはRF回路108に伝送される。いくつかの実施形態では、音声回路110は、更にヘッドセットジャック(例えば、212、図2)も含む。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば片耳又は両耳用のヘッドホン)及び入力(例えばマイクロフォン)の両方を備えるヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
I/Oサブシステム106は、タッチ感知ディスプレイシステム112及びその他の入力又は制御デバイス116などのデバイス100上の入出力周辺機器を周辺機器インタフェース118と結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光学センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、他の入力若しくは制御デバイス116から電気信号を受信する、又は、他の入力若しくは制御デバイス116に電気信号を送信する。その他の入力又は制御デバイス116は任意選択で、物理的ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)160は任意選択で、キーボード、赤外線ポート、USBポート、スタイラス、及び/又はマウスなどのポインタデバイスのうちのいずれかと結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、208、図2)は、任意選択で、スピーカー111及び/又はマイクロフォン113の音量制御のためのアップ/ダウンボタンを含む。1つ以上のボタンは、任意選択で、プッシュボタン(例えば、206、図2)を含む。
タッチ感知ディスプレイシステム112は、デバイスとユーザの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチ感知ディスプレイシステム112から電気信号を受信し、及び/又はタッチ感知ディスプレイシステム112へ電気信号を送信する。タッチ感知ディスプレイシステム112は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(総称して「グラフィック」)を任意選択的に含む。いくつかの実施形態では、視覚出力の一部又は全ては、ユーザインタフェースオブジェクトに対応する。本明細書で使用されるように、用語「アフォーダンス」は、ユーザ-対話形式のグラフィカルユーザインタフェースオブジェクト(例えば、グラフィカルユーザインタフェースオブジェクトに向かって方向付けられた入力に応答するように構成されているグラフィカルユーザインタフェースオブジェクト)を指す。ユーザ対話形式のグラフィカルユーザインタフェースオブジェクトの例は、ボタン、スライダ、アイコン、選択可能メニュー項目、スイッチ、ハイパーリンク、又はその他のユーザインタフェース制御を含むが、それらに限定されない。
タッチ感知ディスプレイシステム112は、触覚及び/又は触知の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。(メモリ102内の任意の関連するモジュール及び/又は命令セットと共に)タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は、タッチ感知ディスプレイシステム112上の接触(及び、接触の任意の移動又は中断)を検出し、検出された接触をタッチ感知ディスプレイシステム112上で表示されるユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との相互作用に変換する。いくつかの実施形態では、タッチ感知ディスプレイシステム112とユーザとの間の接触点は、ユーザの指又はスタイラスに対応する。
タッチ感知ディスプレイシステム112は任意選択で、LCD(liquid crystal display)(液晶ディスプレイ)技術、LPD(light emitting polymer display)(発光ポリマディスプレイ)技術、又はLED(light emitting diode)(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は任意選択で、容量技術、抵抗性技術、赤外線技術、及び表面音響波技術、並びに、タッチ感知ディスプレイシステム112との1つ以上の接触点を判定するためのその他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の又は後に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びその任意の移動又は中断を検出する。いくつかの実施形態では、Cupertino、CaliforniaのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影型相互キャパシタンス検知技術が使用される。
タッチ感知ディスプレイシステム112は任意選択で、100dpiを超えるビデオ解像度を有する。いくつかの実施形態では、タッチスクリーンの映像解像度は、400dpiを超える(例えば、500dpi、800dpi、又はより高い)。ユーザは任意選択で、スタイラス、指などの任意の適切な物体又は付属物を使用して、タッチ感知ディスプレイシステム112と接触する。いくつかの実施形態では、ユーザインタフェースは、指に基づく接触及びジェスチャで機能するように設計されるが、これらは、タッチスクリーン上での指の接触面積がスタイラスの接触面積よりも大きいことに起因して、スタイラスに基づく入力よりも精度が低い場合がある。一部の実施形態では、デバイスは、指による粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルの位置又はコマンドに変換する。
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、任意選択的に、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッド(図示せず)を含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは任意選択で、タッチ感知ディスプレイシステム112と分離したタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
デバイス100は、様々な構成要素に電力を供給する電力システム162も含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
デバイス100はまた、(例えば、1つ以上のカメラの一部として)1つ以上の光学センサ164を任意選択的に含む。図1Aは、I/Oサブシステム106内の光学センサコントローラ158と結合された光学センサを示す。光学センサ(単数又は複数)164は、任意選択で、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを含む。光学センサ(単数又は複数)164は、1つ以上のレンズを通じて投影された、環境からの光を受信し、画像を表すデータに光を変換する。撮像モジュール143(カメラモジュールとも呼ばれる)と連携して、光学センサ(単数又は複数)164は任意選択で、静止画像及び/又はビデオをキャプチャする。いくつかの実施形態では、タッチスクリーンを静止画像及び/又はビデオ画像取得のためのビューファインダとして使用することができるように、光学センサは、デバイスの前面上のタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。いくつかの実施形態では、ユーザの画像が取得されるように(例えば、自撮りのため、ユーザがタッチスクリーン上で他のテレビ会議参加者を見ている間のテレビ会議のためなど)、別の光学センサがデバイスの前面に配置される。
デバイス100はまた、任意選択的に、1つ以上の接触強度センサ165を含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159と結合された接触強度センサを示す。接触強度センサ(単数又は複数)165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(若しくは圧力)を測定するために使用されるセンサ)を任意選択で含む。接触強度センサ(単数又は複数)165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のためのプロキシ)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサは、タッチ感知面(例えばタッチ感知ディスプレイシステム112)と並置される、又はそれに近接される。いくつかの実施形態では、少なくとも1つの接触強度センサは、デバイス100の前面上に位置するタッチスクリーンディスプレイシステム112の反対である、デバイス100の背面上に配置される。
また、デバイス100は、任意選択的に、1つ以上の近接センサ166を含む。図1Aは、周辺機器インタフェース118と結合された近接センサ166を示す。代わりに、近接センサ166は、I/Oサブシステム106内の入力コントローラ160と結合される。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置されるとき(例えば、ユーザが電話通話を行っているとき)、近接センサは、タッチ感知ディスプレイシステム112をターンオフ及び無効にする。
デバイス100はまた、任意選択で、1つ以上の触知出力生成器163を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161と結合され触知出力生成器を示す。いくつかの実施形態では、触知出力生成器(単数又は複数)163は、スピーカー若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギを線形の動きに変換する電気機械デバイスを含む。触知出力生成器(単数又は複数)163は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上で生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)と並置される、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は水平方向(例えば、デバイス100の表面と同じ平面内の前後)に移動させることによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面上に位置するタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。
デバイス100はまた、デバイスの位置(例えば、姿勢)に関する情報を得るための、1つ以上の加速度計167、ジャイロスコープ168、及び/又は磁気計169(例えば、慣性測定ユニット(inertial measurement unit、IMU)の一部として)を、任意選択的に含む。図1Aは、周辺機器インタフェース118に結合された、センサ167、168、及び169を示す。あるいは、センサ167、168、及び169は、I/Oサブシステム106内の入力コントローラ160に、任意選択的に結合される。いくつかの実施形態では、情報は、1つ以上の加速度計から受信されたデータの分析に基づいて、縦長ビュー又は横長ビュー内でタッチスクリーンディスプレイ上に表示される。デバイス100は、デバイス100の場所に関する情報を得るためのGPS(若しくはGLONASS又は他の全地球的航法システム)受信機(図示せず)を任意選択的に含む。
いくつかの実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は、命令セット)128、接触/動きモジュール(又は、命令セット)130、グラフィックモジュール(又は、命令セット)132、触覚フィードバックモジュール(又は、命令セット)133、テキスト入力モジュール(又は、命令セット)134、全地球測位システム(Global Positioning System、GPS)モジュール(又は、命令セット)135、及びアプリケーション(又は、命令セット)136を含む。更に、いくつかの実施形態では、図1A及び図3に示されるように、メモリ102は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイシステム112の様々な領域を占有しているかを示す表示状態、デバイスの様々なセンサ及びその他の入力又は制御デバイス116から取得される情報を含むセンサ状態、並びにデバイスの位置及び/又は姿勢に関する位置及び/若しくは位置情報、のうちの1つ以上を含む。
オペレーティングシステム126(例えば、iOS、Android、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、又はVxWorksなどの組み込みオペレーティングシステム)は、全体的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素の間の通信を促進する。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えばインターネット、無線LANなど)を介して間接的に、他のデバイスに結合するように適合されている。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイス内で使用される30ピンコネクタと同一若しくは類似した、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスにおいて使用されるLightningコネクタと同一若しくは類似した、及び/又は互換性のあるLightningコネクタである。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかの電子デバイス内で使用されるUSB Type-Cコネクタと同一若しくは類似した、かつ/又は互換性のあるUSB Type-Cコネクタである。
接触/動きモジュール130は任意選択で、タッチ感知ディスプレイシステム112との接触(ディスプレイコントローラ156と連携して)、及び他のタッチ感知デバイスとの接触(例えば、タッチパッド又は物理クリックホイール)を検出する。接触/動きモジュール130は、接触が発生したかを判定すること(例えば、指ダウンイベントを検出する)、接触の強度を判定すること(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力に代替するもの)、接触の移動があるかを判定すること及びタッチ感知面を横切る移動を追跡すること(例えば、1つ以上の指のドラッグイベントを検出する)、及び接触が停止したかどうかを判定すること(例えば、指アップイベント又は接触の中断を検出する)などの、接触の検出(例えば、指又はスタイラスによる)に関連する様々な動作を実行するためのソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択で、単一の接触(例えば、1本の指の接触又はスタイラスの接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指のタップジェスチャを検出することは、フィンガダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガダウンイベントと同一の位置(又は、実質的に同一の位置)でのフィンガアップ(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上の指のスワイプジェスチャを検出することは、フィンガダウンイベントを検出し、続いて1つ以上の指のドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。同様に、タップ、スワイプ、ドラッグ、及び他のジェスチャは、任意選択で、スタイラスに対して、スタイラスに対する特定の接触パターンを検出することにより、検出される。
いくつかの実施形態では、指のタップジェスチャを検出することは、指ダウンイベントを検出することと指アップイベントを検出することとの間の時間の長さに依存するが、指ダウンイベントを検出することと指アップイベントを検出することとの間の指の接触の強度とは関連しない。いくつかの実施形態では、タップジェスチャは、タップの間の指の接触の強度が、軽い押圧又は深い押圧強度閾値などの所与の強度閾値を満たす(名目上の接触検出強度閾値よりも大きい)かに関わらず、指ダウンイベントと指アップイベントの間の時間の長さが予め定められた値よりも短い(例えば、0.1、0.2、0.3、0.4又は0.5秒よりも短い)との判定に従って検出される。したがって、指のタップジェスチャは、特定の入力基準が満たされるために、接触の特性強度が所与の強度閾値を満たすことを必要としない特定の入力基準を満たすことができる。明確にするために、タップジェスチャにおける指の接触は一般的に、指ダウンイベントを検出するために、それを下回ると接触が検出されない名目上の接触検出強度閾値を満たす必要がある。同様の分析は、スタイラスによるタップジェスチャ又は他の接触を検出することに適用される。デバイスがタッチ感知面上をホバリングする指又はスタイラスの接触を検出することが可能なケースでは、名目上の接触検出強度閾値は任意選択で、指又はスタイラスとタッチ感知面の間の物理的接触に対応しない。
同様の方式で、同一の概念が他のタイプのジェスチャに適用される。例えば、スワイプジェスチャ、ピンチジェスチャ、デピンチジェスチャ、及び/又は長い押圧ジェスチャは任意選択で、ジェスチャに含まれる接触の強度と関係しない、又は認識されるためにジェスチャを実行する接触が強度閾値に到達することを必要としない、のいずれかである基準を満たすことに基づいて検出される。例えば、スワイプジェスチャは、1つ以上の接触の移動量に基づいて検出され、ピンチジェスチャは、相互に向かう2つ以上の接触の移動に基づいて検出され、デピンチジェスチャは、相互に離れる2つ以上の接触の移動に基づいて検出され、長い押圧ジェスチャは、閾値移動量よりも小さいタッチ感知面上の接触の期間に基づいて検出される。したがって、特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを特定のジェスチャ認識基準が必要としないという記述は、ジェスチャにおける接触(複数可)が対応する強度閾値に到達しない場合に特定のジェスチャ認識基準が満たされることが可能であること、及びジェスチャにおける接触のうちの1つ以上が対応する強度閾値に到達する、又は強度閾値を超える状況で満たされることも可能であることを意味する。いくつかの実施形態では、タップジェスチャは、接触が所定の期間の間にそれぞれの強度閾値を上回るか又は下回るかに関わらず、指ダウンイベント及び指アップイベントが所定の期間内で検出されたという判定に基づいて検出され、スワイプジェスチャは、接触が接触の移動の終わりにそれぞれの強度閾値を上回る場合でさえ、接触の移動が所定の大きさよりも大きいという判定に基づいて検出される。ジェスチャの検出がジェスチャを実行する接触の強度によって影響される実施態様でさえ(例えば、接触の強度が強度閾値を上回るときにデバイスが長い押圧をより素早く検出し、又は接触の強度がより高いときにデバイスがタップ入力の検出に遅れる)、接触が特定の強度閾値に到達しない状況でジェスチャを認識する基準を満たすことができる限り(例えば、ジェスチャを認識するために要する時間量が変化する場合でさえ)、それらのジェスチャの検出は、接触が特定の強度閾値に到達することを必要としない。
接触強度閾値、期間閾値、及び移動閾値は、一部の状況では、同一の入力要素又は領域に方向付けられる2つ以上の異なるジェスチャを区別するためのヒューリスティックを作成するために、様々な異なる組み合わせで組み合わされ、それによって、同一の入力要素との複数の異なる相互作用がより豊かなセットのユーザ相互作用及び応答を提供するように有効化される。ジェスチャ認識基準の特定のセットが、その特定のジェスチャ認識基準が満たされるために接触(単数又は複数)の強度がそれぞれの強度閾値を満たすことを必要としないという記述は、ジェスチャがそれぞれの強度閾値を超える強度を有する接触を含むときに満たされる基準を有する他のジェスチャを識別するための他の強度に依存するジェスチャ認識基準をそれと同時に評価することを排除しない。例えば、いくつかの状況では、第1のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを必要としない第1のジェスチャのための第1のジェスチャ認識基準は、対応する強度閾値に到達する接触(複数可)に依存する第2のジェスチャのための第2のジェスチャ認識基準との競争関係にある。そのような競争では、ジェスチャは任意選択で、第2のジェスチャのための第2のジェスチャ認識基準が最初に満たされる場合に、第1のジェスチャのための第1のジェスチャ認識基準を満たすものとして認識されない。例えば、接触が所定の移動量を移動する前に接触が対応する強度閾値に到達する場合、スワイプジェスチャではなく深い押圧ジェスチャが検出される。逆に、接触が対応する強度閾値に到達する前に接触が所定の移動量を移動する場合、深い押圧ジェスチャではなくスワイプジェスチャが検出される。そのような状況でさえ、第1のジェスチャのための第1のジェスチャ認識基準は、第1のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことをなおも必要としないが、これは、ジェスチャの終わりまで接触が対応する強度閾値を下回ったままであった場合(例えば、対応する強度閾値を上回る強度まで増加しない接触を有するスワイプジェスチャ)、ジェスチャは、スワイプジェスチャとして第1のジェスチャ認識基準によって認識されているからである。そのようにして、特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを必要としない特定のジェスチャ認識基準は、(A)いくつかの状況では、強度閾値(例えば、タップジェスチャのための)に関して接触の強度を無視し、及び/又は(B)いくつかの状況では、特定のジェスチャ認識基準が入力に対応するジェスチャ(例えば、認識のための深い押圧ジェスチャと競争する長い押圧ジェスチャのための)を認識する前に、強度依存ジェスチャ認識基準の競争するセット(例えば、深い押圧ジェスチャのための)が強度依存ジェスチャに対応するものとして入力を認識する場合、特定のジェスチャ認識基準(例えば、長い押圧ジェスチャのための)が機能しないという意味で、強度閾値に関して接触の強度になおも依存している。
加速度計167、ジャイロスコープ168、及び/又は磁気計169と連動して、姿勢モジュール131は、特定の座標系内のデバイスの姿勢(例えば、ロール、ピッチ、及び/又はヨー)などの、デバイスに関する姿勢情報を任意選択的に検出する。姿勢モジュール131は、デバイスの位置の検出及びデバイスの姿勢の変化の検出に関係する、様々な動作を実行するためのソフトウェア構成要素を含む。
グラフィックモジュール132は、表示されるグラフィックの視覚的影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含む、タッチ感知ディスプレイシステム112又は他のディスプレイ上でグラフィックをレンダリング及び表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用される場合、用語「グラフィック」は、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、及びアニメーションなどを含むがこれらに限定されない、ユーザに対して表示することができるいずれかのオブジェクトを含む。
いくつかの実施形態では、グラフィックモジュール132は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザインタラクションに応答して、触知出力生成器(単数又は複数)163を使用してデバイス100上の1つ以上の位置において触知出力を作成する命令(例えば、触覚フィードバックコントローラ161によって使用される命令)を生成する様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択で、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、この情報を、様々なアプリケーションで使用するために(例えば、位置に基づく電話発信で使用するために電話138へ、写真/ビデオのメタデータとしてカメラ143へ、並びに、気象ウィジェット、地域のイエローページウィジェット、及びマップ/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
仮想/拡張現実モジュール145は、拡張現実機能、いくつかの実施形態では、仮想現実機能を実装するアプリケーション136に、仮想現実論理及び/又は拡張現実論理を提供する。仮想/拡張現実モジュール145は、1つ以上のカメラの視野の少なくとも一部分の表現への、仮想ユーザインタフェースオブジェクト(例えば拡張現実に基づく測定を行うための仮想測定テープ)などの仮想コンテンツの重ね合わせを容易にする。例えば、仮想/拡張現実モジュール145からの支援により、1つ以上のカメラの視野の少なくとも一部分の表現は、対応する物理的オブジェクトを含んでもよく、仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに基づいて判定される、表示された拡張現実環境、又はコンピュータシステムの少なくとも一部分の姿勢(例えば、ユーザインタフェースをコンピュータシステムのユーザに表示するために使用される表示デバイスの姿勢)に基づいて判定される、仮想現実環境内の位置に表示されてもよい。
アプリケーション136は、任意選択的に、以下のモジュール(又は命令セット)又はそれらのサブセット若しくはスーパーセットを含む。
・連絡先モジュール137(アドレス帳又は連絡先リストと呼ばれる場合もある)
・電話モジュール138、
・テレビ会議モジュール139、
・電子メールクライアントモジュール140、
・インスタントメッセージング(IM)モジュール141、
・トレーニングサポートモジュール142、
・静止画像及び/又はビデオ画像用のカメラモジュール143、
・画像管理モジュール144、
・ブラウザモジュール147、
・カレンダモジュール148、
・気象ウィジェット149-1、株価ウィジェット149-2、計算機ウィジェット149-3、アラーム時計ウィジェット149-4、辞書ウィジェット149-5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット149-6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール149、
・ユーザ作成ウィジェット149-6を作成するためのウィジェット作成モジュール150、
・検索モジュール151、
・任意選択的にビデオプレーヤモジュール及び音楽プレーヤモジュールから構成されている、ビデオ及び音楽プレーヤモジュール152、
・メモモジュール153、
・地図モジュール154、及び/又は
・測定モジュール155。
任意選択的にメモリ102に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレス帳又は連絡先リストを管理するための実行可能命令を含み、それには、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、実際の住所(単数又は複数)、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話番号及び/又は電子メールアドレスを提供して、電話138、テレビ会議139、電子メール140、又はIM141による通信を開始及び/若しくは促進すること、などが含まれる。
RF回路108、音声回路110、スピーカー111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電話モジュール138は、電話番号に対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を変更し、それぞれの電話番号をダイヤルし、会話を実行し、会話が完了したときに切断し又は電話を切る実行可能命令を含む。上述のように、無線通信は、任意選択で、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
RF回路108、音声回路110、スピーカー111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光学センサ(単数又は複数)164、光学センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と連携して、テレビ会議モジュール139は、ユーザの命令に従って、ユーザと1人以上の他の参加者の間のテレビ会議を開始し、行い、終了する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理する実行可能命令を含む。画像管理モジュール144と連携して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールの作成及び送信を非常に容易にする。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、インスタントメッセージモジュール141は、インスタントメッセージに対応する一連の文字を入力し、前に入力された文字を修正し、それぞれのインスタントメッセージを送信し(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、Apple Push Notification Service(APNs)、若しくはIMPSを使用して)、インスタントメッセージを受信し、受信したインスタントメッセージを見る実行可能命令を含む。いくつかの実施形態では、送信及び/又は受信されたインスタントメッセージは任意選択で、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、音声ファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用される場合、「インスタントメッセージ」は、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されたメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、APNs、又はIMPSを使用して送信されたメッセージ)の両方を指す。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、マップモジュール154、並びにビデオ及び音楽プレーヤモジュール152と連携して、トレーニングサポートモジュール142は、トレーニングを作成し(例えば、時間、距離、及び/又はカロリー消費目標を有する)、(スポーツデバイス及びスマートウォッチ内の)トレーニングセンサと通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニング用の音楽を選択して再生し、並びに、トレーニングデータを表示し、記憶し、及び送信する、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光学センサ(単数又は複数)164、光学センサコントローラ158、接触モジュール130、グラフィックモジュール132、及び画像管理モジュール144と共に、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ102にそれらを記憶する、静止画像又はビデオの特性を変更する、及び/又はメモリ102から静止画像若しくはビデオを削除する、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びカメラモジュール143と共に、画像管理モジュール144は、静止画像及び/又はビデオ画像を配置し、変更し(例えば、編集し)、又はその他の方式で操作し、ラベルを付け、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶する、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付ファイル及び他のファイルの、検索、リンク付け、受信、及び表示を含め、ユーザの命令に従って、インターネットをブラウズする、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と共に、カレンダモジュール148は、ユーザの命令に従って、カレンダ及びカレンダに関連付けられたデータ(例えば、カレンダ項目、するべきことのリストなど)を作成、表示、変更、及び記憶する、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と共に、ウィジェットモジュール149は、任意選択で、ユーザによってダウンロードされ使用されるミニアプリケーション(例えば、気象ウィジェット149-1、株価ウィジェット149-2、計算機ウィジェット149-3、アラーム時計ウィジェット149-4、及び辞書ウィジェット149-5)、又はユーザによって作成されるミニアプリケーション(例えば、ユーザ作成ウィジェット149-6)である。いくつかの実施形態では、ウィジェットは、HTML(Hypertext Markup Language、ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets、カスケーディングスタイルシート)ファイル、及びJavaScriptファイルを含む。いくつかの実施形態では、ウィジェットは、XML(Extensible Markup Language、拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!ウィジェット)を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と連携して、ウィジェット作成モジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定部分をウィジェットに変える)実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、検索モジュール151は、ユーザの命令に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、音声回路110、スピーカー111、RF回路108、及びブラウザモジュール147と連携して、ビデオ及び音楽プレーヤモジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された記録された音楽又は他のサウンドファイルをユーザがダウンロード及び再生することを可能にする実行可能命令、並びにビデオを表示し、提示し、又はその他の方式で再生する(例えば、タッチ感知ディスプレイシステム112上で、又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)実行可能命令を含む。いくつかの実施形態では、デバイス100は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、メモモジュール153は、ユーザの命令に従って、メモ、to doリストなどを作成及び管理する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と連携して、マップモジュール154は、ユーザの命令に従って、地図及び地図と関連付けられたデータ(例えば、運転方向、特定の位置における又はその近くの店舗及び対象となる他の地点についてのデータ、並びに位置に基づく他のデータ)を受信し、表示し、変更し、及び記憶するために使用され得る。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132及び仮想/拡張現実モジュール145と連動して、測定モジュール155は、本明細書でより詳細に説明するように、ユーザが拡張現実環境内の物理的空間及び/又はその中のオブジェクトを測定することを可能にする実行可能命令を含む。
上記特定されたモジュール及びアプリケーションの各々は、上記説明された1つ以上の機能、並びに本出願で説明される方法(例えば、コンピュータにより実行される方法、及び本明細書で説明される他の情報処理方法)を実行する実行可能な命令セットに対応する。それらのモジュール(すなわち、命令セット)は、別々のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、それらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において、組み合わされ、又はその他の方式で再配置される。いくつかの実施形態では、メモリ102は、任意選択で、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ102は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
いくつかの実施形態では、デバイス100は、そのデバイスにおける既定の機能のセットの動作がタッチスクリーン及び/又はタッチパッドのみを介して実行されるデバイスである。デバイス100が動作するための主要な入力コントロールデバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、任意選択的に、デバイス100上の物理的な入力コントロールデバイス(プッシュボタン、ダイヤルなど)の数が削減される。
タッチスクリーン及び/又はタッチパッドを通じてのみ実行される既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス100をナビゲートする。そのような実施形態では、「メニューボタン」は、タッチ感知面を使用して実装される。いくつかの他の実施形態では、メニューボタンは、タッチ感知面の代わりに、物理プッシュボタン又はその他の物理入力コントロールデバイスである。
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(図1Aにおける)又は370(図3A)は、イベントソータ170(例えば、オペレーティングシステム126内)及びそれぞれのアプリケーション136-1(例えば、上述したアプリケーション136、137~155、380~390のいずれか)を含む。
イベントソータ170は、イベント情報を受信し、イベント情報が配信されるアプリケーション136-1、及びアプリケーション136-1のアプリケーションビュー191を決定する。イベントソータ170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態では、アプリケーション136-1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイシステム112上で表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、どのアプリケーション(単数又は複数)が現在アクティブであるかを判定するためにイベントソータ170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を判定するためにイベントソータ170によって使用される。
いくつかの実施形態では、アプリケーション内部状態192は、アプリケーション136-1が実行を再開するときに使用すべき再開情報、アプリケーション136-1によって表示されている情報を示す又は表示する準備ができたユーザインタフェース状態情報、ユーザがアプリケーション136-1の前の状態又はビューに戻ることを可能にする状態キュー、及びユーザによって行われた前のアクションのリドゥ/アンドゥキューのうちの1つ以上などの追加の情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイシステム112上のユーザのタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、あるいは近接センサ166、加速度計(単数又は複数)167、及び/又は(オーディオ回路110を介した)マイクロフォン113などのセンサから受信する情報を伝達する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイシステム112又はタッチ感知面からの情報を含む。
いくつかの実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。それに応じて、周辺機器インタフェース118は、イベント情報を送信する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、予め定められたノイズ閾値を上回り、及び/又は予め定められた期間よりも長い入力を受信すること)が存在するときのみ、イベント情報を送信する。
いくつかの実施形態では、イベントソータ170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173を含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイシステム112が2つ以上のビューを表示するとき、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる制御装置及び他の要素から構成されている。
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビューのセットであり、その中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、任意選択的に、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルビューは、任意選択的に、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントのセットは、任意選択的に、タッチによるジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて決定される。
ヒットビュー判定モジュール172は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが階層状に構成された複数のビューを有するとき、ヒットビュー判定モジュール172は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始するサブイベント(すなわち、イベント又は潜在的なイベントを形成する一連のサブイベントにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュールによって特定されると、ヒットビューは典型的には、それがヒットビューとして特定された同一のタッチ又は入力元に関連する全てのサブイベントを受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理位置を含む全てのビューがアクティブに関わりがあるビューであると判定し、したがって、全てのアクティブに関わりがあるビューが、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントが1つの特定のビューに関連付けられたエリアに完全に限定された場合でも、階層内の上位のビューは、依然としてアクティブに関わりがあるビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えばイベント認識部180)にディスパッチする。アクティブイベント認識部判定モジュール173を含む実施形態では、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部モジュール182によって取得されたイベント情報をイベント待ち行列に記憶する。
いくつかの実施形態では、オペレーティングシステム126は、イベントソータ170を含む。あるいは、アプリケーション136-1がイベントソータ170を含む。更に他の実施形態では、イベントソータ170は、独立型のモジュールであり、又は接触/動きモジュール130などのメモリ102内に記憶されている別のモジュールの一部分である。
いくつかの実施形態では、アプリケーション136-1は、それぞれがアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理するための命令を含む、複数のイベント処理部190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136-1の各アプリケーションビュー191は、1つ以上のイベント認識部180を含む。典型的には、それぞれのアプリケーションビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット(図示せず)又はアプリケーション136-1が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。いくつかの実施形態では、それぞれのイベント処理部190は、データ更新部176、オブジェクト更新部177、GUI更新部178、及び/又はイベントソータ170から受信されたイベントデータ179、のうちの1つ以上を含む。イベント処理部190は任意選択で、アプリケーション内部状態192を更新するために、データ更新部176、オブジェクト更新部177、又はGUI更新部178を利用し、又は呼び出す。代わりに、アプリケーションビュー191のうちの1つ以上は、1つ以上のそれぞれのイベント処理部190を含む。また、いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178のうちの1つ以上は、それぞれのアプリケーションビュー191に含まれる。
それぞれのイベント認識部180は、イベントソータ170からイベント情報(例えば、イベントデータ179)を受信し、イベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。いくつかの実施形態では、イベント認識部180はまた、メタデータ183及びイベント配信命令188(任意選択的にサブイベント配信命令を含む)の少なくともサブセットも含む。
イベント受信部182は、イベントソータ170からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加の情報を含む。サブイベントがタッチの動きに関わるとき、イベント情報はまた任意選択的に、サブイベントの速さ及び方向を含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへ、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ぶ)についての対応する情報を含む。
イベント比較部184は、イベント情報を、定義済みのイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えばイベント1(187-1)及びイベント2(187-2)などのイベント(例えば、既定のサブイベントのシーケンス)の定義を含む。いくつかの実施形態では、イベント187におけるサブイベントは、例えば、タッチの始め、タッチの終わり、タッチの移動、タッチの中止、及び複数のタッチを含む。一実施例では、イベント1(187-1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の予め定められた段階についての第1のタッチ(タッチの始め)、予め定められた段階についての第1のリフトオフ(タッチの終わり)、表示されたオブジェクト上の予め定められた段階についての第2のタッチ(タッチの始め)、及び予め定められた段階についての第2のリフトオフ(タッチの終わり)を含む。別の実施例では、イベント2(187-2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、表示されたオブジェクト上の予め定められた段階についてのタッチ(又は、接触)、タッチ感知ディスプレイシステム112を横切るタッチの移動、及びタッチのリフトオフ(タッチの終わり)を含む。いくつかの実施形態では、イベントは、1つ以上の関連付けられたイベント処理部190に関する情報も含む。
いくつかの実施形態では、イベント定義187は、それぞれのユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部184は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイシステム112上で表示されるアプリケーションビューにおいて、タッチ感知ディスプレイシステム112上でタッチが検出されたとき、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)と関連付けられているかを判定するためにヒットテストを実行する。表示された各オブジェクトが、それぞれのイベント処理部190に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部190をアクティブ化すべきかを判定する。例えば、イベント比較部184は、ヒットテストをトリガするサブイベント及びオブジェクトに関連付けられたイベント処理部を選択する。
いくつかの実施形態では、それぞれのイベント187の定義は、一連のサブイベントがイベント認識部のイベントタイプに対応するかどうかが判定されるまで、イベント情報の配信を遅らせる遅延アクションも含む。
それぞれのイベント認識部180が一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判断した場合、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部があれば、そのイベント認識部は、進行中のタッチによるジェスチャのサブイベントの追跡及び処理を続行する。
いくつかの実施形態では、それぞれのイベント認識部180は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び/又はリストを有するメタデータ183を含む。いくつかの実施形態では、メタデータ183は、イベント認識部が互いにどのように対話するか、又はイベント認識部が互いにどのように対話することが可能となるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態では、メタデータ183は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。
いくつかの実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントに関連付けられたイベント処理部190をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。いくつかの実施形態では、イベント認識部180は、認識したイベントに関連付けられたフラグを投入し、そのフラグに関連付けられたイベント処理部190は、そのフラグを捕らえ、既定のプロセスを実行する。
いくつかの実施形態では、イベント配信命令188は、イベント処理部をアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
いくつかの実施形態では、データ更新部176は、アプリケーション136-1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新するか、又はビデオ及び音楽プレーヤモジュール152で使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新部177は、アプリケーション136-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール132に送る。
いくつかの実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含む又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、それぞれのアプリケーション136-1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の記載は、入力デバイスを用いて多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、1つ以上のカメラによって取得されたビデオ画像のリアルタイム解析に基づく入力、デバイスの移動、口頭による命令、検出された眼球運動、バイオメトリック入力、並びに/又はそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
図1Cは、一部の実施形態に係る、触知出力モジュールを示すブロック図である。一部の実施形態では、I/Oサブシステム106(例えば、触覚フィードバックコントローラ161(図1A)及び/又は他の入力コントローラ(単数又は複数)160(図1A)は、図1Cに示す例たる構成要素の少なくともいくつかを含む。一部の実施形態では、周辺機器インタフェース118は、図1Cに示す例たる構成要素のうちの少なくともいくつかを含む。
いくつかの実施形態では、触知出力モジュールは、触覚フィードバックモジュール133を含む。いくつかの実施形態では、触覚フィードバックモジュール133は、電子デバイス上のソフトウェアアプリケーションからのユーザインタフェースフィードバック(例えば、表示ユーザインタフェースに対応するユーザ入力、並びに電子デバイスのユーザインタフェースにおける動作の実行又はイベントの出現を示す警報及び他の通知に応答するフィードバック)に対する触知出力を集約して組み合わせる。触覚フィードバックモジュール133は、波形モジュール123(触知出力を生成するために使用される波形を提供する)、ミキサ125(異なるチャネルにおける波形などの波形を混合する)、圧縮器127(波形のダイナミックレンジを低減又は圧縮する)、ローパスフィルタ129(波形内の高周波信号成分をフィルタリングする)、及び熱コントローラ181(熱状態に従って波形を調整する)のうちの1つ以上を含む。一部の実施形態では、触覚フィードバックコントローラ161(図1A)には、触覚フィードバックモジュール133が含まれる。一部の実施形態では、触覚フィードバックモジュール133の別々のユニット(又は触覚フィードバックモジュール133の別個の実装)はまた、オーディオコントローラ(例えば、図1Aのオーディオ回路110)に含まれ、音声信号を生成するために使用される。いくつかの実施形態では、単一の触覚フィードバックモジュール133が、オーディオ信号及び触知出力に対する波形を生成するために使用される。
いくつかの実施形態では、触覚フィードバックモジュール133はまた、トリガモジュール121(例えば、ソフトウェアアプリケーション、オペレーティングシステム、又は生成すべき触知出力を判定して対応する触知出力を生成するプロセスを開始する他のソフトウェアモジュール)を含む。いくつかの実施形態では、トリガモジュール121は、波形の生成(例えば、波形モジュール123による)を開始するトリガ信号を生成する。例えば、トリガモジュール121は、事前設定されたタイミング基準に基づいて、トリガ信号を生成する。いくつかの実施形態では、トリガモジュール121は、ユーザインタフェース要素(例えば、アプリケーション内のアプリケーションアイコン若しくはアフォーダンス)又はハードウェア入力デバイス(例えば、ホームボタン若しくは強度感知タッチスクリーンなどの強度感知入力面)のアクティブ化に基づいて、触覚フィードバックモジュール133の外からトリガ信号を受信し(例えば、いくつかの実施形態では、触覚フィードバックモジュール133は、触覚フィードバックモジュール133の外に位置するハードウェア入力処理モジュール146からトリガ信号を受信する)、触覚フィードバックモジュール133内の他の構成要素(例えば、波形モジュール123)又は動作をトリガ(例えば、トリガモジュール121による)するソフトウェアアプリケーションへ、それらのトリガ信号を中継する。一部の実施形態では、トリガモジュール121はまた、触知フィードバック生成命令(例えば、触覚フィードバックモジュール133から、図1A及び3)を受信する。一部の実施形態では、トリガモジュール121は、触知フィードバック命令を(例えば、図1A及び3の触覚フィードバックモジュール133から)受信する触覚フィードバックモジュール133(又は触覚フィードバックモジュール133内のトリガモジュール121)に応じてトリガ信号を生成する。
波形モジュール123は、入力としてトリガ信号を(例えば、トリガモジュール121から)受信し、受信トリガ信号に応じて、1つ以上の触知出力の生成のための波形(例えば、図4F~4Gを参照して以下でより詳細に説明される波形などの、波形モジュール123によって使用するために設計された所定のセットの波形から選択された波形)を提供する。
ミキサ125は、波形(例えば、波形モジュール123から)を入力として受信し、これらの波形を共に混合する。例えば、ミキサ125が2つ以上の波形(例えば、第1のチャネルの第1の波形及び第1の波形と少なくとも部分的に重複する第2のチャネルの第2の波形)受信したとき、ミキサ125は、2つ以上の波形の和に対応する組み合わせた波形を出力する。いくつかの実施形態では、ミキサ125はまた、2つ以上の波形のうちの1つ以上の波形を修正し、2つ以上の波形のうちの残りに対して特定の波形を強調する(例えば、特定の波形の縮尺の増大及び/又は波形のうちの残りの縮尺の減少による)。いくつかの状況では、ミキサ125は、組み合わせた波形から除去すべき1つ以上の波形を選択する(例えば、触知出力生成器163によって同時に出力されることが要求された4つ以上のソースからの波形がある場合、最も古いソースからの波形が削除される)。
圧縮器127は、波形(例えば、ミキサ125からの合成波形)を入力として受信し、波形を変更する。いくつかの実施形態では、圧縮器127は、波形に対応する触知出力が減少するように、(例えば、触知出力生成器163(図1A)又は357(図3)の物理的な仕様に従って)波形を低減させる。いくつかの実施形態では、圧縮器127は、波形に対する所定の最大振幅を強制することなどによって、波形を制限する。例えば、圧縮器127は、波形のうち所定の振幅閾値を超過する部分の振幅を低減させながら、波形のうち所定の振幅閾値を超過しない部分の振幅は維持する。いくつかの実施形態では、圧縮器127は、波形のダイナミックレンジを低減させる。いくつかの実施形態では、圧縮器127は、波形のダイナミックレンジを動的に低減させ、その結果、組み合わせた波形は、触知出力生成器163の性能仕様(例えば、力及び/又は可動質量の変位限界)の範囲内に留まる。
ローパスフィルタ129は、波形(例えば、圧縮器127からの圧縮された波形)を入力として受信し、これらの波形をフィルタリング(例えば、平滑化)する(例えば、波形内の高周波信号成分を除去又は低減する)。例えば、いくつかの例では、触知出力が圧縮された波形に従って生成されるとき、圧縮器127は、圧縮された波形内に、触知出力の生成に干渉する、及び/又は触知出力生成器163の性能仕様を超える外生信号(例えば、高周波信号成分)を含む。ローパスフィルタ129は、波形内のそのような外生信号を低減又は除去する。
熱コントローラ181は、波形(例えば、ローパスフィルタ129からのフィルタリングされた波形)を入力として受信し、デバイス100の熱状態(例えば、触覚フィードバックコントローラ161の温度など、デバイス100内で検出される内部温度、及び/又はデバイス100によって検出される外部温度に基づく)に従ってこれらの波形を調整する。例えば、いくつかの場合、触覚フィードバックコントローラ161の出力は、温度に応じて変動する(例えば、触覚フィードバックコントローラ161は、同じ波形を受信したことに応じて、触覚フィードバックコントローラ161が第1の温度であるときは、第1の触知出力を生成し、触覚フィードバックコントローラ161が第1の温度とは異なる第2の温度であるときは、第2の触知出力を生成する)。例えば、触知出力の大きさ(又は振幅)は、温度によって変化してもよい。温度変動の影響を低減させるために、波形が修正される(例えば、温度に基づいて波形の振幅が増大又は減少される)。
いくつかの実施形態では、触覚フィードバックモジュール133(例えば、トリガモジュール121)が、ハードウェア入力処理モジュール146に結合される。一部の実施形態では、図1Aの他の入力コントローラ(単数又は複数)160は、ハードウェア入力処理モジュール146を含む。いくつかの実施形態では、ハードウェア入力処理モジュール146は、ハードウェア入力デバイス175(例えば、ホームボタン、又は強度感知タッチスクリーンなどの強度感知入力面などの、図1Aの他の入力又は制御デバイス116)からの入力を受信する。いくつかの実施形態では、ハードウェア入力デバイス175は、タッチ感知ディスプレイシステム112(図1A)、キーボード/マウス350(図3)、タッチパッド355(図3)、他の入力又は制御デバイス116(図1A)又は強度感知ホームボタンなど、本明細書に記載される入力デバイスのいずれかである。いくつかの実施形態では、ハードウェア入力デバイス175は、強度感知ホームボタンで構成され、タッチ感知ディスプレイシステム112(図1A)、キーボード/マウス350(図3)、又はタッチパッド355(図3)ではない。いくつかの実施形態では、ハードウェア入力デバイス175(例えば、強度感知ホームボタン又はタッチスクリーン)からの入力に応答して、ハードウェア入力処理モジュール146は、ホームボタンの「クリック」(例えば、「ダウンクリック」又は「アップクリック」)に対応する入力などの既定の入力基準を満たすユーザ入力が検出されたことを示すために、1つ以上のトリガ信号を触覚フィードバックモジュール133に提供する。いくつかの実施形態では、触覚フィードバックモジュール133は、ホームボタンの「クリック」に対応する入力に応じて、ホームボタンの「クリック」に対応する波形を提供し、物理ホームボタンを押下する触覚フィードバックをシミュレートする。
一部の実施形態では、触知出力モジュールは、触知出力の生成を制御する触覚フィードバックコントローラ161(図1Aの触覚フィードバックコントローラ161)を含む。いくつかの実施形態では、触覚フィードバックコントローラ161は、複数の触知出力生成器に結合されており、複数の触知出力生成器のうちの1つ以上の触知出力生成器を選択し、触知出力を生成する選択された1つ以上の触知出力生成器へ波形を送信する。いくつかの実施形態では、触覚フィードバックコントローラ161は、ハードウェア入力デバイス175のアクティブ化に対応する触知出力要求と、ソフトウェアイベントに対応する触知出力要求(例えば、触覚フィードバックモジュール133からの触知出力要求)を連携させ、2つ以上の波形のうちの1つ以上の波形を修正して、(例えば、ソフトウェアイベントに対応する触知出力に対して、ハードウェア入力デバイス175のアクティブ化に対応する触知出力に優先させるなど、特定の波形(単数又は複数)の縮尺を拡大すること、及び/又は波形の残りの縮尺を縮小することによって)特定の波形(単数又は複数)を2つ以上の波形の残りに対して強調する。
一部の実施形態では、図1Cに示されるように、触覚フィードバックコントローラ161の出力は、デバイス100のオーディオ回路(例えば、オーディオ回路110、図1A)に結合され、音声信号をデバイス100のオーディオ回路に提供する。いくつかの実施形態では、触覚フィードバックコントローラ161は、触知出力を生成するために使用される波形と、触知出力の生成と連動してオーディオ出力を提供するために使用されるオーディオ信号との両方を提供する。いくつかの実施形態では、触覚フィードバックコントローラ161は、オーディオ信号及び/又は波形(触知出力を生成するために使用される)を修正し、その結果、オーディオ出力及び触知出力が同期される(例えば、オーディオ信号及び/又は波形を遅延させることによる)。いくつかの実施形態では、触覚フィードバックコントローラ161は、デジタル波形をアナログ信号に変換するために使用されるデジタルアナログ変換器を含み、アナログ信号は、増幅器185及び/又は触知出力生成器163によって受信される。
いくつかの実施形態では、触知出力モジュールは、増幅器185を含む。いくつかの実施形態では、増幅器185は、波形を(例えば、触覚フィードバックコントローラ161から)受信し、増幅された波形を触知出力生成器163(例えば、触知出力生成器163(図1A)又は357(図3)のうちのいずれか)に送信する前に波形を増幅する。例えば、増幅器185は、受信した波形を、触知出力生成器163の物理的な仕様(例えば、触知出力生成器163へ送信された信号が、触覚フィードバックコントローラ161から受信した波形に対応する触知出力を生成するように、触知出力を生成するために触知出力生成器163によって必要とされる電圧及び/又は電流)による信号レベルまで増幅し、増幅された波形を触知出力生成器163へ送信する。これに応答して、触知出力生成器163は、(例えば、可動質量を可動質量の中立位置に対して1つ以上の次元で前後にシフトさせることによって)触知出力を生成する。
いくつかの実施形態では、触知出力モジュールは、触知出力生成器163に結合されたセンサ189を含む。センサ189は、触知出力生成器163又は触知出力生成器163の1つ以上の構成要素(例えば、触知出力を生成するために使用される膜などの1つ以上の移動部分)の状態又は状態の変化(例えば、機械的位置、物理的変位、及び/又は移動)を検出する。いくつかの実施形態では、センサ189は、磁界センサ(例えば、ホール効果センサ)あるいは他の変位センサ及び/又は運動センサである。いくつかの実施形態では、センサ189は、情報(例えば、触知出力生成器163内の1つ以上の部分の位置、変位、及び/又は移動)を触覚フィードバックコントローラ161に提供し、触知出力生成器163の状態に関する、センサ189によって提供された情報に従って、触覚フィードバックコントローラ161は、触覚フィードバックコントローラ161から出力される波形(例えば、任意選択的に増幅器185を介して触知出力生成器163へ送信される波形)を調整する。
図2は、いくつかの実施形態に係る、タッチスクリーン(例えば、タッチ感知ディスプレイシステム112、図1A)を有するポータブル多機能デバイス100を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface、UI)200内に1つ以上のグラフィックを表示する。これらの実施形態、並びに後述する実施形態では、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することが可能になる。一部の実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。いくつかの実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上向きに及び/若しくは下向きに)、並びに/又は、デバイス100と接触した指のローリング(右から左へ、左から右へ、上向きに及び/若しくは下向きに)を、任意選択で含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス100は、任意選択で、「ホーム」又はメニューボタン204などの1つ以上の物理的ボタンも含む。前述のように、メニューボタン204は、任意選択で、デバイス100上で任意選択的に実行される、アプリケーションのセットにおける任意のアプリケーション136にナビゲートするために使用される。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーンディスプレイ上で表示されるGUI内のソフトキーとして実装される。
いくつかの実施形態では、デバイス100は、タッチスクリーンディスプレイ、メニューボタン204(ホームボタン204と呼ばれる場合がある)、デバイスへの電源供給のオン/オフ及びデバイスのロックのためのプッシュボタン206、音量調節ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、ドッキング/充電用外部ポート124を含む。プッシュボタン206は、任意選択的に、ボタンを押し下げて、既定の期間にわたってボタンを押し下げた状態に保持することによって、デバイスの電源をオン/オフするため、ボタンを押し下げて、既定の時間が経過する前にボタンを解放することによってデバイスをロックするため、及び/又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用される。いくつかの実施形態では、デバイス100は、マイクロフォン113を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力をも受け入れる。デバイス100はまた任意選択で、タッチ感知ディスプレイシステム112上の接触の強度を検出するための1つ以上の接触強度センサ165、及び/又はデバイス100のユーザに対する触知出力を生成する1つ以上の触知出力生成器163を含む。
図3Aは、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。いくつかの実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インタフェース360と、メモリ370と、及びこれらの構成要素を相互接続するための1つ以上の通信バス320とを含む。通信バス320は、任意選択的に、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることもある)を含む。デバイス300は、任意選択的にタッチスクリーンディスプレイであるディスプレイ340を含む、入出力(input/output、I/O)インタフェース330を含む。I/Oインタフェース330は、任意選択的に、キーボード及び/又はマウス(又は、他のポインティングデバイス)350、並びにタッチパッド355、デバイス300上で触知出力を生成するための触知出力生成器357(例えば、図1Aを参照して上記に説明した触知出力生成器(単数又は複数)163と同様の)、センサ359(例えば、光学センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は図1Aを参照して上記で説明した接触強度センサ(単数又は複数)165と同様の接触強度センサ)も含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択で、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ370は、任意選択で、CPU(単数又は複数)310からリモートに位置する1つ以上の記憶デバイスを含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似するプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。更に、メモリ370は、任意選択で、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を記憶する。例えば、デバイス300のメモリ370は任意選択で、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は、任意選択で、それらのモジュールを記憶しない。
上記特定された図3Aにおける要素の各々は、任意選択で、前に言及したメモリデバイスのうちの1つ以上に記憶される。上記で特定されたモジュールの各々は、上記で説明された機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、それらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において組み合わされるか、又はその他の方式で再配置される。いくつかの実施形態では、メモリ370は、任意選択で、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ370は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
図3B~図3Cは、いくつかの実施形態に係る、例示的なコンピュータシステム301のブロック図である。
いくつかの実施形態では、コンピュータシステム301は、以下のものを含む、及び/又はそれらと通信している。
・入力デバイス(単数又は複数)(302及び/又は307、例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)、
・仮想/拡張現実論理303(例えば、仮想/拡張現実モジュール145)、
・仮想ユーザインタフェース要素をユーザに表示するための表示生成コンポーネント(単数又は複数)(304及び/又は308、例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)、
・デバイスの視野の画像、例えば、仮想ユーザインタフェース要素の配置を判定し、デバイスの姿勢を判定し、及び/又はカメラ(単数又は複数)が位置する物理的環境の一部分を表示するために使用される画像をキャプチャするためのカメラ(単数又は複数)(例えば、305及び/又は311)、
・物理的環境に対するデバイスの姿勢及び/又はデバイスの姿勢の変化を判定するための姿勢センサ(単数又は複数)(例えば、306及び/又は311)。
いくつかのコンピュータシステム(例えば、図3Bの301-a)では、入力デバイス(単数又は複数)302、仮想/拡張現実論理303、表示生成コンポーネント(単数又は複数)304、カメラ(単数又は複数)305、及び姿勢センサ(単数又は複数)306は全て、コンピュータシステム(例えば、スマートフォン又はタブレットなどの図1A~図1Bのポータブル多機能デバイス100又は図3のデバイス300)に統合される。
いくつかのコンピュータシステム(例えば、301-b)では、統合された入力デバイス(単数又は複数)302、仮想/拡張現実論理303、表示生成コンポーネント(単数又は複数)304、カメラ(単数又は複数)305、及び姿勢センサ(単数又は複数)306に加えて、コンピュータシステムはまた、タッチ感知面、ワンド、リモートコントロールなどの別個の入力デバイス(単数又は複数)307、並びに/又は物理的環境上に仮想オブジェクトを重ね合わせる仮想現実ヘッドセット若しくは拡張現実眼鏡などの別個の表示生成コンポーネント(単数又は複数)308などの、コンピュータシステムとは別個の追加のデバイスと通信している。
いくつかのコンピュータシステム(例えば、図3Cの301-c)では、入力デバイス(単数又は複数)307、表示生成コンポーネント(単数又は複数)309、カメラ(単数又は複数)311、及び/又は姿勢センサ(単数又は複数)312は、コンピュータシステムとは別個であり、かつコンピュータシステムと通信している。いくつかの実施形態では、コンピュータシステム301内の構成要素、及びコンピュータシステムと通信している構成要素の他の組み合わせが使用される。例えば、いくつかの実施形態では、表示生成コンポーネント(単数又は複数)309、カメラ(単数又は複数)311、及び姿勢センサ(単数又は複数)312は、コンピュータシステムと統合された又はコンピュータシステムと通信している、のいずれかであるヘッドセットに組み込まれる。
いくつかの実施形態では、図5A~図5COを参照して後述する動作の全ては、仮想/拡張現実論理303を有する単一のコンピューティングデバイス(例えば、図3Bを参照して後述するコンピュータシステム301-a)上で実行される。しかしながら、往々にして、図5A~図5COを参照して後述する動作を実行するために、異なる複数のコンピューティングデバイスが一緒にリンクされる(例えば、仮想/拡張現実論理303を有するコンピューティングデバイスは、ディスプレイ450を有する別個のコンピューティングデバイス及び/又はタッチ感知面451を有する別個のコンピューティングデバイスと通信する)ことも理解されたい。これらの実施形態のいずれかでは、図5A~図5COを参照して後述するコンピューティングデバイスは、仮想/拡張現実論理303を含むコンピューティングデバイス(単数又は複数)である。加えて、各種実施形態では、仮想/拡張現実論理303は、別個の複数のモジュール又はコンピューティングデバイスの間で分割されてもよいことを理解されたい。しかしながら、本明細書の説明の目的のために、仮想/拡張現実論理303は、実施形態の他の態様を不必要に不明瞭にしないように、単一のコンピューティングデバイス内に存在するものとして主に言及される。
いくつかの実施形態では、仮想/拡張現実論理303は、解釈された入力を受信し、これらの解釈された入力に応じて、その後グラフィカルユーザインタフェースをディスプレイ上で更新するために使用される、解釈された入力に従ってグラフィカルユーザインタフェースを更新するための命令を生成する、1つ以上のモジュール(例えば、図1Bを参照してより詳細に上述したような1つ以上のオブジェクト更新部177及び1つ以上のGUI更新部178を含む1つ以上のイベント処理部190)を含む。いくつかの実施形態では、(例えば、図1A及び図3の接触動きモジュール130によって)検出され、(例えば、図1Bのイベント認識部180によって)認識され、かつ/又は(例えば、図1Bのイベントソータ170によって)配信された入力に対する解釈された入力は、ディスプレイ上のグラフィカルユーザインタフェースを更新するために使用される。いくつかの実施形態では、解釈された入力は、コンピューティングデバイスにおけるモジュールによって生成される(例えば、コンピューティングデバイスは、未加工の接触入力データからジェスチャを識別するように、未加工の接触入力データを受信する)。いくつかの実施形態では、解釈された入力の一部又は全ては、解釈された入力としてコンピューティングデバイスによって受信される(例えば、タッチ感知面451を含むコンピューティングデバイスは、未加工の接触入力データからジェスチャを識別するように、未加工の接触入力データを処理し、仮想/拡張現実論理303を含むコンピューティングデバイスにジェスチャを示す情報を送信する)。
いくつかの実施形態では、ディスプレイ及びタッチ感知面の両方が、仮想/拡張現実論理303を含むコンピュータシステム(例えば、図3Bの301-a)と統合される。例えば、コンピュータシステムは、統合されたディスプレイ(例えば、図3の340)及びタッチパッド(例えば、図3の355)を有するデスクトップコンピュータ又はラップトップコンピュータであってもよい。別の例として、コンピューティングデバイスは、タッチスクリーン(例えば、図2の112)を有するポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってもよい。
いくつかの実施形態では、タッチ感知面は、コンピュータシステムと統合され、ディスプレイは、仮想/拡張現実論理303を含むコンピュータシステムと統合されない。例えば、コンピュータシステムは、統合されたタッチパッド(例えば、図3の355)が別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線又は無線接続を介して)接続された、デバイス300(例えば、デスクトップコンピュータ又はラップトップコンピュータ)であってもよい。別の例として、コンピュータシステムは、タッチスクリーン(例えば、図2の112)が別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線又は無線接続を介して)接続された、ポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってもよい。
いくつかの実施形態では、ディスプレイは、コンピュータシステムと統合され、タッチ感知面は、仮想/拡張現実論理303を含むコンピュータシステムと統合されない。例えば、コンピュータシステムは、統合されたタッチディスプレイ(例えば、図3の340)が別個のタッチ感知面(例えば、遠隔のタッチパッド、ポータブル多機能デバイスなど)に(有線又は無線接続を介して)接続された、デバイス300(例えば、デスクトップコンピュータ、ラップトップコンピュータ、一体型セットトップボックスを有するテレビ)であってもよい。別の例として、コンピュータシステムは、タッチスクリーン(例えば、図2の112)が別個のタッチ感知面(例えば、遠隔のタッチパッド、遠隔のタッチパッドとして機能するタッチスクリーンを有する別のポータブル多機能デバイスなど)に(有線又は無線接続を介して)接続された、ポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってもよい。
いくつかの実施形態では、ディスプレイ又はタッチ感知面のいずれもが、仮想/拡張現実論理303を含むコンピュータシステム(例えば、図3Cの301-c)と統合されない。例えば、コンピュータシステムは、別個のタッチ感知面(例えば、遠隔のタッチパッド、ポータブル多機能デバイスなど)及び別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線又は無線接続を介して)接続された、独立型コンピューティングデバイス300(例えば、セットトップボックス、ゲームコンソールなど)であってもよい。
いくつかの実施形態では、コンピュータシステムは、一体型オーディオシステム(例えば、ポータブル多機能デバイス100内のオーディオ回路110及びスピーカー111)を有する。いくつかの実施形態では、コンピューティングデバイスは、コンピューティングデバイスとは別個のオーディオシステムと通信している。いくつかの実施形態では、オーディオシステム(例えば、テレビユニット内に統合されたオーディオシステム)は、別個のディスプレイと統合される。いくつかの実施形態では、オーディオシステム(例えば、ステレオシステム)は、コンピュータシステム及びディスプレイとは別個の独立型システムである。
ここで、ポータブル多機能デバイス100上で任意選択的に実装されるユーザインタフェース(「UI」)の実施形態に注意を向ける。
図4Aは、いくつかの実施形態に係る、ポータブル多機能デバイス100上のアプリケーションのメニューのための例示的なユーザインタフェースを示す。同様のユーザインタフェースは、デバイス300上に任意選択的に実装される。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
・セルラー信号及びWi-Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)、
・時間、
・Bluetooth(登録商標)インジケータ、
・バッテリ状態インジケータ、
・以下のような、頻繁に使用されるアプリケーションのアイコンを有するトレイ408
○不在着信又はボイスメールメッセージの数のインジケータ414を任意選択的に含む、「電話」とラベル付けされた、電話モジュール138のアイコン416、
○未読電子メールの数のインジケータ410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140のアイコン418、
○「ブラウザ」とラベル付けされた、ブラウザモジュール147のアイコン420、また、
○「音楽」とラベル付けされたビデオ及び音楽プレーヤモジュール152のアイコン422、また、
・以下のような、他のアプリケーションのアイコン、
○「メッセージ」とラベル付けされた、IMモジュール141のアイコン424、
○「カレンダ」とラベル付けされた、カレンダモジュール148のアイコン426、
○「写真」とラベル付けされた、画像管理モジュール144のアイコン428、
○「カメラ」とラベル付けされた、カメラモジュール143のアイコン430、
○「測定」とラベル付けされた、測定モジュール155のアイコン432、
○「株価」とラベル付けされた、株価ウィジェット149-2のアイコン434、
○「マップ」とラベル付けされた、マップモジュール154のアイコン436、
○「天気」とラベル付けされた、気象ウィジェット149-1のアイコン438、
○「時計」とラベル付けされた、アラーム時計ウィジェット149-4のアイコン440、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール142のアイコン442、
○「メモ」とラベル付けされた、メモモジュール153のアイコン444、また、
○デバイス100及びその様々なアプリケーション136についての設定へのアクセスを提供する、「設定」とラベル付けされた、設定アプリケーション又はモジュールのアイコン446。
図4Aに示されたアイコンのラベルは単なる例に過ぎないことに留意されたい。例えば、他のラベルが任意選択的に、様々なアプリケーションアイコンに使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図4Bは、ディスプレイ450とは別個のタッチ感知面451(例えば、タブレット又はタッチパッド355、図3A)を有するデバイス(例えば、デバイス300、図3A)上の例示的なユーザインタフェースを示す。以下の実施例のうちの多くはタッチスクリーンディスプレイ112上の入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して与えられるが、いくつかの実施形態では、デバイスは、図4Bに示すように、ディスプレイと分離したタッチ感知面上の入力を検出する。いくつかの実施形態では、タッチ感知面(例えば、図4Bにおける451)は、ディスプレイ(例えば、450)上の主軸(例えば、図4Bにおける453)に対応する主軸(例えば、図4Bにおける452)を有する。それらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの位置に対応する位置(例えば、図4Bにおいて、460は468に対応し、462は470に対応する)におけるタッチ感知面451との接触(例えば、図4Bにおける460及び462)を検出する。このように、タッチ感知面がディスプレイと分離しているとき、タッチ感知面(例えば、図4Bにおける451)上でデバイスによって検出されたユーザ入力(例えば、接触460及び462、及びそれらの移動)は、多機能デバイスのディスプレイ(例えば、図4Bにおける450)上でユーザインタフェースを操作するためにデバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
加えて、以下の実施例は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャなど)を参照して与えられるが、いくつかの実施形態では、それらの指の入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)と置換されることを理解されたい。例えば、スワイプジェスチャは、(例えば、接触の代わりの)マウスクリックに続けた、(例えば、接触の移動の代わりの)スワイプの経路に沿ったカーソルの移動によって、任意選択的に置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間はマウスクリックと置き換えられる(例えば、接触を検出して、それに続いて接触の検出を停止する代わりに)。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他のロケーションマーカーを含むいくつかの実装形態では、カーソルは、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある間に、タッチ感知面(例えば、図3Aにおけるタッチパッド355、又は図4Bにおけるタッチ感知面451)上で入力(例えば、押圧入力)が検出されると、特定のユーザインタフェース要素が検出された入力に従って調整されるように、「フォーカスセレクタ」として機能する。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な相互作用を有効化するタッチスクリーンディスプレイ(例えば、図1Aにおけるタッチ感知ディスプレイシステム112、又は図4Aにおけるタッチスクリーン)を含むいくつかの実装形態では、タッチスクリーン上で検出された接触は、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上で特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の位置において検出されると、特定のユーザインタフェース要素が検出された入力に従って調製されるように、「フォーカスセレクタ」として機能する。いくつかの実装では、タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、(例えば、タブキー又は矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形態とは関わりなく、フォーカスセレクタは一般的に、ユーザインタフェースとのユーザの意図した相互作用を通信するために(例えば、ユーザが相互作用することを意図しているユーザインタフェースの要素をデバイスに示すことによって)、ユーザによって制御されるユーザインタフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。いくつかの実施形態では、フォーカスインジケータ(例えば、カーソル又は選択インジケータ)は、1つ以上の入力デバイスから受信した入力によって影響を受けることになるユーザインタフェースの現在の部分を示すように、表示デバイスを介して表示される。
本明細書及び特許請求の範囲で使用される、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触又はスタイラスの接触)の力、又は圧力(単位面積あたりの力)、又はタッチ感知面上の接触の力又は圧力の代替物(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、数百の(例えば、少なくとも256の)別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して、判定(又は測定)される。例えば、タッチ感知面の下又はそれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値は、推定される接触の力を特定するために組み合わされる(例えば、加重平均又は合計)。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触エリアのサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化は、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。一部の実装形態では、接触の力又は圧力のための代替測定値は、強度閾値を超えているかどうかを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。いくつかの実装形態では、接触の力又は圧力のための代替測定値は、推定される力又は圧力に変換され、推定される力又は圧力は、強度閾値を超えているかどうかを判定するために使用される(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。ユーザ入力の属性として接触の強度を使用すると、(例えば、タッチ感知ディスプレイ上に)アフォーダンスを表示するため、及び/又は(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的コントロールを介して)ユーザ入力を受信するための資産が制限された、低減されたサイズのデバイス上で、そうでない場合ユーザによるアクセスが容易に可能でない場合がある、追加のデバイス機能にユーザがアクセスすることが可能になる。
いくつかの実施形態では、接触/動きモジュール130は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、強度閾値の少なくとも1つのサブセットが、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されるのではなく、デバイス100の物理ハードウェアを変化させることなく調整することができる)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の既定の閾値のうちのいずれかに設定することができる。更に、いくつかの実装形態では、デバイスのユーザは、(例えば、個々の強度閾値を調整することにより、及び/又は、システムレベルのクリック「強度」パラメータで一度に複数の強度閾値を調整することにより)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供される。
本明細書及び特許請求の範囲で使用される、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。一部の実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)に関連する既定の期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は任意選択で、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値、予め定義された期間にわたって、又は予め定義された時間において開始した接触の強度を低域フィルタリングすることによって生成された値などのうちの1つ以上に基づく。一部の実施形態では、特性強度を判定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。一部の実施形態では、特性強度は、ユーザによって動作が実行されたかどうかを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、第1の強度閾値及び第2の強度閾値を含んでもよい。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の強度閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。いくつかの実施形態では、特性強度と1つ以上の強度閾値との間の比較は、第1の操作を実行するか、又は第2の操作を実行するかを判定するために使用されるのではなく、1つ以上の操作を実行するか否か(例えば、それぞれの選択肢を実行するか、又はそれぞれの操作を実行することを控えるか)を判定するために使用される。
一部の実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、開始位置から遷移して終了位置に達する連続的なスワイプ接触(例えば、ドラッグジェスチャ)を受け取る場合があり、そのポイントにおいて接触の強度が増大する。この例では、終了位置における接触の特性強度は、スワイプ接触全体ではなく、連続的なスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の一部分のみ)に基づいてもよい。いくつかの実施形態では、接触の特性強度を特定する前に、スワイプ接触の強度に平滑化アルゴリズムが適用されてもよい。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触の強度の小幅な上昇又は降下を排除する。
本明細書で説明されるユーザインタフェースの図は、任意選択で、1つ以上の強度閾値(例えば、接触検出強度閾値IT0、軽い押圧強度閾値ITL、深い押圧強度閾値ITD(例えば、少なくとも最初はITLよりも高い)、及び/又は1つ以上の他の強度閾値(例えば、ITLよりも低い強度閾値ITH)に対する、タッチ感知面上の接触の現在の強度を示す、様々な強度の図表を含む。この強度の図は、典型的には、表示されるユーザインタフェースの一部ではないが、図の解釈を支援するために提供される。一部の実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。一部の実施形態では、深い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、それを下回ると接触がもはや検出されない名目上の接触検出強度閾値IT0を上回る)特性強度を有する接触が検出されると、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを移動させる。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の様々なセットの間で一貫している。
いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度に基づく基準に依存する。例えば、いくつかの「軽い押圧」入力の場合、入力中の第1の強度閾値を超える接触の強度は第1の応答をトリガする。いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度と時間ベースの基準の両方を含む基準に依存する。例えば、いくつかの「深い押圧」入力の場合、軽い押圧用の第1の強度閾値より大きい入力中の第2の強度閾値を超える接触の強度は、第1の強度閾値を満たすことと第2の強度閾値を満たすこととの間に遅延時間が経過した場合のみ、第2の応答をトリガする。この遅延時間は典型的には、時間が200ms(ミリ秒)よりも短い(例えば、第2の強度閾値の大きさに依存して、40ms、100ms、又は120msであり、遅延時間は第2の強度閾値が増大するにつれて増大する)。この遅延時間は、深い押圧入力の偶発的な認識を回避することを支援する。別の例として、いくつかの「深い押圧」入力の場合、第1の強度閾値が満たされた時間の後に発生する感度が低下した期間が存在する。感度が低下した期間の間、第2の強度閾値は増大する。第2の強度閾値のこの一時的な増大も、偶発的な深い押圧入力を回避するのに役立つ。他の深い押圧入力の場合、深い押圧入力の検出に対する応答は、時間ベースの基準に依存しない。
いくつかの実施形態では、入力強度閾値及び/又は対応する出力のうちの1つ以上は、ユーザ設定、接触の動き、入力タイミング、実行しているアプリケーション、強度が加わる速度、同時入力の数、ユーザ履歴、環境要因(例えば、周囲ノイズ)、フォーカスセレクタの位置などの、1つ以上の要因に基づいて変化する。例示的な要因が、米国特許出願公開第14/399,606号及び第14/624,296号に記載されており、それらは参照により全体が本明細書に組み込まれている。
例えば、図4Cは、タッチ入力476の強度にある程度基づいて経時的に変化する動的な強度閾値480を示す。動的な強度閾値480は、2つの成分、タッチ入力476が最初に検出されたときから既定の遅延時間p1後に経時的に減衰する第1の成分474、及び経時的にタッチ入力476の強度の跡を辿る第2の成分478の合計である。第1の成分474の最初の高い強度閾値は、タッチ入力476が十分な強度を提供する場合に即時の「深い押圧」応答を更に可能にしながら、「深い押圧」応答の偶発的トリガを削減する。第2の成分478は、タッチ入力の段階的な強度変動によって「深い押圧」応答の意図しないトリガを削減する。いくつかの実施形態では、タッチ入力476が動的な強度閾値480を満たすとき(例えば、図4Cにおける地点481において)、「深い押圧」応答がトリガされる。
図4Dは、別の動的な強度閾値486(例えば、強度閾値ITD)を示す。図4Dはまた、2つの他の強度閾値、第1の強度閾値ITH及び第2の強度閾値ITLを示す。図4Dにおいて、タッチ入力484が時間p2の前に第1の強度閾値ITH及び第2の強度閾値ITLを満たすが、時間482において遅延時間p2が経過するまでは応答が提供されない。また、図4Dでは、動的強度閾値486は、予め定義された遅延時間p1が時間482から経過した後(第2の強度閾値ITLと関連付けられた応答がトリガされたとき)の時間488において開始する減衰で、経時的に減衰する。このタイプの動的強度閾値は、第1の強度閾値ITH又は第2の強度閾値ITLなど、より低い強度閾値と関連付けられた応答のトリガの直後に又はそれと同時に、動的強度閾値ITDと関連付けられた応答を偶発的にトリガすることを減少させる。
図4Eは、更に別の動的な強度閾値492(例えば、強度閾値ITD)を示す。図4Eにおいて、強度閾値ITLと関連付けられた応答は、タッチ入力490が最初に検出されるときから遅延時間p2が経過した後にトリガされる。同時に、動的な強度閾値492は、タッチ入力490が最初に検出されたときから既定の遅延時間p1が経過した後に減衰する。そのため、タッチ入力490を解放することなしに、タッチ入力490の強度の増大がその後に続く、強度閾値ITLに関連付けられた応答をトリガした後のタッチ入力490の強度の減少は、タッチ入力490の強度が別の強度閾値、例えば、強度閾値ITLを下回るときでも、(例えば、時間494において)強度閾値ITDに関連付けられた応答をトリガすることができる。
軽い押圧強度閾値ITLを下回る強度から、軽い押圧強度閾値ITLと深い押圧強度閾値ITDとの間の強度への接触の特性強度の増大は、「軽い押圧」入力と呼ばれる場合がある。深い押圧強度閾値ITDを下回る強度から深い押圧強度閾値ITDを上回る強度への接触の特性強度の増大は、「深い押圧」入力と呼ばれる場合がある。接触検出強度閾値IT0を下回る強度から接触検出強度閾値IT0と軽い押圧強度閾値ITLの間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれる場合がある。接触検出強度閾値IT0を上回る強度から接触検出強度閾値IT0を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれる場合がある。いくつかの実施形態では、IT0はゼロである。いくつかの実施形態では、IT0はゼロより大きい。いくつかの例示では、タッチ感知面上の接触の強度を表すために、網掛けの円又は楕円が使用される。いくつかの例示では、それぞれの接触の強度を指定することなく、タッチ感知面上のそれぞれの接触を表すために、網掛けなしの円又は楕円が使用される。
本明細書に記載されるいくつかの実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャを検出したことに応答して、又はそれぞれの接触(若しくは複数の接触)で実行されるそれぞれの押圧入力を検出したことに応答して実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(又は複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大を検出したことに応答して実行される(例えば、それぞれの動作は、それぞれの押圧入力の「ダウンストローク」上で実行される)。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及びその後の押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後の押圧入力閾値を下回るそれぞれの接触の強度の減少を検出したことに応答して実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」上で実行される)。
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりも低いX強度単位であり、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な割合である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及びその後の押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後のヒステリシス強度閾値を下回るそれぞれの接触の強度の減少を検出したことに応答して実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」上で実行される)。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、それぞれの動作は、押圧入力(例えば、状況に応じて、接触の強度の増大又は接触の強度の減少)を検出したことに応じて実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応答して、又は押圧入力を含むジェスチャに応答して実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応答してトリガされる。更に、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。上述されたように、いくつかの実施形態では、これらの応答のトリガは、満たされる時間ベースの基準にも依存する(例えば、遅延時間は、第1の強度閾値が満たされることと第2の強度閾値が満たされることとの間で経過している)。
例示的な目的で、図4F~4Kでは特定の周波数、振幅、及び波形のみがサンプル触知出力パターンで表されているが、他の周波数、振幅及び波形を有する触知出力パターンも同様の目的で使用され得る。例えば、0.5~4回のサイクルを有する波形を使用することができる。また、60Hz~400Hzの範囲の他の周波数も用いることができる。
ユーザインタフェース及び関連するプロセス
ここで、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、1つ以上のカメラ(例えば、カメラのうちの少なくとも1つの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続して提供し、かつ任意選択的に、カメラのうちの少なくとも1つの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、1つ以上の入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(及び/又はそれらと通信している)コンピュータシステム(例えばポータブル多機能デバイス100などの電子デバイス(図1A)、デバイス300(図3A)、又はコンピュータシステム301(図3B))上で実施されてよい、ユーザインタフェース(「UI」)及び関連するプロセスの実施形態に注意を向ける。
図5A~図5COは、いくつかの実施形態に係る、拡張現実環境を使用して物理的空間の測定を行うための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図6A~6C、図7A~図7E、図8A~図8C、図9A~図9B、図10A~図10B、図11A~図11B、図12A~図12C、図13A~図13C及び図14A~図14Dにおけるプロセスを含む、以下に説明するプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。そのような実施形態では、フォーカスセレクタは任意選択で、それぞれの指若しくはスタイラスの接触、指若しくはスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触と関連付けられた点)、又はタッチ感知ディスプレイシステム112上で検出された2つ以上の接触の面心である。しかしながら、同様の操作は任意選択で、フォーカスセレクタと共に、ディスプレイ450上の図に示されるユーザインタフェースを表示している間、タッチ感知面451上の接触を検出したことに応答して、ディスプレイ450及び別個のタッチ感知面451を有するデバイス上で実行される。
図5Aは、図5A~図5COに関して記載されるユーザインタフェースが使用される状況を示す。具体的には、図5Aは、テーブル5002及びデバイス100が位置する物理的空間5000の図を示す。デバイス100は、デバイス100のタッチスクリーン112を介して、テーブル5002の一部分を含む物理的空間5000を見るために、ユーザ5004によって保持される。特に、タッチスクリーン112は、物理的空間5000に対応する拡張現実環境のビューを表示する。ユーザ5004は、デバイス100のタッチスクリーン112を使用して、表示されたユーザインタフェース5006(例えば、拡張現実測定アプリケーションのユーザインタフェース)を介して拡張現実環境と相互作用する。ユーザインタフェース5006は、デバイス100の1つ以上のカメラ(図3A~図3Bのカメラ(単数又は複数)305又は図3Cのカメラ(単数又は複数)311、任意選択で1つ以上のカメラの一部としての図1Aの光学カメラ164など、デバイス100の「カメラ」と呼ばれることもある)のうちの少なくとも1つのカメラの視野のライブプレビューを含む。いくつかの実施形態では、カメラ(単数又は複数)は、領域5008内でデバイス100上に位置する。いくつかの実施形態では、デバイス100は、タッチスクリーン112と同じデバイス100の面(例えば、図5Aではユーザ5004に向いている面)の隣の、及びその上の領域5008内に位置する前方カメラ305-aを含む。いくつかの実施形態では、デバイス100は、タッチスクリーン112の裏側で、又はタッチスクリーン112からデバイス100の反対側で(ときにはデバイス100の裏側と呼ばれる)領域5008内に位置する1つ以上のカメラを含む(例えば、図5Aでは1つ以上のカメラがユーザ5004から離れる方を向いている)。少なくとも1つのカメラは、物理的空間5000内の1つ以上の物理的オブジェクト(例えば、テーブル5002)を含んでよい、カメラの視野内にあるコンテンツのライブプレビューを継続的に提供する。
いくつかの実施形態では、ユーザインタフェース5006は、拡張現実環境とのユーザインタラクションのための1つ以上のユーザインタフェース要素を含む。例えば、図5Aでは、ユーザインタフェース5006は、拡張現実環境とのユーザインタラクションのためのエリアを示すレチクル5010を含む。いくつかの実施形態では、レチクル5010は、ユーザインタラクションのための特定の地点を示すフォーカス点5012を含む。いくつかの実施形態では、ユーザインタフェース5006は、(例えば、本明細書でより詳細に説明されるように)新しい測定(例えば、新たな測定点、新たな測定セグメント、及び/又は新たな測定領域)をユーザインタフェース5006に追加するために使用される測定追加ボタン5014を含む。いくつかの実施形態では、レチクル5010及びフォーカス点5012は、測定追加ボタン5014のアクティブ化に応答して新たな測定が追加される位置を示す測定点作成インジケータを形成する。
いくつかの実施形態では、ユーザインタフェース5006は、静止画などのメディア又は視野のビデオ(任意選択的に対応するオーディオを含む)などのメディア、及び視野内の物理的オブジェクトに対応する任意の仮想測定をキャプチャするために使用されるメディアキャプチャボタン5016を含む。いくつかの実施形態では、ユーザインタフェース5006は、ユーザインタフェース5006において直近に実行された動作を無効にするために使用されるアンドゥボタン5018を含む。いくつかの実施形態では、ユーザインタフェース5006は、ユーザインタフェース5006において最も直近に実行された動作を再度実行する(例えば、アンドゥボタン5018のアクティブ化による動作後に実行された動作の無効を無効にする)ために使用されるリドゥボタン5020を含む。ユーザインタフェース5006はまた、物理的空間5000内の1つ以上の物理的オブジェクトに対応し、かつユーザインタフェース5006のユーザインタフェース要素上のユーザ入力に少なくともある程度応答して表示される1つ以上の仮想測定を含んでもよい。いくつかの実施形態では、ユーザインタフェース5006は、ユーザインタフェース5006内に表示された仮想測定を除去するための(及び、任意選択的に、クリアボタン5022がアクティブ化されたときにカメラの視野の外にある物理的オブジェクト(単数及び複数)に対応する仮想測定など、クリアボタン5022がアクティブ化されたときにユーザインタフェース5006内に表示されない仮想測定も除去するための)クリアボタン5022を含む。
図5Bは、図5Aの縦向きとは対照的に、第1の横向きのデバイス100を示す。デバイス100が第1の横向きにある間、図5Bに示されるように、デバイス100の1つ以上のカメラは、デバイス100の左側の領域5008内に位置し、測定追加ボタン5014は、デバイス100の右側のユーザインタフェース5006内で、領域5008から離れて表示されることで、ユーザ5004がデバイス100を左側で保持し、ユーザインタフェース5006内のライブプレビューを提供するカメラの視野を見えにくくする可能性を低減する、また、デバイス100をその右側で保持しながら(例えば、ユーザ5004が自分の右手でデバイス100を保持しながら)、ユーザ5004が片手で操作する間の拡張現実環境との相互作用を容易にする。
図5Cは、図5Bにおける横向きとは異なる第2の横向きのデバイス100を示す(例えば、図5Bの横向きから180度回転された)。デバイス100が第2の横向きにある間、図5Cに示されるように、デバイス100の1つ以上のカメラは、デバイス100の右側の領域5008内に位置し、測定追加ボタン5014は、領域5008から離れてデバイス100の左側のユーザインタフェース100内に表示されることで、ユーザ5004がデバイス100を右側に保持し、ユーザインタフェース5006内のライブプレビューを提供するカメラの視野を見えにくくする可能性を低減する、また、デバイス100をその左側で保持しながら(例えば、ユーザ5004が自分の左手でデバイス100を保持しながら)、ユーザ5004が片手で操作する間の拡張現実環境との相互作用を容易にする。
図5Dは、拡張現実環境のエラー状態の一例を示す。特に、図5Dは、カメラの視野内の別個の物理的オブジェクト及び物理的特徴を認識するためにデバイス100が利用できる光が不十分である場合の物理的空間5000の図を示す。デバイス100は、ユーザインタフェース5006内にエラーメッセージ5024(例えば、「暗すぎる」及び「表面を検出するために照明のスイッチを入れよ」などの文章を含む)を表示して、エラー状態を指示し、ユーザ5004に物理的空間5000内の光の量を増加させるように促す。いくつかの実施形態では、デバイス100がカメラの視野内の物理的オブジェクト又は特徴を識別することができないようなエラー状態が存在する間、デバイス100は、エラー状態を示すためにレチクル5010及び/又はフォーカス点5012を表示するのを中止する。
図5Eは、拡張現実環境のエラー状態の別の例を示す。具体的には、図5Eは、十分な光が利用可能であるが、(例えば、ユーザ5004は、エラーメッセージ5024に応答して照明のスイッチをオンにしている)、デバイス100が、カメラの視野内にある物理的空間5000内の物理的オブジェクトの表面を検出していない、物理的空間5000の視野を示す。デバイス100は、ユーザインタフェース5006内にエラーメッセージ5026(例えば、「表面を検出するためにデバイスを左右に移動させよ」という文章による)を表示してエラー状態を示し、ユーザ5004にデバイス100を左右に移動させるように促す(例えば、デバイス100による画像処理を促進して、カメラの視野内にある物理的表面を検出する)。移動の矢印5028は、エラーメッセージ5026に応答した、ユーザ5004によるデバイス100の左右の移動を示す。いくつかの実施形態では、デバイス100が、フォーカス点5012がライブプレビュー内に表示される位置で物理的オブジェクトの表面を検出しないとき、エラーメッセージ5026が表示される。いくつかの実施形態では、ユーザ5004が検出すべき物理的オブジェクトの表面に対してデバイス100を早く移動させ過ぎた場合、エラー状態を表示して、エラー状況を示し、ユーザ5004にデバイス100をよりゆっくりと移動させるように促す。
図5Fは、デバイス100が物理的空間5000内の物理的オブジェクトの表面を検出したときの物理的空間5000の図を示す。具体的には、図5Fでは、デバイス100は、(例えば、フォーカス点5012が、ライブプレビュー内のテーブル5002の上面の上に位置決めされる間、図5Eに関して上述したようなデバイス100の左右の移動に基づいて)テーブル5002の上面を検出する。特定の表面を検出することにより、デバイス100は、フォーカス点5012に加えて、ユーザインタフェース5006内にレチクル5010を表示する。いくつかの実施形態では、フォーカス点5012が物理的空間5000内の物理的オブジェクトの検出された表面に対応するライブプレビュー内の領域の上に位置決めされる度に、レチクル5010が表示される(例えば、フォーカス点5012が位置決めされるライブプレビュー内の領域が、検出された表面に対応することを示すために)。いくつかの実施形態では、レチクル5010は、図5Fに示されるように、検出された表面と同一平面上に見えるように傾けられて、デバイスによって検出された表面を示す。
図5Gは、図5Fからの移行を示す。図5Gでは、ユーザ5004は、フォーカス点5012が、検出された表面に対応しないライブプレビュー内の地点の上に位置決めされるようにデバイス100を移動させている(例えば、フォーカス点5012は、ライブプレビュー内のテーブル5002の検出された上面の上にはもはや位置決めされていない)。したがって、デバイス100は、フォーカス点5012を表示し続けながら、レチクル5010の外観を変化させる(例えば、レチクルをもはや傾けないことによって、レチクルを黒丸に変更することによって、及び/又はレチクルの表示を停止することによって)レチクル5010の外観を変化させる。
図5Hは、図5Gからの移行を示す。図5Hでは、ユーザ5004は、フォーカス点5012及びレチクル5010の少なくとも一部が、ライブプレビュー内のテーブル5002の検出された上面の上に再び位置決めされるようにデバイス100を移動させている。デバイス100は、ライブプレビューにおいて、テーブル5002の検出された縁部(例えば、検出された上面の縁部)5030を検出した。縁部5030は、レチクル5010内に少なくとも部分的に存在する(例えば、フォーカス点5012は、縁部5030の既定の閾値距離内にあり、この場合、既定の閾値距離はレチクル5010の最大半径である)。したがって、レチクル5010及びフォーカス点5012の視覚的外観が変化する。具体的には、フォーカス点5012は、縁部5030に沿った特定の地点まで(例えば、垂直方向下向きに)移動されるか、その地点に「スナップ」される。更に、フォーカス点5012がライブプレビュー内の検出された特徴にスナップされていることを示すために、レチクル5010のサイズが縮小される。いくつかの実施形態では、レチクル5010は、フォーカス点5012がライブプレビュー内の検出された特徴にスナップされるときはいつでも図5Hに示されるサイズで表示される。いくつかの実施形態では、フォーカス点5012がカメラの視野内の物理的オブジェクトの縁部又は角に対応するライブプレビュー内の検出された特徴にスナップするときに、レチクル5010及びフォーカス点5012の視覚的外観は変更される。いくつかの実施形態では、レチクル5010及びフォーカス点5012は、カメラの視野内の物理的オブジェクトの表面に対応するライブプレビュー内の検出された特徴の上に位置決めされるとき、レチクル5010及びフォーカス点5012の視覚的外観は変更されない。いくつかの実施形態では、フォーカス点5012を縁部5030に移動させることと併せて、デバイス100は任意選択で、(例えば、図1Aの触知出力生成器163を使用して)触知出力5032を生成して、カメラのライブプレビュー内の検出された特徴に点5012が「スナップ」されたことを示す。
図5Iは、図5Hからの移行を示す。図5Iでは、ユーザ5004は、縁部5030の一部分がレチクル5010の範囲内にないようにデバイス100を移動させている。したがって、フォーカス点5012は、縁部5030から離れてスナップされ、レチクル5010の中心に再表示される(例えば、フォーカス点5012がスナップすべきレチクル5010の範囲内には、もはやいかなる特徴も存在しないため)。加えて、レチクル5010のサイズは、フォーカス点5012が縁部5030にスナップする前の、図5Fに示されるそのサイズに戻るように拡大される。いくつかの実施形態では、レチクル5010は、フォーカス点5012がライブプレビュー内の任意の検出された特徴にスナップされていないときはいつでも、デフォルトで、図5F及び図5Iに示されるサイズで表示される。いくつかの実施形態では、フォーカス点5012は、フォーカス点5012がライブプレビュー内の任意の検出された特徴にスナップされないときはいつでも、デフォルトでレチクル5010の中心に表示される。いくつかの実施形態では、図5Iに示されるように、デバイス100は任意選択的に、フォーカス点5012がカメラのライブプレビュー内の検出された特徴にもはやスナップされていないことを示すために、フォーカス点5012を縁部5030から離れるように移動させることと併せて、触知出力5034を生成する。いくつかの実施形態では、触知出力5034は、少なくとも1つの触知出力特性(例えば、周波数、振幅、及び/又はパターン)において触知出力5032(図5H)とは異なることで、検出された特徴にスナップしていることを示す触知出力5032(図5H)は、検出された特徴から離れてスナップしていることを示す触知出力5034とは異なる触知フィードバックをユーザ5004に提供する。
図5J~図5Oは、テーブル5002の水平方向の左上縁部の測定の作成を示す。図5Jは、図5Iからの移行を示す。図5Jでは、ユーザ5004は、ライブプレビュー内に表示されるテーブル5002の上部後方左の角がレチクル5010の範囲にあるようにデバイス100を移動させている。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部後方左の角に対応するアンカー点にスナップされる。いくつかの実施形態では、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部後方左の角がレチクル5010の範囲にある限り(例えば、デバイス100は、ユーザ5004の手の不安定さなどのユーザ5004の意図しない動きに起因してわずかに移動する場合もあるが)、ライブプレビュー内のアンカー点上に維持される。レチクル5010のサイズは、スナップ動作を示すために縮小される(例えば、図5Hを参照して上に示され、上述したものと同じサイズに)。加えて、触知出力5036が、スナップ動作を示すために生成される。
図5K~図5Lは、ユーザインタフェース5006への測定点の追加を示す、図5Jからの移行を示す。具体的には、図5Kは、強度計5040によって示されるように、接触強度が最小接触検出閾値IT0を上回るタッチ入力5038(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置において(仮想)測定点5042をユーザインタフェース5006に追加して表示する。測定点5042をユーザインタフェース5006に追加することと併せて、デバイス100は、測定点の追加を示す触知出力5044を任意選択的に生成する。いくつかの実施形態では、触知出力5044は、少なくとも1つの触知出力特性(例えば、周波数、振幅、及び/又はパターン)において触知出力5032(図5H)及び触知出力5034(図5I)と異なることで、スナップ動作を示す触知出力5032(図5H)及び触知出力5034(図5I)は、測定点の追加を示す触知出力5044とは異なる触知フィードバックをユーザ5004に提供する。図5Lは、測定追加ボタン5014からのタッチ入力5038のリフトオフを示す。
図5Mは、図5Lからの移行を示す。図5Mでは、ユーザ5004は、レチクル5010がライブプレビュー内に表示されるように物理的空間5000内の異なる位置の上に位置決めされるように、デバイス100を斜め下方に、かつ右に向かって移動させている。具体的には、図5Mでは、レチクル5010は、ライブプレビューに表示されるようにテーブル5002の上部前方左角の上に位置決めされる。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部前方左角に対応するアンカー点にスナップされる。レチクル5010のサイズは、スナップ動作を示すために縮小される(例えば、図5Jを参照して上に示され、かつ上述したものと同じサイズに)。触知出力5046が、スナップ動作を示すために生成される。加えて、測定点5042は、テーブル5002の上部後方左の角の上に継続して表示される(例えば、測定点5042は、テーブル5002の上部後方左の角に関連付けられ、デバイス100が移動するときテーブル5002の上部後方左の角の位置が変化しても、ライブプレビュー内のその位置の上に表示される)。
レチクル5010及びフォーカス点5012が物理的空間5000内の異なる位置の上に位置決めされるようなデバイス100の移動に応答して、測定点5042(直近に追加された測定点)とフォーカス点5012との間に測定セグメント5048が表示される。測定セグメント5048は、測定点5042に対応する物理的空間5000内の地点と、フォーカス点5012に対応する物理的空間5000内の地点との間の距離(例えば、「3フィート」)を示すラベル5049で表示される。測定セグメント5048の第2の終点が追加される前は、測定セグメント5048は、測定点5042である第1の終点と、フォーカス点5012の現在の位置である第2の終点とを有する動的測定セグメントである(例えば、測定セグメント5048の長さ及び測定セグメント5048に対応するラベル5049によって示される距離は共に、フォーカス点5012の現在の位置が対応する物理的空間5000内の地点を変えるデバイス100の移動に従って更新される)。加えて、直近に追加された測定点、すなわち測定点5042からデバイス100の移動方向に延在する物理的空間5000内の特徴に沿って仮想ガイド5050が表示される。具体的には、仮想ガイド5050は、ライブプレビュー内で斜め下方及び右に向かって延在する、テーブル5002の水平方向の左上縁部に沿って表示される。テーブル5002の左上縁部及びテーブル5002の上面の他の縁部は、本明細書では水平方向の縁部と称されるが、その理由は、たとえそれらがライブプレビュー内では斜めに見える場合であっても、それらは、デバイス100の視点から物理的空間5000内では水平であるためであることに留意されたい。
図5N~図5Oは、ユーザインタフェース5006への測定の追加を示す、図5Mからの移行を示す。具体的には、図5Nは、強度計5040によって示されるように、接触強度が最小接触検出閾値IT0を上回るタッチ入力5052(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置に、及び測定セグメント5048の第2の終点として、ユーザインタフェース5006内に(仮想)測定点5054を追加して表示する。測定点5040をユーザインタフェース5006に追加することと併せて、デバイス100は、測定点の追加を示す触知出力5056任意選択的に生成する。いくつかの実施形態では、触知出力5056は、測定点の追加を示す触知出力5044(図5K)と同じタイプの触知出力である。いくつかの実施形態では、触知出力5056は、少なくとも1つの触知出力特性(例えば、周波数、振幅、及び/又はパターン)において触知出力5044(図5K)とは異なることで、触知出力5056は、触知出力5044(図5K)と異なるフィードバックをユーザ5004に提供する。一部のそのような実施形態では、触知出力5044(図5K)は、新たな測定セグメントを開始する測定点の追加を示し、触知出力5056は、測定セグメントを完了させる(例えば、終了させる)測定点の追加を示す。図5Oは、測定追加ボタン5014からのタッチ入力5052のリフトオフを示す。タッチ入力5052のリフトオフの後、デバイス100は、測定点5042、測定点5054、ユーザインタフェース5006内で測定点5042と5054をつなぐ測定セグメント5048、及びラベル5049(テーブル5002の水平方向の左上縁部の測定に対応する)を表示し続ける。いくつかの実施形態では、図5Oに示されるように、測定セグメントが完了したとき、デバイス100は、仮想ガイド5050などの仮想ガイドの表示するのを中止する。
図5Pは、図5Oからの移行を示す。図5Pでは、ユーザ5004は、測定セグメント5048に隣接するライブプレビュー内のテーブル5002の側面上にレチクル5010が位置決めされるように、デバイス100を移動させている。デバイス100は、レチクル5010(又はより具体的にはフォーカス点5012)が位置決めされている領域が、物理的空間5000内の物理的矩形エリア(例えば、検出された領域は、デバイス100の視点から、ライブプレビュー内では台形に見えるが)に対応することを(例えば測定セグメント5048にある程度基づいて)判定する。したがって、デバイス100は、検出された領域が物理的矩形エリアに対応することを示すインジケータ5058を表示する。加えて、デバイス100は、テーブル5002の水平方向の左上縁部の上に測定点5042、測定点5054、測定セグメント5048及びラベル5049を表示し続ける。いくつかの実施形態では、仮想測定の一部である測定要素(例えば、測定点5042、測定5054、測定セグメント5048及びラベル5049)は、仮想測定に対応する物理的オブジェクト(例えば、テーブル5002の水平方向左上縁部)をライブプレビュー内で見ることができるときはいつでも、対応する仮想測定がクリアされるまでユーザインタフェース5006に表示される。
図5Q~図5Xは、テーブル5002の垂直方向の左前縁部の測定の作成を示す。図5Qは、図5Pからの移行を示す。図5Qでは、ユーザ5004は、ライブプレビューに表示されるように、レチクル5010がテーブル5002の上部前方左角の上に再度位置決めされるように、デバイス100を移動させている。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部前方左角に対応し、かつ測定点5054に対応するアンカー点にスナップされる。レチクル5010のサイズは、スナップ動作を示すために縮小される(例えば、図5Mを参照して上に示され、上述した同じサイズに)。触知出力5060が、スナップ動作を示すために生成される。デバイス100は、インジケータ5058を表示するのを中止する(例えば、フォーカス点5012は、テーブル5002の上部前方左角に対応するアンカー点にスナップされており、テーブル5002の側面の物理的矩形エリアに対応するライブプレビュー内の検出領域の上にもはや表示されていないため)。
図5Rは、ユーザインタフェース5006への測定点の追加を示す、図5Qからの移行を示す。具体的には、図5Rは、強度計5040によって示されるように、接触強度が最小接触検出閾値IT0を上回るタッチ入力5062(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。いくつかの実施形態では、図5Rに示されるように、測定追加ボタン5014のアクティブ化に応答して、デバイス100は、追加されるべき新たな測定セグメントの開始点として測定点5054を使用する。いくつかの実施形態では、測定追加ボタン5014のアクティブ化に応答して、デバイス100は、新たな測定セグメントの開始点として測定点5054と同じ位置に別の(仮想)測定点を追加して表示する。新たな測定セグメントのための前述の開始点のいずれかを確立することと併せて、デバイス100は、任意選択的に、測定点の追加を示す、(及び、いくつかの実施形態では、追加された測定点が新たな測定セグメントを開始することを示す)触知出力5064を生成する。
図5Sは、図5Rからの移行を示す。図5Sでは、ユーザ5004は、レチクル5010がテーブル5002の水平方向の前縁部に沿った位置の上に位置決めされ、かつライブプレビュー内のテーブル5002の上部前方左角がもはやレチクル5010の範囲内にはないように、デバイス100を右に向かって水平方向に移動させている。したがって、フォーカス点5012は、テーブル5002の水平方向の前縁部に対応するアンカー点上に表示される(例えば、レチクル5010の中心から最短距離である、レチクル5010の範囲内のテーブル5002の前縁部の一部分に沿った地点である、レチクル5010の範囲内であるテーブル5002の前縁部の一部分の中点で)。レチクル5010は、フォーカス点5012がライブプレビュー内の検出された特徴にスナップされていることを示すために、その縮小したサイズ(例えば、図5Rと同じサイズ)で表示される。加えて、測定点5054は、ライブプレビュー内のテーブル5002の上部前方左角の上に表示され続け、動的測定セグメント5066が測定点5054とフォーカス点5012との間に表示される。ラベル5068は、測定点5054に対応する物理的空間5000内の地点と、フォーカス点5012に対応する物理的空間5000内の地点との間の距離を示す。加えて、デバイス100の水平移動に応答して、デバイス100は測定点5054から水平方向に延在する仮想ガイド5070を表示する。
いくつかの実施形態では、図5Sに示されるように、触知出力は、スナップ動作を示すために生成されない。例えば、テーブル5002の水平方向前縁部の少なくとも一部分がレチクル5010の範囲内に維持されており、フォーカス点5012がスナップされる特定のアンカー点は、デバイス100が移動する間に変化するが、フォーカス点5012は、デバイス100の移動中、いかなる時点でもテーブル5002の水平方向前縁部から離れてスナップされない間、デバイス100は、フォーカス点5012が、検出された縁部に沿って移動するときの触知出力の連続生成を回避するために触知出力の生成を取りやめる。
図5Tは、図5Sからの移行を示す。図5Tでは、デバイス100の移動の方向は、水平方向から右に向かって垂直方向下向きに変化している。水平移動から垂直移動への移動方向の変化に応答して、デバイス100は、(水平方向)仮想ガイド5070(図5S)の表示を中止し、代わりに、デバイス100の移動方向に測定点5054から垂直方向に延在する(垂直方向)仮想ガイド5072を表示する。フォーカス点5012は、テーブル5002の垂直方向内側左縁部5074に対応するアンカー点にスナップされ、いくつかの実施形態では、図5Tに示されるように、デバイス100は、スナップ動作を示すために触知出力5076を生成する。動的測定セグメント5066は、測定点5054とフォーカス点5012の現在位置との間に表示されるように、デバイス100の移動に従って継続的に更新される。加えて、ラベル5068は、動的測定セグメント5066の中点にラベル5068が表示されるように、デバイスの移動及び動的測定セグメント5066の更新に従って継続的に更新される。
図5Uは、ユーザインタフェース5006への測定点の追加を示す、図5Tからの移行を示す。具体的には、図5Uは、強度計5040によって示されるように、接触強度が最小接触検出閾値IT0を上回るタッチ入力5078(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置で、及び完了した測定セグメントになる測定セグメント5066の第2の終点として(仮想)測定点5080をユーザインタフェース5006に追加して表示する(例えば、その第2の終点は、ここでは測定点5080であり、フォーカス点5012ではなく、もはやこれは動的測定セグメントではない)。測定点5040をユーザインタフェース5006に追加することと併せて、デバイス100は、任意選択的に、測定点の追加を示す触知出力5082を生成する(及び任意選択的に、例えば、図5Nの触知出力5056と同じタイプの触知出力を使用して測定セグメントを完了する測定点の追加を示す)。いくつかの実施形態では、図5Uに示されるように、デバイス100は、測定セグメントの完了後であっても、仮想ガイド5072などの仮想ガイドを表示し続ける(例えば、デバイス100がその現在の位置から離れるように移動するまで)。
図5Vは、ユーザインタフェース5006内で直近に実行された動作を無効にする「アンドゥ」動作を実行することを含む、図5Uからの移行を示す。具体的には、図5Vは、測定点5080(図5U)の追加を無効にするためのタッチ入力5084によるアンドゥボタン5018のアクティブ化を示す。したがって、測定点5080はユーザインタフェース5006から除去される。測定セグメント5066は、ここでは(再び)、第2の終点がフォーカス点5012であり、フォーカス点5012が移動するにつれて更新される動的測定セグメントである。
図5Wは、図5Vからの移行を示す。図5Wでは、ユーザ5004は、ライブプレビューに表示されるように、レチクル5010がテーブル5002の下部前方左角の上に位置決めされるように、デバイス100を下方に移動させている。したがって、フォーカス点5012は、テーブル5002の下部前方左角に対応するアンカー点に(及び任意選択的に、仮想ガイド5072にも)スナップされる。レチクル5010は、フォーカス点5012がライブプレビュー内の検出された特徴にスナップされていることを示すために、その縮小したサイズ(例えば、図5Uと同じサイズ)で表示される。触知出力5086が、スナップ動作を示すために生成される。図5Xでは、デバイス100は、測定セグメント5048の一部分のみがユーザインタフェース5006内に表示されるように移動しているが、これは、テーブル5002の上部後方左角はもはやライブプレビュー内で見ることができず、よって、テーブル5002の水平方向の左上縁部の一部分のみをライブプレビュー内で見ることができるためである。したがって、ラベル5049は、(例えば、図5Vに示されるように)測定セグメント5048全体の中点ではなく、測定セグメント5048の表示された部分のみの中点で表示される。
図5Xは、ユーザインタフェース5006への測定点の追加を示す、図5Wからの移行を示す。具体的には、図5Xは、強度計5040によって示されるように、接触強度が最小接触検出閾値IT0を上回るタッチ入力5088(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置に、及び完了した測定セグメントになる測定セグメント5066の第2の終点として、ユーザインタフェース5006に(仮想)測定点5090を追加して表示する。測定点5090をユーザインタフェース5006に追加することと併せて、デバイス100は、測定点の追加を示すために(及び任意選択的に、例えば図5Nの触知出力5056又は図5Uの触知質5082と同じタイプを使用して、測定セグメントを完了させる測定点の追加を示すために)、触知出力5092を任意選択的に生成する。
図5Y~図5AFは、物理的空間5000内の物理的矩形エリア(例えば、テーブル5002の表面)に対応する測定領域の作成を示す。具体的には、図5Y~図5Zは、ライブプレビュー内にその全体が一度に表示される物理的矩形エリアに対応する測定領域の作成を示す。図5Yは、図5Xからの移行を示す。図5Yでは、ユーザ5004は、測定セグメント5048及び測定セグメント5066の両方に隣接する、ライブプレビュー内のテーブル5002の側面上にレチクル5010が位置決めされるように、図5Xのその位置からデバイス100を移動させている。デバイス100は、レチクル5010(又はより具体的にはフォーカス点5012)が位置決めされているライブプレビュー内の領域が、物理的空間5000内の物理的矩形エリアに対応することを判定する(例えば、判定は、測定セグメント5048及び測定セグメント5066が検出された領域の隣接する辺であることにある程度基づいている)。したがって、デバイス100は、フォーカス点5012が位置決めされているライブプレビュー内の検出された領域が物理的矩形エリアに対応することを示すために、インジケータ5094を表示する。加えて、デバイス100は、測定セグメント5048、対応するラベル5049、測定セグメント5066、対応するラベル5068及び終点5042、5054及び5090を表示し続ける。図5Yは、図5Yが、終点5042、5054及びラベル5049を有する(第1の)測定セグメント5048に加えて、終点5054及び5090並びにラベル5068を有する(第2の)測定セグメント5066を含むこと以外は、図5Pと同様である。
図5Zは、ユーザインタフェース5006への測定領域の追加を示す、図5Yからの移行を示す。具体的には、図5Zは、フォーカス点5012が、インジケータ5094によって示される検出された領域の上にある間の、強度計5040によって示されるように接触強度が最小接触検出閾値IT0を上回るタッチ入力5096(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、検出された領域に対応する測定を追加し、インジケータ5094の外観を変化させて、検出領域が測定領域として確認されたことを示す。加えて、デバイス100は、確認された領域(例えば、"7.5ft2")に対応する物理的矩形エリアの面積を示すラベル5098を表示する。任意選択的に、いくつかの実施形態では、ラベル5098は、検出された領域が測定領域として確認される前にインジケータ5094と共に表示される(例えば、いくつかの実施形態では、ラベル5098は、図5Yのインジケータ5094と共に表示される)。
図5AAは、図5Zからの移行を示す。図5AAでは、ユーザ5004は、ライブプレビュー内のテーブル5002の水平方向左上縁部及び測定セグメント5048内の上にレチクル5010が位置決めされるように、デバイス100を垂直方向上方に移動させている。特に、測定セグメント5048の中点はレチクル5010内にある。いくつかの実施形態では、図5AAに示されるように、ユーザインタフェース5006内に表示されるそれぞれの測定セグメントの中点は、フォーカス点5012がスナップするアンカー点とすることができる。したがって、図5AAでは、フォーカス点5012は、測定セグメント5048の中点に対応する(また、テーブル5002の水平方向左上縁部の中点にも対応する)アンカー点にスナップされる。レチクル5010のサイズは、前述のように、スナップ動作を示すために縮小される。触知出力5100が、スナップ動作を示すために生成される。加えて、デバイス100は、物理的空間5000内の物理的矩形エリアに対応する検出された領域の上に、確認された領域のインジケータ5094を表示し続ける(例えば、確認された領域のインジケータ5094は、物理的矩形エリアに対応する検出された領域に関連付けられ、デバイス100が移動する際に検出領域がライブプレビュー内で移動する間でも、ライブプレビュー内の検出領域の上に表示される)。
図5AB~図5AEは、ライブプレビュー内で部分的に見ることができるが、その全体が一度に見ることができない、物理的空間5000内の物理的矩形エリアに対応する測定領域の作成を示す(例えば、物理的矩形エリアの3辺のみがライブプレビュー内で、全体的に又は部分的に見ることができる)。図5ABは、図5AAからの移行を示す。図5ABでは、ユーザ5004は、測定セグメント5048に隣接し、かつテーブル5002の上面の部分図に対応する、ライブプレビュー内の領域の上にレチクル5010が位置決めされるように、デバイス100を右に向かって水平方向に移動させている。具体的には、テーブル5002の上面の左縁部は見ることが可能であり、テーブル5002の上面の前縁部の一部分が見ることが可能であり、テーブル5002の上面の後縁部の一部分は見ることが可能であるが、テーブル5002の上面の右縁部は見ることができない。フォーカス点5012は、測定セグメント5048の中点に対応するアンカー点から離れてスナップされ、レチクル5010の中心に再表示される。レチクル5010は、その増大したサイズで再表示され、触知出力5102が、任意選択的に、アンカー点から離れて移動するフォーカス点5012と共に生成される。加えて、デバイス100は、レチクル5010(又はより具体的にはフォーカス点5012)が位置決めされる領域は、物理的空間5000内の物理的矩形エリアの一部分に対応する(例えば、検出された領域は、デバイス100の視点からライブプレビュー内では矩形には見えないが)ことを判定する(測定セグメント5048にある程度基づいて)。したがって、デバイス100は、検出領域が物理的矩形エリアに対応することを示すインジケータ5104を表示する。任意選択的に、デバイス100の移動に従って、仮想ガイド5106が表示される。仮想ガイド5106は水平方向に延在し、デバイス100の移動方向に水平方向に延在すると識別された、ライブプレビュー内の特徴に対応する。いくつかの実施形態では、複数の特徴がデバイス100の移動方向に延在する場合、移動方向に延在する複数の仮想ガイドが表示される。いくつかの実施形態では、移動方向に延在する仮想ガイドは、対応する測定点がユーザインタフェース5006内に既に追加されている特徴に対してのみ表示される。
図5AC~図5ADは、レチクル510がライブプレビュー内のテーブル5002の上面上に配置されている間のデバイス100の更なる水平移動を示す。図5ACでは、テーブル5002の上面の前縁部の一部分及び後縁部の一部分は見ることが可能であるのに対し、テーブル5002の上面の左縁部も右縁部も見ることができない。図5ADでは、前縁部の一部分及び後縁部の一部分に加えて、テーブル5002の上面の右縁部も、ここでは見ることが可能である。デバイス100は、ライブプレビュー内のテーブル5002の上面の見ることが可能な部分の上のインジケータ5104、並びにデバイス100の水平移動による水平方向の仮想ガイドを表示し続ける。
図5AEは、ユーザインタフェース5006への測定領域の追加を示す、図5ADからの移行を示す。具体的には、図5AEは、フォーカス点5012が、インジケータ5104によって示される検出された領域の上にある間の、強度計5040によって示されるように接触強度が最小接触検出閾値IT0を上回るタッチ入力5108(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、検出領域の一部分しか見ることができないが、検出領域全体に対応する測定を追加し、検出領域が測定領域として確認されたことを示すインジケータ5104の外観を変更する。更に、デバイス100は、ラベル5110、ラベル5112及びラベル5114を表示する。ラベル5110は、(全体の)確認された領域に対応する(全体の)物理的矩形エリアの面積を示す。ラベル5112は、確認された領域(例えば、テーブル5002の上面の右縁部)に対応する、物理的矩形エリアの第1の辺の長さを示す。ラベル5114は、確認された領域(例えば、テーブル5002の上面の前縁部)に対応する物理的矩形エリアの第1の辺に隣接する第2の辺の長さを示す。任意選択的に、いくつかの実施形態では、ラベル5114は、検出領域が測定領域として確認される前にインジケータ5104と共に表示される(例えば、いくつかの実施形態では、ラベル5114は、図5ADのインジケータ5104と共に表示される)。
図5AFは、図5AEからの移行を示す。図5AFでは、ユーザ5004は、テーブル5002の左部分がライブプレビューで見えるように、デバイス100を左に向かって水平方向に移動させている。インジケータ5094、測定セグメント5048及び測定セグメント5066(それぞれの関連ラベルと共に)は、たとえ、デバイス100が、これらの要素及びテーブル5002の対応する特徴をユーザインタフェース5006内で見ることが可能であった位置から離れるように予め移動されており、これらの要素及びテーブル5002の対応する特徴をユーザインタフェース5006内で(再び)見ることができる(図5AFに示されるなどの)位置に戻るように今は移動されているとしても、テーブル5002のそれぞれの特徴(例えば、テーブル5002のそれぞれ側面、水平方向左上縁部、及び垂直方向左前縁部)に対応するそれぞれの位置でユーザインタフェース5006内に表示される。加えて、たとえデバイス100が、ユーザインタフェース5006内で現在見ることができない、テーブル5002の上面の異なる部分を表示している間に、テーブル5002の上面に対応する検出領域が確認されたとしても、インジケータ5104(その関連ラベルと共に)は、テーブル5002の上面の見ることが可能な部分の上に表示される。
図5AGは、物理的空間5000のライブプレビュー上に、かつ物理的空間5000に対応して表示される全ての測定(例えば、現在カメラの視野内にない物理的オブジェクトに対応する測定を含む)をユーザインタフェース5006からクリアする作業を示す。図5AGでは、タッチ入力5116によるクリアボタン5022のアクティブ化に応答して、測定セグメント5048及び5066、測定点5042、5054及び5090、インジケータ5094及び5104、並びに全ての対応するラベルがユーザインタフェース506から除去される。
図5AH~図5ASは、連続するタッチ入力の強度の変化に基づいた測定の連続的作成を示す。具体的には、図5AH~図5AMは、テーブル5002の水平方向左上縁部の測定の作成を示す。図5AHは、図5AGからの移行を示す。図5AHでは、ユーザ5004は、ライブプレビュー内に表示されたテーブル5002の上部後方左角がレチクル5010の範囲内にあるようにデバイス100を移動させている。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部後方左の角に対応するアンカー点にスナップされる。レチクル5010は、スナップ動作を示すために、その縮小したサイズで表示される。加えて、触知出力5118が、スナップ動作を示すために任意選択的に生成される。
図5AIは、ユーザインタフェース5006への測定点の追加を示す、図5AHからの移行を示す。具体的には、図5AIは、強度計5040によって示されるように軽い押圧強度閾値ITLを上回る接触強度を有するタッチ入力5120(例えば、軽い押圧ジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置でユーザインタフェース5006に(仮想)測定点5122を追加して表示する。測定点5122をユーザインタフェース5006に追加するのと併せて、及び軽い押圧強度閾値ITLを上回るタッチ入力5120の接触強度の増大に応答して、デバイス100は、任意選択的に、測定点の追加を示す触知出力5124を生成する。いくつかの実施形態では、図5AIに示されるように、タッチ入力5120の接触強度が増大するにつれて測定追加ボタン5014のサイズは縮小される(例えば、タッチ入力5038の接触強度が、最小接触検出閾値IT0と軽い押圧強度閾値ITLとの間にある図5Kよりも、タッチ入力5120の接触強度が軽い押圧強度閾値ITLを上回る図5AIにおいて測定追加ボタン5014はより小さくなる)。
図5AJは、タッチ入力5120が、最小接触検出閾値IT0を上回るが、軽い押圧強度閾値ITLを下回る低下した接触強度で測定追加ボタン5014上で維持されていることを示す、図5AIからの移行を示す。いくつかの実施形態では、デバイス100は、軽い押圧強度閾値ITLを下回るタッチ入力5120の接触強度の低下を検出すると、触知出力を生成する(例えば、図5AIに示されるように、触知出力5124は、軽い押圧強度閾値ITLを上回るタッチ入力5120の接触強度の増大に応答して生成されるものではないが、代わりに、図5AJに示されるように、軽い押圧強度閾値ITLを下回るタッチ入力5120の接触強度の低下に応答して生成される)。
図5AKは、図5AJからの移行を示す。図5AKでは、ユーザ5004は、測定追加ボタン5014上のタッチ入力5120を、最小接触検出閾値IT0を超え、かつ軽い押圧強度閾値ITLを下回る接触強度で維持しながら、デバイス100を斜め下方に右に向かって移動させている。デバイス100は、ライブプレビューに表示されるように、レチクル5010がテーブル5002の上部前方左角の上に位置決めされるように移動されている。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部前方左角に対応するアンカー点にスナップされる。レチクル5010は、スナップ動作を示すためにその縮小したサイズで表示され、任意選択的に、触知出力5126が、スナップ動作を示すように生成される。測定点5122は、ライブプレビュー内のテーブル5002の上部後方左角の上に表示され続け、フォーカス点5012の現在位置と測定点5122との間に動的測定セグメント5128が表示される。加えて、デバイス100の移動に従って、仮想ガイド5130が表示され、この場合仮想ガイド5130は、測定点5122から、かつユーザインタフェース5006内のテーブル5002の水平方向左上縁部に沿って斜めに延在する。
図5ALは、ユーザインタフェース5006への測定点の追加を示す、図5AKからの移行を示す。具体的には、図5ALは、強度計5040によって示されるようにタッチ入力5120の接触強度が軽い押圧強度閾値ITLを上回るまで増大することによって、測定追加ボタン5014上でタッチ入力5120が維持されている間の測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置に、及び測定セグメント5128の第2の終点として、ユーザインタフェース5006に(仮想)測定点5132を追加して表示する。測定点5132をユーザインタフェース5006に加え、軽い押圧強度閾値ITLを上回るタッチ入力5120の接触強度の増大に応答して、デバイス100は、任意選択的に、測定点の追加を示す触知出力5134を生成する。いくつかの実施形態では、図5ALに示されるように(及び図5AIを参照して先に説明したように)、タッチ入力5120の接触強度が増大するにつれて、測定追加ボタン5014のサイズは縮小される。任意選択的に、図5ALに示されるように、測定セグメント5128が完了したとき、デバイス100は、仮想ガイド5130を表示するのを中止する。
図5AMは、タッチ入力5120が、最小接触検出閾値IT0を上回るが、軽い押圧強度閾値ITLを下回る接触強度で測定追加ボタン5014上で維持されていることを示す、図5ALからの移行を示す。いくつかの実施形態では、デバイス100は、図5AJに関して本明細書で説明されるように、軽い押圧強度閾値ITLを下回るタッチ入力5120の接触強度の低下を検出すると、触知出力を生成する。
図5AN~図5ARは、同じ連続するタッチ入力5120を使用して、測定セグメント5128と連続する(例えば、それと共通の終点を有する)別の測定セグメントの追加を示す、図5AMからの移行を示す。図5ANでは、ユーザ5004は、測定追加ボタン5014上のタッチ入力5120を、最小接触検出閾値IT0を上回り、かつ軽い押圧強度閾値ITLを下回る接触強度で維持しながら、デバイス100を斜め上方に右に向かって移動させている。デバイス100は、レチクル5010が、フォーカス点5012がスナップされるいかなる特徴も含まない、テーブル5002の上面の特定のエリアの上に位置決めされるように移動されている。したがって、フォーカス点5012はレチクル5010の中心に表示され、レチクル5010はその増大したサイズで表示される。測定点5122、測定セグメント5128及び測定点5132は、ライブプレビュー上に表示され続け、フォーカス点5012の現在位置と測定点5122との間に動的測定セグメント5136が表示される。ライブプレビューは、デバイス100の移動の方向に延在するいかなる特徴も含まないため、仮想ガイドは表示されない。例えば、デバイス100の移動は水平方向からの規定の角度を超えており、そのため、水平方向に延在するライブプレビュー内の特徴について仮想ガイドは表示されない。加えて、デバイス100の移動は、垂直方向からの既定の角度を超えているため、垂直方向に延在するライブプレビュー内の特徴に関しても仮想ガイドは表示されない。
図5AOは、図5ANからの移行を示す。図5AOでは、ユーザ5004は、測定追加ボタン5014上のタッチ入力5120を、最小接触検出閾値IT0を上回り、かつ軽い押圧強度閾値ITLを下回る接触強度で維持しながら、デバイス100を水平方向に、右に向かって移動させている。デバイス100が移動されたことで、測定点5122、測定セグメント5128及び測定点5132がもはやユーザインタフェース5006内に表示されなくなり、これは、それらが対応する物理的特徴が、ユーザインタフェース5006に表示されたライブプレビュー内にもはや存在しないためである。動的測定セグメント5136は、フォーカス点5012の現在位置から延在するように引き続き表示される。しかしながら、測定点5132(動的測定セグメント5136の他方の終点)はユーザインタフェース5006内にもはや表示されないので、動的測定セグメント5136は、ユーザインタフェース5006の縁部へと(例えば、測定点5132の投影位置に向かって)延在するのみである。加えて、デバイス100の水平移動に従って、仮想ガイド5138が表示され、この場合、仮想ガイド5138は、測定点5132(その投影位置)から、及びユーザインタフェース5006内のテーブル5002の水平方向前縁部に沿って水平方向に延在する。
図5APは、図5AOからの移行を示す。図5APでは、ユーザ5004は、測定追加ボタン5014上のタッチ入力5120を最小接触検出閾値IT0を上回り、かつ軽い押圧強度閾値ITLを下回る接触強度で維持しつつ、デバイス100を右に向かって、わずかに下方に移動している。デバイス100は、ライブプレビュー内のテーブル5002の水平方向前縁部に対応する仮想ガイド5138が、少なくとも部分的にレチクル5010の範囲内にあるように移動されている(例えば、フォーカス点5012は、仮想ガイド5138(及びライブプレビュー内のテーブル5002の水平方向前縁部の既定の距離(例えば、既定の距離はレチクル5010の半径である)内にある)。したがって、フォーカス点5012は、仮想ガイド5138に(例えば、レチクル5010の中心から最短距離である仮想ガイド5138に沿った地点)にスナップされる。レチクル5010は、その縮小したサイズで表示され、任意選択的に、触知出力5140が生成されてスナップ動作を示す。動的測定セグメント5136は、フォーカス点5012の現在位置からユーザインタフェース5006の縁部まで(例えば、測定点5132の投影位置に向かって)延在するように引き続き表示される。加えて、水平仮想ガイド5138の規定の角度の範囲内にあるデバイス100の継続的な移動に従って、水平仮想ガイド5138は、ユーザインタフェース5006内のテーブル5002の前縁部に沿って引き続き表示される。
図5AQは、図5APからの移行を示す。図5AQでは、ユーザ5004は、測定追加ボタン5014上のタッチ入力5120を、最小接触検出閾値IT0を上回り、かつ軽い押圧強度閾値ITLを下回る接触強度で維持しながら、デバイス100を水平方向に右に向かって移動させている。デバイス100は、ライブプレビューに表示されるように、レチクル5010がテーブル5002の上部前方右角の上に位置付けられるように移動されている。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部前方右角に対応するアンカー点にスナップされる。レチクル5010は、スナップ動作を示すために、その縮小したサイズで表示される。動的測定セグメント5136は、フォーカス点5012の現在位置からユーザインタフェース5006の縁部まで(例えば、測定点5132の投影位置に向かって)延在するように引き続き表示される。加えて、図5AN~図5AQのシーケンスでは、測定セグメント5136に対応するラベルは、デバイス100が移動されるときに動的測定セグメント5136によって表される測定の長さの変化を反映するように更新される。加えて、デバイス100の継続的な水平移動に従って、水平仮想ガイド5138は、ユーザインタフェース5006内のテーブル5002の前縁部に沿って引き続き表示される。
図5AR~図5ASは、ユーザインタフェース5006への測定点の追加を示す、図5AQからの移行を示す。具体的には、図5ARは、強度計5040によって示されるようにタッチ入力5120の接触強度が軽い押圧強度閾値ITLを上回るまで増大することによって、測定追加ボタン5014上でタッチ入力5120が維持されている間の、測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置に、及び測定セグメント5136の第2の終点としてユーザインタフェース5006に(仮想)測定点5142を追加して表示する。測定点5142をユーザインタフェース5006に加え、軽い押圧強度閾値ITLを上回るタッチ入力5120の接触強度の増大に応答して、デバイス100は、任意選択的に、測定点の追加を示す触知出力5144を生成する。加えて、タッチ入力5120の接触強度が増大するにつれて、測定追加ボタン5014のサイズは(任意選択的に)縮小される。任意選択的に、図5ARに示されるように、デバイス100は、測定セグメント5136が完了した後であっても、仮想ガイド5138を引き続き表示する。
図5ASは、測定追加ボタン5014からのタッチ入力5120のリフトオフを示す。いくつかの実施形態では、測定追加ボタン5014からのタッチ入力5120のリフトオフの後(及び何らかの後続のタッチ入力が検出される前)、デバイス100の更なる移動は、測定点5142から延在する(例えば、及び測定セグメント5136と連続している)新たな動的測定セグメントの表示を生じさせない。すなわち、連続タッチ入力5120のリフトオフは、タッチ入力5120に基づいて新しい測定セグメントの連続作成を終了する。
いくつかの実施形態では、デバイスは、一連の押圧ジェスチャ(タッチ感知面との接触が維持されている)とは異なるように、一連のタップジェスチャ(タッチ感知面との接触が維持されない)に応答する。別個のタップジェスチャである(単一の連続して検出された接触で行われる押圧ジェスチャではなく)入力の場合、測定セグメントは、各その後に追加される測定点と共に連続して作成されない。すなわち、一連のタップジェスチャの場合、ユーザが4つの点を連続して下げる場合、第1の点と第2の点との間に測定セグメントが作成され、第3の点と第4の点との間に別の測定セグメントが作成されるが、第2の点と第3の点との間には測定セグメントは作成されない。
図5ATは、図5ASからの移行を示す。図5ATでは、デバイス100は、レチクル5010が、ライブプレビューで表示されるように、テーブル5002の上部前方左角の上に、かつ測定点5132の上に表示されるような位置決めされるように移動されている。したがって、フォーカス点5012は、ライブプレビュー内のテーブル5002の上部前方左角に対応するアンカー点で測定点5132にスナップされる。レチクル5010は、スナップ動作を示すために、その縮小したサイズで表示される。測定セグメント5128及び測定セグメント5136は、ユーザインタフェース5006内のライブプレビュー内に(再び)表示されているテーブル5002の対応する特徴に従って、テーブル5002のそれぞれの特徴(例えば、テーブル5002の水平方向左上縁部及び水平方向前縁部それぞれ)に対応するそのそれぞれの位置でユーザインタフェース5006内に表示される。測定セグメント5128は、その終点、すなわち測定点5122と測定点5132との間に表示される。測定セグメント5136は、測定点5132(測定セグメント5136の1つの終点)からユーザインタフェース5006の縁部まで(例えば、測定セグメント5136の他方の終点であり、かつユーザインタフェース5006内で現在見ることができない測定点5142の投影位置に向かって)延在するように表示される。加えて、測定点5132の上に位置するレチクル5010に従って、測定点5132から延在する仮想ガイド5146、5148及び5150が表示される。仮想ガイド5146は、測定点5132からx方向に(例えば、テーブル5002の水平方向前縁部に沿って水平方向に)延在する。仮想ガイド5148は、測定点5132からy方向に(例えば、テーブル5002の垂直方向前方左縁部に沿って垂直方向に)延在する。仮想ガイド5150は、測定点5132からz方向に(例えば、テーブル5002の水平方向左上縁部に沿って水平に)延在する。
図5AU~図5AXは、ユーザインタフェース5006への測定セグメントの追加を示す、図5ATからの移行を示す。図5AUは、強度計5040によって示されるように接触強度が最小接触検出閾値IT0を上回る接触強度を有するタッチ入力5152(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、追加される新たな測定セグメントの開始点として測定点5132を使用し、任意選択的に、新たな測定セグメントの開始を示す触知出力5154を生成する。
図5AVは、(タッチ入力5152のリフトオフの後)ユーザ5004が、デバイス100をテーブル5002の垂直方向左前縁部に沿って下方に移動させたことを示す。フォーカス点5012は、テーブル5002の下部前方左角ではない、テーブル5002の垂直方向左前縁部に沿ったアンカー点にスナップされる。レチクル5010は、スナップ動作を示すために、その縮小したサイズで表示される。また、垂直移動に従って、デバイス100は、測定点5132から垂直方向に延在する仮想ガイド5148を引き続き表示し、また測定点5132から垂直方向に(又は垂直方向の所定の角度の範囲内にある方向に)延在していない仮想ガイド5146及び5150を表示するのを中止している。加えて、測定点5132とフォーカス点5012の現在位置との間に動的測定セグメント5156が表示される。
図5AWは、強度計5040によって示されるように接触強度が最小接触検出閾値IT0を上回る接触強度を有するタッチ入力5158(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5014のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在位置に、及び完了した測定セグメントになる測定セグメント5156の第2の終点としてユーザインタフェース5006に測定点5160を追加して表示する。測定点5160をユーザインタフェース5006に追加することと併せて、デバイス100は、(例えば、測定セグメントの完了を示すために)触知出力5162を任意選択的に生成する。図5AXは、測定追加ボタン5014からのタッチ入力5158のリフトオフを示す。
図5AY~図5BEは、ユーザインタフェース5006内の拡張現実環境とのズームインタラクションの例を示す。具体的には、図5AY~図5BAは、表示された測定点のズーム支援再配置を示す。図5AYは、強度計5040によって示されるように最小接触検出閾値IT0を上回る接触強度で測定点5160上で検出されたタッチ入力5164を示す。測定点5160上でタッチ入力5164を検出したことに応答して、デバイス100は、測定点5160を含むライブプレビューの一部分(例えば、測定点5160を中心としたライブプレビューの部分)を拡大するか、又はその部分にズームインする。ライブプレビューのズーム量は、デバイス100と、測定点5160が対応するテーブル5002上の地点(例えば、テーブル5002上の下部前方左角の真上のテーブル5002上の地点)との間の距離に基づく。例えば、図5AYでは、デバイス100が、測定点5160が対応するテーブル5002上の地点からの距離d1にある場合、ライブプレビューは4Xのズーム率によって拡大される。
図5AZは、タッチ入力5164がテーブル5002の下部前方左角に対応するアンカー点の上にあるように、タッチスクリーン112を横切るタッチ入力5164の移動(例えば、タッチ入力5164における接触によるパンジェスチャ又はドラッグジェスチャ)を示す、図5AYからの移行を示す。測定点5160は、タッチスクリーン112を横切るタッチ入力5164の移動と共にユーザインタフェース5006内で移動する。いくつかの実施形態では、図5AZに示されるように、測定点5160は、タッチ入力5164が移動したアンカー点にスナップされる。したがって、測定点5160は、テーブル5002の下部前方左角に対応するアンカー点に表示される。測定点5160の移動と併せて、測定セグメント5156が延ばされ、そのラベルがそれに従って(テーブル5002の垂直方向左前縁部の長さを示すように)更新される。加えて、デバイス100は、スナップ動作を示すために触知出力5166を任意選択的に生成する。
いくつかの実施形態では、デバイス100は、カメラの位置から、測定点が表示される物理的空間5000内の検出された表面上の位置までベクトルを決定する。いくつかの実施形態では、デバイス100は、決定されたベクトルと検出された表面との間の角度を決定する。いくつかの実施形態では、決定されたベクトルが、検出された表面の既定の閾値角度の範囲内にあるという判定に従って(例えば、決定された角度は、15、18、20、25又は30度などの既定の閾値角度未満である)、1つ以上のユーザ入力のセットを受信して測定点を移動させるとき、測定点は、決定されたベクトルに沿った位置に対応するユーザインタフェース5006内の位置を通って移動される。
図5BAは、図5AZからの移行を示す。いくつかの実施形態では、図5BAに示されるように、タッチ入力5164をリフトオフすると、デバイス100は、拡大されたライブプレビュー(その拡大された部分)を表示するのを中止し、ズームなしでライブプレビューを再表示する。いくつかの実施形態では、タッチ入力5164のリフトオフ後、デバイス100は、後続の入力(ズームされたライブプレビューから出てズームなしで表示されたライブプレビューに戻るための)が検出されるまで、拡大されたライブプレビューを表示し続ける。
デバイス100は図5AX~図5AZでは同じ位置に維持されているため、レチクル5010は、図5AX(測定点5160のズーム支援再配置前)のものと同じサイズ及び同じ位置で図5BAに表示される。図5AY~図5AZに関して記載されているように、測定点5160は、テーブル5002の下部前方左角に対応するアンカー点に再度位置決めされているため、測定点5160は、レチクル5010の外側で、図5BAでズームなしで表示されているライブプレビュー内のそのアンカー点で表示される。延ばされた測定セグメント5156及びその対応する更新ラベルも同様に表示される。
図5BB~図5BCは、別の例示的なズームインタラクションを示す。図5BBは、デバイス100が、図5BBにおいて、図5AYにおける距離d1よりも短い距離d2で、図5AXよりも、テーブル5002に(又はより具体的には、測定点5160が対応するテーブル5002上の地点に)より近づけて位置決めされること以外は(図5AYでユーザ5004、デバイス100及びテーブル5002の側面図によって示されるように)、図5AXと同様である。したがって、図5BCに示されるように、測定点5160上でタッチ入力5168を検出したことに応答して、デバイス100は、測定点5160を含むライブプレビューの一部にズームインする。図5BCにおけるライブプレビューのズーム量は、デバイス100とテーブル5002との間のより小さい距離d2に基づいており、これにより図5BCのライブプレビューのズーム量は2Xのズーム倍率に相当し、4Xのズーム倍率に相当する図5AYにおけるズーム量より小さい。加えて、デバイス100は、図5AXよりも、図5BBにおいてテーブル5002により近づくため、測定セグメント5156に沿って1フィート間隔でスケールマーカーが表示される(例えば、図5AXにはスケールマーカーが表示されないこととは対照的に)。また、デバイス100は、図5AXよりも、図5BBにおいてテーブル5002により近づくため、表示される測定に対応するラベルのサイズは、図5BBでは、図5AXよりも大きくなる。
図5BD~図5BEは、別の例示的なズームインタラクションを示す。図5BDは、図5BBにおける距離d2より小さい距離d3で、デバイス100が、図5BDでよりも、図5BBにおいてテーブル5002に(又は、より具体的には、測定点5160が対応するテーブル5002上のその地点に)より近づけて位置決めされること以外は、図5BBと同様である。したがって、図5BEに示されるように、測定点5160上でタッチ入力5170を検出したことに応答して、デバイス100は、測定点5160を含むライブプレビューの一部分にズームインする。図5BEにおけるライブプレビューのズーム量は、デバイス100とテーブル5002との間のより小さい距離d3に基づいており、これにより図5BEにおけるライブプレビューのズーム量は、1.5Xのズーム率に対応し、ズーム倍率2Xに対応する図5BCのズーム量より小さい。加えて、デバイス100は、図5BDでよりも、図5BDにおいてテーブル5002により近くなるため、測定セグメント5156に沿って1インチの間隔でスケールマーカーが表示される(例えば、図5BBにおいて1フィート間隔で表示されるスケールマーカーとは対照的に)。また、デバイス100は、図5BBよりも、図5BDにおいてテーブル5002により近くなるため、表示される測定に対応するラベルのサイズは、図5BBよりも図5BDでより大きくなる。いくつかの実施形態では、測定セグメントに沿ってマーカーが表示されるスケールは、デバイス100と測定セグメントに対応する物理的特徴との間の距離が減少するにつれて、より細かくなる(例えば第1の距離を上回る距離では、スケールマーカーは表示されず、第1の距離と第2の距離との間の距離(第1の距離よりも短い)では、スケールマーカーが1フィート間隔で表示され、第2の距離と第3の距離との間の距離(第2の距離より短い)では、スケールマーカーは1インチ間隔で表示され、第3の距離より短い距離では、スケールマーカーは、4分の1インチ間隔で表示されるなど)。
いくつかの実施形態では、図5AYに表示されるズーム量は、最大ズーム量であり、そのため、デバイス100とテーブル5002との間の距離(又は表示された測定点が対応するテーブル5002上の点)が、図5AYに示される距離d1より大きい場合、ライブプレビューのズーム量はなおも4Xのズーム率に相当する。いくつかの実施形態では、図5BEに表示されるズーム量は最小ズーム量であり、それにより、デバイス100とテーブル5002との間の距離(又は表示された測定点が対応するテーブル5002上の点)が図5BEに示す距離d3より小さい場合、ライブプレビューのズーム量は依然として1.5Xのズーム率に相当する。
同様に、いくつかの実施形態では、図5AYに表示されるラベルのサイズは最小ラベルサイズであり、それにより、デバイス100とテーブル5002との間の距離(又は表示された測定点が対応するテーブル5002上の点)が図5AYに示される距離d1より大きい場合、ラベルのサイズは図5AYと同じである。いくつかの実施形態では、図5BEに表示されるラベルのサイズは最大ラベルサイズであり、それにより、デバイス100とテーブル5002との間の距離(又は表示された測定点が対応するテーブル5002上の点)が図5BEに示される距離d3より小さい場合、ラベルのサイズは図5BEと同じである。
図5BF~図5BKは、ユーザインタフェース5006内の拡張現実環境の画像をキャプチャすることを示す。図5BFは、図5BAからの移行を示す。図5BFでは、ユーザ5004は、測定セグメント5128、5136及び5156並びにそれらの対応する終点及びラベルが、ユーザインタフェース5006内に表示され、テーブル5002の対応する特徴をライブプレビュー内で見ることができるようにデバイス100を位置決めしている。図5BGは、強度グラフ5180に示される強度の増大によって示されるような、タッチ入力5172によるメディアキャプチャボタン5016のアクティブ化を示しており、強度グラフは、経時的なタッチ入力5172の接触強度を示している。
図5BHは、既定の閾値時間Tth(例えば、タッチ入力5172がタップジェスチャである)の前のタッチ入力5172のリフトオフに基づく、図5BGからの移行を示す。したがって、強度グラフ5180は、時間Tthの前の、タッチ入力5172のゼロまでの接触強度の対応する減少を示す。既定の閾値時間Tthの前にタッチ入力5172のリフトオフを検出したことに応答して、デバイス100は、拡張現実環境の画像5174をキャプチャする。キャプチャされた画像5174は、ライブプレビューの瞬間的なスナップショットに対応するカメラの視野の画像と、カメラの視野の画像上に重ね合わされた測定セグメント5128、5136及び5156をその対応する終点及びラベルと共に含む静止画像である。いくつかの実施形態では、図5BHに示されるように、キャプチャされた画像5174は、ユーザインタフェース5006内のボタン/コントロールの画像は含まない。
図5BIは、テーブル5002の異なる斜視図がライブプレビュー内に表示されるように、デバイス100がテーブル5002に対して異なる位置(テーブル5002の左側面に面する)にある間の、メディアキャプチャボタン5016のアクティブ化に応答する画像のキャプチャを示す。強度グラフ5180によって示されるように、規定の閾値時間Tthの前の、タッチ入力及びタッチ入力のリフトオフによるメディアキャプチャボタン5016のアクティブ化に応答して、デバイス100は拡張現実環境の画像5176をキャプチャする。キャプチャされた撮影画像5176は、図5BIのその位置(例えば、テーブル5002の左側面に面する)でデバイス100の視点からのテーブル5002の画像を含む静止画像である。測定セグメント5128、5136及び5156並びにそれらの対応する終点及びラベルは、図5BIのデバイス100の視点に基づいて、キャプチャされた画像5176内のテーブル5002の対応する特徴上に重ね合わされる。
図5BJは、図5BGからの移行を示す。図5BGと併せて、図5BJ~図5BKは、メディアキャプチャボタン5016(例えば、長い押圧ジェスチャ)上で維持されたタッチ入力に応答して、拡張現実環境のビデオをキャプチャすることを示す。図5BJでは、タッチ入力5172は、強度グラフ5180によって示されるように、既定の閾値時間Tthを超えてメディアキャプチャボタン5016上に維持される。したがって、デバイス100は、カメラの視野のビデオをキャプチャする。タイマー5178が、ユーザインタフェース5006内に表示され、キャプチャされたビデオの現在の長さを示す。更に、キャプチャされたビデオは、カメラの視野(例えば、測定セグメント5128、5136及び5156、並びにそれらの対応する終点及びラベル)が、キャプチャされたビデオ内のテーブル5002の対応する特徴に重ね合わされる)。いくつかの実施形態では、キャプチャされたビデオは、ユーザインタフェース5006内のボタン/コントロールの画像を含まない。
図5BKは、タッチ入力5172がメディアキャプチャボタン5016上に維持されている間にデバイス100が移動していることを示す。したがって、デバイス100は、図5BKのタイマー5178によって示される現在のビデオ長が図5BJのタイマー5178によって示されるものよりも長いことによって示されるように、デバイス100が移動されるときのカメラの視野のビデオをキャプチャし続けている。キャプチャされたビデオは、図5BKに示されるように、デバイス100がその位置に移動する際に、カメラの視野内の対応する特徴の上に重ね合わされた測定セグメント5136の追加部分を含む。
図5BL~図5BMは、情報を別のアプリケーション、プロセス、又はデバイスに分配するために選択された測定及びオプションに関する追加情報を表示することを示す。図5BLは、強度計5040によって示されるように、最小接触検出閾値IT0を上回る接触強度で、測定セグメント5156上で検出されたタッチ入力5182(例えば、タッチ入力における接触によるタップジェスチャ)を示す。図5BMは、測定セグメント5156上のタッチ入力5182を検出したことに応答して、デバイス100が測定管理インタフェース5184を表示することを示す。測定管理インタフェース5184は、物理的オブジェクトを記述するラベル、測定5156が対応するテーブル5002を含む。例えば、測定管理インタフェース5184は、テーブル5002を分類するラベル5186-a(例えば、テーブル5002を「テーブル」として識別する)を含む。測定管理インタフェース5184はまた、測定セグメント5156とテーブル5002との関係を分類する(例えば、測定5156をテーブル5002の「高さ」として識別する)ラベル5186-bも含む。いくつかの実施形態では、測定5156とテーブル5002との関係は、測定セグメント5156をユーザインタフェース5006に追加しながら、デバイス100の垂直移動に基づいて「高さ」として分類される。
いくつかの実施形態では、タッチ入力5182に応答して、測定5156に関する情報(例えば、測定セグメント5156が対応する物理的オブジェクトの分類、及び測定セグメント5156と物理的オブジェクトとの関係、長さ又は面積などの測定セグメント5156の大きさ、測定セグメント5156の画像など)が、デバイス100上で実行されるクリップボードプロセスにコピーされる。いくつかの実施形態では、測定管理インタフェースは、選択された測定5156に関する情報が伝達され得る複数の宛先(例えば、電子メールクライアントモジュール140に対応するアイコン5192(図1A)、IMモジュール141に対応するアイコン5194(図1A)、及び電子デバイス間のファイル転送プロトコルに対応するアイコン5196)を含む。いくつかの実施形態では、測定管理インタフェース5184は、最小接触検出閾値IT0を上回る強度閾値(例えば軽い押圧強度閾値ITL)を満たすタッチ入力5182に応答して(例えば軽い押圧又は深い押圧ジェスチャであることにタッチ入力5182に応答して)表示される。
図5BNは、拡張現実測定アプリケーションアイコン5190を含む例示的な制御センターユーザインタフェース5188を示す。拡張現実測定アプリケーションアイコン5190のアクティブ化は、拡張現実測定アプリケーションを起動し、ユーザインタフェース5006を表示する(例えば、図5Aを参照して説明されるように)。
図5BOは、図5BO~図5COに関して説明するユーザインタフェースが使用される状況を示す。図5BOは、図5BOが、物理的空間5000が、(テーブル5002の代わりに)オブジェクト5202が配置されたテーブル5200を含むことを除いて、デバイス100を含む物理的空間5000のビューを示す点において図5Aと同様である。オブジェクト5202は、デバイス100のカメラ(単数又は複数)の視野内にあり、デバイス100上のユーザインタフェース5006内に表示された物理的空間5000のライブプレビュー内で見ることができる。いくつかの実施形態では、図5BOに示されるように、ユーザインタフェース5006内のレチクル5010は、検出されており、かつフォーカス点5012の現在の位置に対応する表面を示すために、テーブル5200の上面と同一平面に見えるように傾けられる。
図5BP~図5BQは、いくつかの実施形態に係る、仮想測定点をユーザインタフェース5006に追加する第1の方法を示す。図5BPは、レチクル5010上のタッチ入力5204を示す。いくつかの実施形態によれば、図5BPは、タッチ入力5204に応答して、デバイス100が(図5BOに示されるように)フォーカス点5012の現在の位置で仮想測定点5206をユーザインタフェース5006に追加して表示することを示す。図5BQは、タッチ入力5204のリフトオフ後の図5BPと同じ位置で表示される測定点5206を示す。
図5BR~図5BSは、いくつかの実施形態に係る、仮想測定点をユーザインタフェース5006に追加する代替の方法を示す。図5BRは、レチクル5010上のタッチ入力5204を示す。図5BPとは対照的に、図5BRは、タッチ入力5204に応答して、デバイス100は、フォーカス点5012の位置で仮想測定点の追加及び表示を取りやめることを示す。代わりに、図5BRでは、デバイス100は、測定点を追加するために(レチクル5010上でタップする代わりに)測定追加ボタン5014上でタップするようにユーザ5004に促す命令メッセージ5208を表示する。図5BSは、タッチ入力5210による測定追加ボタン5014のアクティブ化を示す。タッチ入力5210に応答して、デバイス100は、(図5BQに示されるように)フォーカス点5012の現在の位置で仮想測定点5206をユーザインタフェース5006に追加する。
図5BT~図5BUは、(例えば、図5BQ又は図5BSのいずれかにおける)測定点5206の追加後の、オブジェクト5202に対応する測定の作成を示す。図5BTでは、ユーザ5004は、レチクル5010及びフォーカス点5012が物理的空間5000内の異なる位置の上に位置決めされるようにデバイス100を移動させている。具体的には、図5BTでは、レチクル5010及びフォーカス点5012は、レチクル5010及びフォーカス点5012が図5BOで位置決めされた縁部よりもデバイス100により近いオブジェクト5202の縁部(ライブプレビューに表示される)の上に位置決めされる。したがって、レチクル5010は、図5BOにおけるそのサイズと比較して、図5BTでは増大したサイズで表示され、フォーカス点5012は、図5BOにおけるそのサイズに対して図5BTでは増大したサイズで表示される。いくつかの実施形態では、レチクル5010が表示されるサイズは、任意選択的に、既定の最小サイズ(既定の最大距離より大きい距離に使用される)及び既定の最大サイズ(既定の最小距離未満の距離に使用される)を条件として、デバイス100とレチクル5010が表示される物理的空間5000内の位置との間の距離に基づいている。同様に、いくつかの実施形態では、フォーカス点5012が表示されるサイズは、任意選択的に、既定の最小サイズ及び既定の最大サイズを条件として、デバイス100と、フォーカス点5012が表示される物理的空間5000内の位置との間の距離に基づいている。加えて、レチクル5010及びフォーカス点5012が、物理的空間5000内の異なる位置の上に位置決めされるようなデバイス100の移動に従って、破線で示される(動的)測定セグメント5212は、測定点5206(直近に追加された測定点)とフォーカス点5012との間に表示される。測定セグメント5212は、測定セグメント5212がユーザインタフェース5006内に延在して見える物理的空間5000内の距離を示す関連付けられた(動的)ラベルで表示される。
図5BUは、タッチ入力5214(例えば、タップジェスチャ)による測定追加ボタン5014のアクティブ化を示す。測定追加ボタン5214のアクティブ化に応答して、デバイス100は、フォーカス点5012の現在の位置に(図5BTに示されるように)、及び測定セグメント5212の第2の終点として、ユーザインタフェース5006内に測定点5216を追加して表示する。測定セグメント5212の完了に従って、測定セグメント5212の外観が変更される。図5BUに示される実施例では、測定セグメント5212は破線から実線に変更される。測定点5216は、測定点5206が表示されるオブジェクト5202の縁部よりもデバイス100により近いオブジェクト5202の縁部の上に位置決めされるため、測定点5216は、測定点5206に対して増大したサイズで表示される。
図5BV~図5BYは、いくつかの実施形態に係る、前の測定を除去させる、オブジェクト5202に対応する測定の作成を示す。図5BVは、図5BUからの移行を示す。図5BVでは、ユーザ5004は、レチクル5010及びフォーカス点5012が、図5BUとは異なる物理的空間5000内の位置の上に位置決めされるように、デバイス100を移動させている。具体的には、図5BVでは、レチクル5010及びフォーカス点5012は、オブジェクト5202の第1の角の上に位置決めされる。いくつかの実施形態では、図5BVに示されるように、測定セグメント5212から離れるように移動されるレチクル5010及びフォーカス点5012に従って、デバイス100は、測定セグメント5212に関連付けられたラベル(「17インチ」)を表示するのを中止する。
図5BWは、ユーザインタフェース5006への測定点の追加を示す、図5BVからの移行を示す。具体的には、図5BWは、タッチ入力5218による測定追加ボタン5014のアクティブ化を示す。これに応答して、デバイス100は、(図5BVに示されるように)フォーカス点5012の現在の位置で測定点5220をユーザインタフェース5006に追加する。加えて、以前に作成された測定セグメント5212から離れた新たな測定点の追加に従って、デバイス100は、測定セグメント5212の外観を変更する(例えば、測定セグメント5212から切り離された測定セグメントを作成することによって、測定セグメント5212をユーザインタフェース5006から除去することを示すために)。図5BWに示す例では、測定セグメント5212は実線から破線に変更され、測定セグメント5212の色(及び/又は透明性)及びその終点が変更される。
図5BXは、レチクル5010及びフォーカス点5012がオブジェクト5202の第2の角の上に位置決めされるように、ユーザ5004がデバイス100を移動させていることを示す、図5BWからの移行を示す。したがって、破線で示される(動的)測定セグメント5222が、測定点5206(最近追加された測定点)とフォーカス点5012との間に表示される。測定セグメント5222は、測定セグメント5222がユーザインタフェース5006内で延在して見える物理的空間5000内の(例えば、オブジェクト5202に沿った)距離を示す関連する(動的)ラベル(例えば、「17インチ」)で表示される。
図5BYは、タッチ入力5226による測定追加ボタン5014のアクティブ化に応答して、測定点5224のユーザインタフェース5006への追加を示す、図5BXからの移行を示す。図5BYは、測定点5224が、測定セグメント5222の第2の終点として(図BXに示されるように)フォーカス点5012の現在の位置に追加されていることを示す。測定点5224は、測定点5220が表示されるオブジェクト5202上の位置よりもデバイス100から遠いオブジェクト5202上の位置の上に位置決めされるため、測定点5224は、測定点5220に対して縮小したサイズで表示される。測定セグメント5222の完了に従って、測定セグメント5222の外観は破線から実線に変化する。加えて、測定セグメント5222の完了に従って、及び測定セグメント5222が以前に配置された測定セグメント5212から切り離されていることに従って、デバイス100は、測定セグメント5212を表示するのを中止する。いくつかの実施形態では、測定セグメント5212は、測定セグメント5222が測定セグメント5212から離れた少なくとも所定の閾値距離である(例えば、測定セグメント5212上のいずれの点も、測定セグメント5222上の任意の点の既定の閾値距離内にない)との判定に従って、測定セグメント5212が表示されるのを中止する。
図5BZ~図5CFは、いくつかの実施形態に係る、前の測定が引き続き表示されるように、前の測定につながる、オブジェクト5202に対応する測定の作成を示す。図5BZは、レチクル5010及びフォーカス点5012がオブジェクト5202の第3の角の上に位置決めされるように、ユーザ5004がデバイス100を移動させていることを示す、図5BYからの移行を示す。いくつかの実施形態では、図5BZに示されるように、レチクル5010及びフォーカス点5012が測定セグメント5222から離れるように移動されているとしても、デバイス100は、測定セグメント5222に関連付けられたラベルを表示し続ける(レチクル5010及びフォーカス点5012が測定セグメントから離れるように移動されるとき、デバイス100が測定セグメント5212に関連付けられたラベルの表示を中止する実施形態を示す図5BVとは対照的に)。
図5CAは、タッチ入力5230による測定追加ボタン5014のアクティブ化に応答して(図5BZに示されるように)フォーカス点5012の現在位置での測定点5228のユーザインタフェース5006への追加を示す、図5BZからの移行を示す。以前に作成された測定セグメント5222から離れているユーザインタフェース5006内の位置で測定点5228が追加されることに従って、デバイス100は測定セグメント5222の外観を変更する(例えば、測定セグメント5222から切り離された測定セグメントを作成することにより、測定セグメント5222がユーザインタフェース5006から除去されることを示すために)。図5CAに示す例では、測定セグメント5222は実線から破線に変更され、測定セグメント5222の色(及び/又は透明度)が変更される。
図5CBは、レチクル5010及びフォーカス点5012がオブジェクト5202の第3の角から離れて位置決めされるようにユーザ5004がデバイス100を移動させていることを示す、図5BZからの移行を示す。したがって、破線で示される(動的)測定セグメント5232が、測定点5228とフォーカス点5012との間に表示される。測定セグメント5232は、測定セグメント5222がユーザインタフェース5006内に延在して見えるオブジェクト5202に沿った距離(例えば、「8インチ」)を示す関連する(動的)ラベルで表示される。
図5CCは、測定セグメント5222の中点がレチクル5010の範囲内にあるように、ユーザ5004がデバイス100を移動させていることを示す、図5CBからの移行を示す。いくつかの実施形態では、図5CCに示されるように、ユーザインタフェース5006内に表示されるそれぞれの測定セグメントの中点は、フォーカス点5012がスナップするアンカー点とすることができる。したがって、図5CCでは、フォーカス点5012は、測定セグメント5222の中点に対応するアンカー点にスナップされる。スナップ動作を示すために、フォーカス点5012は、フォーカス点5012がアンカー点にスナップされていないとき(例えば、図5CBに示されるように)フォーカス点5012のサイズに対して増大したサイズで表示される。いくつかの実施形態では、図5CCに示されるように、フォーカス点がアンカー点にスナップされるとき、レチクル5010のサイズは変更されない。いくつかの実施形態では、アンカー点にスナップされたときのフォーカス点5012のサイズは、デバイス100と、フォーカス点5012が表示される物理的空間5000内の位置との間の距離に基づいてフォーカス点5012のサイズを変更するために使用されるフォーカス点5012の既定の最大サイズより大きい(例えば図5BTに関して本明細書に記載されるように)。加えて、フォーカス点5012が測定セグメント5222に沿った特定の地点にスナップされるため、フォーカス点5012の現在の位置で測定点を追加することで、測定セグメント5222が除去される代わりに、引き続き表示される結果になることを示すために、測定セグメント5222の外観が変更される。具体的には、測定セグメント5222は破線から実線に(戻るように)変更され、測定セグメント5222の色(及び/又は透明性)が変更されることで、測定セグメント5222は、図5BZに示されるように(測定点5228が追加される前の)その外観で再表示されるようになる。加えて、測定セグメント5232が測定点5228とフォーカス点5012の現在位置との間で引き続き表示されるように、動的測定セグメント5232の長さは、デバイス100の移動に従って更新される。測定セグメント5232に関連付けられたラベルは、測定セグメント5232の長さの変化(例えば、12インチ)を反映するように更新される。
図5CDは、レチクル5010及びフォーカス点5012が測定セグメント5222の中点から離れて位置決めされるようにユーザ5004がデバイス100を移動させていることを示す、図5CCからの移行を示す。したがって、図5CDでは、動的測定セグメント5232及びその関連ラベルは、測定点5228に対するフォーカス点5012の移動に起因する、測定セグメント5232の長さの変化を反映するように更新される。加えて、フォーカス点5012の現在の位置で測定点を追加することで、測定セグメント5222が除去される結果になることを示すために、測定セグメント5222の外観が更新される。
図5CEは、測定点5224(図5CDに示されるように)がレチクル5010内にあるように、ユーザ5004がデバイス100を移動させていることを示す、図5CDからの移行を示す。いくつかの実施形態では、図5CEに示されるように、以前に追加された測定セグメントの終点は、フォーカス点5012がスナップするアンカー点とすることができる。したがって、図5CEでは、フォーカス点5012は、(図5CDに示すような)測定点5224に対応するアンカー点にスナップされる。スナップ動作を示すために、フォーカス点5012は、(例えば、図5CDに示されるように)アンカー点にスナップされていないときのそのサイズに対して増大したサイズで表示されるが、レチクル5010のサイズは、図5CCを参照して本明細書に記載されるように変更されない。加えて、フォーカス点5012が測定セグメント5222に沿った特定の地点にスナップされるため、フォーカス点5012の現在の位置で測定点を追加することで、測定セグメント5222が除去される代わりに引き続き表示される結果になることを示すために、測定セグメント5222の外観が変更される。具体的には、測定セグメント5222は破線から実線に変更され、測定セグメント5222の色(及び/又は透明性)が変更することで、測定セグメント5222は、図5BZに示されるその外観で再表示される。加えて、動的測定セグメント5232及びその関連ラベルは、測定点5228に対するフォーカス点5012の移動に起因する、測定セグメント5232の長さの変化を反映するように更新される。
図5CFは、タッチ入力5236による測定追加ボタン5014のアクティブ化に応答して、(図5CEに示されるように)フォーカス点5012の現在位置での測定点5234のユーザインタフェース5006への追加を示す、図5CEからの移行を示す。測定点5234が測定セグメント5222に沿った特定の地点で追加されていることに応じて、測定セグメント5222は引き続き表示される。測定セグメント5232の完了に従って、測定セグメント5232の外観は破線から実線に変更される。
図5CG~図5CKは、いくつかの実施形態に係る、前の測定が引き続き表示されるように、前の測定に十分に近い(例えば、その測定の既定の閾値距離の範囲内であるが、それに接続されていない)測定の作成を示す。図5CGは、レチクル5010及びフォーカス点5012がオブジェクト5202から離れて、かつテーブル5200の第1の角の上に位置決めされるように、ユーザ5004がデバイス100を移動させていることを示す、図5CFからの移行を示す。いくつかの実施形態では、図5CGに示されるように、レチクル5010及びフォーカス点5012が測定セグメント5222及び測定セグメント5232から離れるように移動されていても、デバイス100は、測定セグメント5222及び5232に関連付けられたラベルを表示し続ける(レチクル5010及びフォーカス点5012が測定セグメントから離れるように移動されるとき、デバイス100が、測定セグメント5212に関連付けられたラベルの表示を中止する実施形態を示す図5BVとは対照的に)。
図5CHは、タッチ入力5240による測定追加ボタン5014のアクティブ化に応答して、(図5CHに示すような)フォーカス点5012の現在位置における測定点5238のユーザインタフェース5006への追加を示す、図5CGからの移行を示す。以前に作成された測定セグメント5222及び5232から離れているユーザインタフェース5006内の特定位置に測定点5238が追加されることによって、デバイス100は、測定セグメント5222及び測定セグメント5232から切り離されており、かつ測定セグメント5222に沿った任意の地点及び測定セグメント5232に沿った任意の地点から閾値距離を超える測定セグメントを作成することにより、測定セグメント5222及び5232がユーザインタフェース5006から除去されることを示すために、測定セグメント5222及び5232の外観を変更する。図5CHに示される例では、測定セグメント5222及び5232は実線から破線に変更され、測定セグメント5222及び5232の色(及び/又は透明性)及びそれらの終点が変更される。
図5CIは、レチクル5010及びフォーカス点5012がテーブル5200の側面上に配置されるように、ユーザ5004がデバイス100を移動させていることを示す、図5CHからの移行を示す。いくつかの実施形態では、図5CIに示されるように、レチクル5010は、検出されており、かつフォーカス点5012の現在の位置に対応する表面を示すために、テーブル5200の側面と同一平面に見えるように傾けられる。破線で示される動的測定セグメント5242は、測定セグメント5242がユーザインタフェース5006内に延在するように見える、テーブル5200の側面に沿った距離を示す関連する動的ラベル(例えば「2フィート10インチ」)と共に、測定点5238とフォーカス点5012との間に表示される。
図5CJは、レチクル5010及びフォーカス点5012がテーブル5200の第2の角の上に位置決めされるように、ユーザ5004がデバイス100を移動させていることを示す、図5CIからの移行を示す。いくつかの実施形態では、図5CJに示されるように、たとえフォーカス点5012の現在の位置で測定点を追加することで、測定セグメント5222及び5232が除去される代わりに表示され続けることになっても、測定セグメント5222及び5232の外観は変更されない(例えば、フォーカス点5012の現在の位置での測定点の追加によって作成される結果として得られる測定セグメントは、測定セグメント5222及び5232の両方の所定の閾値距離内にあることになるため)。
図5CKは、タッチ入力5246による測定追加ボタン5014のアクティブ化に応答して(図5CJに示すような)フォーカス点5012の現在位置での測定点5244の追加を示す、図5CJからの移行を示す。測定点5244は、測定セグメント5242が測定セグメント5222の既定の閾値距離内にあるように(例えば、測定セグメント5242は、測定セグメント5222に沿った少なくとも1つの点の既定の閾値距離内にある少なくとも1つの点を含む)、ユーザインタフェース5006内の位置に追加される。したがって、測定点5244の追加後も測定セグメント5222は表示され続ける。また、測定セグメント5222は破線(後)から実線に変更され、測定セグメント5222の色(及び/又は透明度)が変更され、測定セグメント5222は図5CGに示されるその外観で再表示される。同様に、測定セグメント5242は測定セグメント5232の既定の閾値距離内にある(例えば、測定セグメント5242は、終点測定5234などの測定セグメント5222に沿った少なくとも1つの点の既定の閾値距離の範囲内にある少なくとも1つの点を含む)。したがって、測定セグメント5222のように、測定セグメント5232も表示され続け、図5CGに示されるようにその外観で再表示される。いくつかの実施形態では、現在表示されているセグメント(例えば、以前に接続されたセグメント5222及び5232)のうちのいずれかにおける少なくとも1つの点が、新たに作成されたセグメント(例えば、セグメント5242)の所定の距離内にある限り、現在表示されているセグメントの全ては表示されたままである。
図5CL~図5CMは、拡張現実環境における例示的なアラート状態を示す。図5CLは、ユーザ5004がデバイス100を移動したことで、カメラの視野が、測定セグメント5222、5232及び5242が表示された物理的空間5000の部分(例えば、図5CKに示すテーブル5200の左部分)をもはや含んでいないことを示す、図5CKからの移行を示す。図5CLは、カメラの視野がテーブル5200の左の部分から離れて移動されてから経過した時間量が、第1の所定の閾値時間Tth未満であることを示す。
図5CMは、カメラの視野がテーブル5200の左の部分から離れて移動されてから経過した時間量が第1の既定の閾値時間量に達したことを示す、図5CLからの移行を示す。したがって、デバイス100は、測定セグメント5222、5232及び5242がユーザインタフェース5006からもうすぐ除去されることを示すために、アラートメッセージ5248を表示する。いくつかの実施形態では、デバイス100が、アラートメッセージ5248が表示されてから第2の既定の閾値時間量の範囲内で、図5CKに示されるようなその元の位置に戻される場合、測定セグメント5222、5232及び5242は、図5CGに示されるように、物理的空間5000内の対応する特徴の上でユーザインタフェース5006内に再表示されることになる。いくつかの実施形態では、デバイス100が、アラートメッセージ5248が表示されてから第2の既定の閾値時間量が経過した後で図5CKに示されるようなその位置に戻される場合、測定セグメント5222、5232、5242はユーザインタフェース5006内に再表示されない。いくつかの実施形態では、測定セグメント5222、5232及び5242が表示された物理的空間5000の部分が、現在、カメラの視野内にある物理的空間5000の部分から閾値距離を超えて表示されるようにデバイス100が移動されたとき、アラートメッセージ5248が表示される。
図5CN~図5COは、拡張現実環境における別の例示的なアラート状態を示す。図5CNは、第1の距離が既定の(最大)閾値距離Dth未満である、テーブル5200からの第1の距離に位置決めされたデバイス100を示す。レチクル5010及びフォーカス点5012が表示され、これは、デバイス100がフォーカス点5012が表示される位置で表面を検出したことを示す。図5COは、第2の距離が既定の(最大)閾値距離Dthより大きい、テーブル5200からの第2の距離に位置決めされたデバイス100を示す。したがって、デバイス100は、レチクル5010及びフォーカス点5012を表示せず、このことは、デバイス100が、フォーカス点5012が表示される物理的空間5000内の位置で表面を検出していないことを示す。加えて、デバイス100は、アラートメッセージ5250を表示して、デバイス100が、フォーカス点5012が表示された物理的空間5000内の位置から遠くに離れていることを示し、その位置に近づくようにデバイス100を移動させるようにユーザ5004に促す。同様に、いくつかの実施形態では、デバイス100が、既定の最小閾値距離未満であるテーブル5200からの距離に位置決めされるとき、デバイス100は、レチクル5010及びフォーカス点5012を表示せず(表面が検出されていないことを示すため)、アラートメッセージを表示して(例えば、「遠くに移動させよ」などの文章を用いて)、ユーザ5004に、フォーカス点5012が表示された物理的空間5000内の位置から更に遠くにデバイス100を移動させるように促す。
図6A~図6Cは、いくつかの実施形態に係る、拡張現実環境を使用して物理的空間の測定を行うためにアプリケーションと相互作用する方法600を示すフロー図である。方法600は、タッチ感知ディスプレイ(例えば、タッチスクリーン112(図1A)、又は入力デバイス(単数又は複数)302(図3B)と組み合わせたディスプレイ生成構成要素(単数又は複数)304)、及び1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、タッチ感知ディスプレイとの接触の強度を検出する1つ又は複数のセンサ(例えば、接触強度センサ(単数又は複数)165、(図1A)、及び任意選択的に、1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えば、ポータブル多機能デバイス100(図1A)、デバイス300(図3A)、又はコンピュータシステム301(図3B)で実行される。方法600の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に説明するように、方法600は、拡張現実に基づく測定において仮想測定点を再配置する直感的な方法を提供する。測定点に向けられた入力に応答して測定点を含むエリアにズームインすることにより、測定点をより正確に再配置することが容易になる。方法600は、ユーザからの入力の数、範囲及び/又は種類を低減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスに関して、ユーザが測定点をより迅速に再配置することを可能にすることにより、より効率的に電力を節約し、バッテリ充電間の時間を延ばす。
電子デバイスは、タッチ感知ディスプレイ上に、アプリケーションのユーザインタフェース(例えば、ユーザインタフェース5006、図5AX)(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)を表示する(602)。
ユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含む(604)(例えば、ユーザインタフェース5006は、図5AXのデバイス100のカメラの視野のライブプレビューを含む)。視野の表現は、第1の倍率で表示され、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新される(例えば、視野の表現は、1つ以上のカメラのうちの少なくとも1つからのライブビューである)。更に、視野は、三次元空間(例えば、物理的オブジェクトを含む物理的世界の中の空間)の少なくとも一部分を含む。例えば、ライブプレビューはズームなしで(又はズーム倍率1Xで)表示され、デバイス100が(例えば、図5AU~図5AVのように)移動するにつれて更新される。
視野の表現を表示している間に、電子デバイスは、タッチ感知ディスプレイ上の第1のタッチ入力(例えば、アクティブ化されたときに、視野の表示された表現に測定点を追加する、アフォーダンス上のタップジェスチャ又は押圧入力)(例えば、図5AWのタッチ入力5158)を検出する(606)。
第1のタッチ入力を検出したことに応答して、電子デバイスは、三次元空間内の第1の位置(例えば、図5AWの測定点5160)に対応する視野の表現内の第1の位置に(仮想)測定点を表示する(608)。
測定点を追加した後、及び視野の表現を表示し続けている間に(610)、1つ以上のカメラのうちの少なくとも1つが移動すると、電子デバイスは、三次元空間内の第1の位置に対応する視野の表現内の位置に測定点を表示する(612)。例えば、1つ以上のカメラのうちの少なくとも1つの位置及び/又は向きが、電子デバイスの動きに起因して変化するとき、(仮想)測定点は、(仮想)測定点は最初に配置された三次元空間内の第1の位置に対応する位置でライブビュー内に表示され続ける。いくつかの実施形態では、1つ以上のカメラのうちの少なくとも1つが移動すると、表示された測定点は、(仮想)測定点が最初に配置された三次元空間内の位置に添えられる、又は固定されるように見える。
測定点を追加した後、及び視野の表現を表示し続けている間に(610)、電子デバイスは、視野の表現内の測定点の現在位置に対応するタッチ感知ディスプレイ上の位置で(測定点が最初に配置された三次元空間内の第1の位置に対応する)第2のタッチ入力(例えば、図5AYのタッチ入力5164)を検出する(614)。
第2のタッチ入力を検出したことに応答して、電子デバイスは、視野の表現の少なくとも一部の表示を第1の倍率から、第1の倍率より大きい第2の倍率まで拡大する(616)(例えば、ライブプレビューは、図5AYにおけるズーム倍率4Xだけ拡大される)。視野の表現の一部分の拡大表示は、測定点を含む。いくつかの実施形態では、測定点上でのジェスチャ(タップ、ダブルタップ、押圧、押圧及び保持、又はデピンチジェスチャなど)に応答して、電子デバイスは、測定点を含むエリア上でズームインし、それによって、測定点を含む領域を第1の倍率から第2の倍率まで拡大する。いくつかの実施形態では、測定点を含むエリア上でのズームインは、例えば、ズームインした測定点に向けられたジェスチャに応答して、ユーザが測定点をより正確に再配置することを可能にする。
いくつかの実施形態では、1つ以上のカメラは、1つ以上のカメラが位置決めされているデバイスの側の近くにあるタッチ感知ディスプレイの一部分に隣接して電子デバイス上に位置する(618)(例えば、1つ以上のカメラは、図5Aの領域5008内に位置する)。いくつかの実施形態では、1つ以上のカメラは、タッチ感知ディスプレイの第1の部分に隣接して電子デバイス上に位置する。いくつかの実施形態では、タッチ感知ディスプレイの表面はxy平面に沿って延在し、1つ以上のカメラは、xy平面に沿ってタッチ感知ディスプレイの第1の部分に隣接している。いくつかの実施形態では、1つ以上のカメラは、xy平面に垂直なz方向でタッチ感知ディスプレイの第1の部分に隣接している。いくつかの実施形態では、ユーザインタフェースは、デバイスの背面上の1つ以上のカメラから離れて(例えば、1つ以上のカメラが位置するデバイスの背面上の第1の固定位置に対応する、タッチ感知ディスプレイ上の第2の固定位置から離れて)位置決めされた(例えば、デバイスの前面上の)タッチ感知ディスプレイの一部分に表示される第1のアフォーダンスを含み、これは、アクティブ化されたときに、視野の表示された表現に測定点を追加する(例えば、図5Aの測定追加ボタン5014)。いくつかの実施形態では、第1のアフォーダンスは、タッチ感知ディスプレイの第2の部分内に表示され、この場合タッチ感知ディスプレイの第2の部分は、タッチ感知ディスプレイの第1の部分とは別個であり、またタッチ感知ディスプレイの第2の部分は、1つ以上のカメラが位置決めされているデバイスの側から離れて位置する。いくつかの実施形態では、ユーザインタフェースは、電子デバイスの第1の向き(例えば、図5Aに示される縦向き)に従って表示される、1つ以上の第2のアフォーダンス(例えば、図5Aのボタン5018、5020、5022)を更に含む。いくつかの実施形態では、電子デバイスは、電子デバイスの第2の向きへの移動(例えば、回転)(例えば、図5B又は図5Cに示す横向きへの回転)を検出する。いくつかの実施形態では、電子デバイスの第2の向きへの移動を検出したことに応答して、電子デバイスは、電子デバイスの第2の向きに従って、1つ以上の第2のアフォーダンスの表示を更新し(例えば、ボタン5018、5020、5022は、1つ以上のカメラの位置に関係なく、図5B又は図5Cでユーザインタフェースの異なる領域に移動する)、1つ以上のカメラが位置決めされているデバイスの側から離れているタッチ感知ディスプレイの部分に第1のアフォーダンスを引き続き表示する(例えば、測定追加ボタン5014は、図5B及び5Cでは領域5008から離れて表示される)。
いくつかの実施形態では、第2の向きでは、電子デバイスは、第1のアフォーダンスが、1つ以上のカメラが位置決めされているデバイスの側から離れているタッチ感知ディスプレイの部分内の異なる位置で(例えば、電子デバイスの片手操作中の第1のアフォーダンスのアクティブ化を容易にするために、タッチ感知ディスプレイの縁部又は角の既定の距離の範囲内の位置で)表示されるように、第1のアフォーダンスの表示を更新する(例えば測定追加ボタン5014)。いくつかの実施形態では、第1のアフォーダンスは、ユーザの手が視野を遮るようなやり方でユーザが電子デバイスを保持することを抑止するように、1つ以上のカメラが位置決めされているデバイスの側から離れているタッチ感知ディスプレイの部分内の位置に制限される。いくつかの実施形態では、1つ以上のカメラが電子デバイスの左半分に位置する電子デバイスが第1の向き(例えば、第1の横向き)にある間、第1のアフォーダンスは、電子デバイスの右半分上のユーザインタフェース内に表示され、また、電子デバイスが、1つ以上のカメラが電子デバイスの右半分上に位置する第2の向き(例えば、デバイスが第1の横向きから180度回転される第2の横向きの向き)にある間、第1のアフォーダンスは、電子デバイスの左半分上のユーザインタフェース内に表示される(例えば、図5B~図5Cを参照して本明細書に示され、説明されるように)。
デバイスの向きが変わるとき、1つ以上のカメラから離れているタッチ感知ディスプレイ上の位置に測定点を配置するために使用されるアフォーダンスを自動的に維持することにより、ユーザが、ライブビューを提供しているカメラの視野を見えにくくするような方法で電子デバイスを保持する可能性が低減される。デバイスの向きが変わるとき、このようなやり方でアフォーダンスを自動的に再度位置決めすることによって、(例えば、ユーザがデバイスを操作する/デバイスと相互作用するときに、ユーザが適切な入力を提供するのを助け、視野を見えにくくするなどのユーザのミスを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、アプリケーションのユーザインタフェースは、キャプチャアフォーダンス(例えば、アクティブ化されると、視野の表現に対応するメディアのキャプチャを開始する仮想シャッターボタンなどのアフォーダンス)(例えば、図5Aのメディアキャプチャボタン5016)を含む、アプリケーションの動作に対応する1つ以上のアフォーダンスを含む(620)。いくつかの実施形態では、電子デバイスは、キャプチャアフォーダンス上の第3のタッチ入力を検出し、第3のタッチ入力が第1のメディアキャプチャ基準を満たすという判定に従って、1つ以上のカメラのうちの少なくとも1つ(及び、いくつかの実施形態では対応するオーディオ)の視野の画像のシーケンスを含む第1のタイプのメディア(例えばビデオ又はビデオフォト)のキャプチャを開始する(例えば図5BJ~図5BKを参照して本明細書に記載されるように)。いくつかの実施形態では、第1のメディアキャプチャ基準は、第3のタッチ入力が少なくとも既定の閾値時間量にわたってタッチ感知ディスプレイ上に維持される第1の要件と、タッチ感知ディスプレイを横切る第3のタッチ入力の移動量が既定の閾値移動量未満であることの第2の要件と、を含む。いくつかの実施形態では、第1のメディアキャプチャ基準は、キャプチャアフォーダンス上の静止した長い押圧ジェスチャ又は押圧と保持ジェスチャによって満たされる。
いくつかの実施形態では、画像のキャプチャされたシーケンスは、画像上に表示される(仮想)測定情報(例えば、1つ以上の(仮想)測定点、測定点の間のライン、測定点に関するラベル、及び/又は測定点間の距離)を含む(例えば図5BJ~図5BKを参照して本明細書に記載されるように)。いくつかの実施形態では、キャプチャされた画像のシーケンスは、キャプチャアフォーダンスなどのアプリケーションのユーザインタフェースに示される他のアフォーダンス(画像上に表示された測定情報以外)の表示は含まない。換言すれば、いくつかの実施形態では、アプリケーションのユーザインタフェースに示されている全てのもののスクリーン記録をキャプチャする代わりに、デバイスは、視野上に重ね合わされた(仮想)測定情報を有する視野のビデオだけをキャプチャする、(例えば、図5BJ~図5BKを参照して本明細書に記載されるように)。
仮想シャッターボタン又は他のキャプチャアフォーダンスを提供することにより、オブジェクト上に表示される仮想測定情報と共に、測定されているオブジェクトのビデオを記録することが容易になる。このようなビデオを記録することは、アプリケーションのユーザインタフェース内の他の要素も記録することなく、(例えば、記録中にユーザインタフェース内に表示された無関係の情報を示すことなく、オブジェクト及び測定を示す記録を作成するようにユーザを支援することによって)デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第3のタッチ入力が第2のメディアキャプチャ基準を満たすという判定に従って、電子デバイスは、1つ以上のカメラのうちの少なくとも1つ(例えば、対応するオーディオなしで)の視野の単一画像を含む第2のタイプのメディア(例えば静止画像)のキャプチャを開始する(例えば、図5BH~5BIを参照して本明細書に示され、説明されるように)(622)。いくつかの実施形態では、第2のメディアキャプチャ基準は、既定の閾値時間量が経過する前に、第3のタッチ入力がタッチ感知ディスプレイ上で検出されるのを中止する第1の要件と、タッチ感知ディスプレイを横切る第2のタッチ入力の移動量が既定の閾値移動量未満であることの第2の要件と、を含む。いくつかの実施形態では、第2のメディアキャプチャ基準は、キャプチャアフォーダンス上での静止したタップジェスチャによって満たされる。
いくつかの実施形態では、キャプチャされた静止画は、キャプチャアフォーダンスなどの、アプリケーションのユーザインタフェース内に示される他のアフォーダンス(画像上に表示された測定情報以外)の表示を含まない(例えば、図5BH~図5BIを参照して本明細書に示され、説明されるように)。換言すれば、いくつかの実施形態では、アプリケーションのユーザインタフェースに示されている全てのものの静止画像をキャプチャする代わりに、デバイスは、視野上に重ね合わせた(仮想)測定情報を有する視野の静止画像だけをキャプチャする。
静止画像又はビデオのいずれかのキャプチャを開始することができるキャプチャアフォーダンスを提供することにより、オブジェクトの上に表示される仮想測定情報と共に、オブジェクトの静止画像又はビデオのいずれかを取得することが容易になる。アプリケーションのユーザインタフェース内に他の要素も含まずに、そのような静止画像又はビデオを取得することは(例えば、記録中にユーザインタフェース内に表示された無関係な情報を示すことなく、オブジェクト及び測定を示す静止画像又はビデオを作成するようにユーザを支援することによって)、デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。加えて、追加の表示された制御によってユーザインタフェースを乱雑にすることなく、(例えば、キャプチャアフォーダンス上のタッチ入力の特性に応じて、静止画像又はビデオのいずれかをキャプチャするための)キャプチャアフォーダンスのための追加の制御オプションを提供することにより、デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、アプリケーションのユーザインタフェースを表示する前に、電子デバイスは、複数の制御(例えば、図5BNの制御センターユーザインタフェース5188)を含む制御パネルユーザインタフェースを表示し(624)、この場合、複数の制御のうちの第1の制御はアプリケーションに対応する(例えば、図5BNの拡張現実測定アプリケーションアイコン5190)。いくつかの実施形態では、電子デバイスは、第1の制御をアクティブ化するタッチ入力(例えば、タップジェスチャ又は押圧入力)を検出し、第1の制御をアクティブ化するタッチ入力を検出したことに応答して、アプリケーションのユーザインタフェースを表示する(例えば、図5BNを参照して本明細書で説明されるように)。制御パネルを介して測定アプリケーションへのアクセスを提供することにより、アプリケーションの発見及び起動がより容易になる。アプリケーションを見つけて起動するために必要とされる入力の数を低減することは、デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、ユーザインタフェースは、アプリケーション内の複数のユーザインタフェースのうちの第1のユーザインタフェースである(626)。いくつかの実施形態では、第1のユーザインタフェースは、アプリケーションの測定モードに対応する。いくつかの実施形態では、複数のユーザインタフェースのうちの第2のユーザインタフェースは、アプリケーションのレベリングモードに対応する。いくつかの実施形態では、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーションもまた、レベル機能を含む。同じアプリケーションに測定とレベル機能の両方を提供することにより、これらの関連する機能を見つけ使用することが容易になる。同じアプリケーションに複数の関連機能を提供することは、デバイスの動作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、電子デバイスは、電子デバイスと測定位置に対応する三次元空間内の第1の位置との間の距離(例えば、電子デバイスのカメラのうちの1つから、測定位置に対応する三次元空間内の第1の位置までの距離)を判定する(628)。いくつかの実施形態では、カメラのうちの1つから三次元空間内の第1の位置までの距離は、1つ以上のカメラのうちの少なくとも1つによって(例えば1つ以上のカメラの任意選択的な部分である深さセンサによって)キャプチャされた深さに基づいて、及び/又は複数の異なるカメラ間の視差情報に基づいて判定される(例えば、複数の異なるカメラによってキャプチャされた情報を比較することによって判定される)。いくつかの実施形態では、判定された距離が第1の閾値距離未満であるという判定に従って、第1の倍率と第2の倍率との間の倍率係数(例えば、第1の倍率から第2の倍率への拡大の量)は、第1の倍率係数である(例えば、最小ズーム量に対応し、電子デバイスと三次元空間内の第1の位置との間の距離が第1の閾値距離未満に減少するのにつれて変化しない)。いくつかの実施形態では、判定された距離が第2の閾値距離より大きいとの判定に従って、倍率係数は第2の倍率である(例えば、最大ズーム量に対応し、電子デバイスと三次元空間内の第1の位置との間の距離が第2の閾値距離を上回って増加するのにつれて変化しない)。いくつかの実施形態では、判定された距離が第1の閾値距離と第2の閾値距離との間であるという判定に従って、倍率係数は、第1の倍率と第2の倍率との間のそれぞれの倍率係数である。例えば、図5AY~図5BEを参照して本明細書に示され、説明されるように、ライブプレビューのズーム量は、任意選択的にズーム量に対する最大及び/又は最小制限を有する、デバイス100とテーブル5002との間の距離に基づいている。
より一般的には、いくつかの実施形態では、ズーム量は、電子デバイスが三次元空間内の対象となる点から遠くなるときに(任意選択的にズーム量の最大量と仮定する)増大し、ズーム量は、電子デバイスが三次元空間内の対象点に近づくときに(任意選択的に、最小ズーム量と仮定する)ときに減少する。原則として、電子デバイスが三次元空間内の対象となる点(複数可)から遠くにあるときに、より大量のズームが必要とされるが、これは、対象となる特徴は、距離が大きくなるほど(例えば、視野の表現において)識別することがより困難であるためであり、これに対して電子デバイスが三次元空間内の対象となる点(複数可)に近い場合には、より少ないズーム量しか必要とされず、これは、対象となる特徴は、距離が小さくなるほど(例えば、視野の表現において)より容易に知覚されるためである。いくつかの実施形態では、最大ズーム量は、1つ以上のカメラのハードウェア仕様(例えば、ズーム制限)に従って課される。
電子デバイスから、測定点に対応する三次元空間内の位置までの距離に基づいてズーム量を自動的に変化させることにより、測定点は各距離に対して適切な倍率レベルで表示されるため、測定点の再配置がより容易になる。更なるユーザ入力を必要とせずに、自動的に測定された距離に依存する異なる倍率でズーム操作を実行することにより、(例えば、測定点を再配置するために適切な入力が提供され得る拡大レベルで測定点を自動的に表示することによって)デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、視野の表現の少なくとも一部分の拡大表示を表示している間に、電子デバイスは、測定点の現在位置における接触を検出することと、タッチ感知ディスプレイを横切る接触の移動(例えば、図5AZのタッチ入力5164)を検出することを含む、第4のタッチ入力を検出する(630)。いくつかの実施形態では、第2のタッチ入力及び第4のタッチ入力は、単一の連続接触による1つの入力の異なる部分である(例えば、第2のタッチ入力は、タッチ感知ディスプレイ上の接触をタッチダウンする入力の第1の部分であり、第4の入力は、接触の移動を含む入力の第2の部分である)。いくつかの実施形態では、タッチ感知ディスプレイを横切る接触の移動を検出したことに応答して、電子デバイスは、第4のタッチ入力における接触の移動に従って視野の表現を横切るように測定点を移動させる(例えば、図5AZに測定点5160を参照して本明細書に記載されるように)。測定点の周囲の拡大されたエリアを見ている間に測定点をドラッグすることにより、測定点を単一の接触の移動で正確に再配置することが容易になる。再配置を実行するのに必要とされる入力の数を削減することで、(例えば、適切な入力を提供するようにユーザを助け、デバイスを操作する/デバイスと相互作用する際のユーザのミスを削減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第1のタッチ入力が、アクティブ化されると、視野の表示された表現に測定点を追加するアフォーダンス上で検出される(632)。いくつかの実施形態では、アフォーダンスは、(固定された)既定の位置でユーザインタフェース内に表示される。いくつかの実施形態では、アフォーダンスのアクティブ化に応答して、測定点が最初に追加される視野の表現内の位置は、アフォーダンスの既定の位置とは別個である。例えば、図5AV~図5AWでは、測定点5160は、測定追加ボタン5014の位置から離れた位置でユーザインタフェース5006に追加される。追加された測定点が最初に表示される位置から離れて位置する測定点を追加するためのアフォーダンスを提供することにより、測定点がどこに配置されるかを容易に見ることができる。点が最初に追加される位置から離れた点を追加するためのアフォーダンスを表示することは、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが測定点を追加するための適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
図6A~図6Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法700、800、900、1000、1100、1200、1300及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図6A~図6Cに関して上記した方法600にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法600を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法700、800、900、1000、1100、1200、1300及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図7A~図7Eは、いくつかの実施形態に係る、拡張現実環境内の物理的空間の表示された表現に測定を追加する方法700を示すフロー図である。方法700は、タッチ感知ディスプレイ(例えば、タッチスクリーン112(図1A)、又は入力デバイス(単数又は複数)302(図3B)と組み合わせたディスプレイ生成構成要素(単数又は複数)304)、タッチ感知ディスプレイとの接触の強度を検出する1つ又は複数のセンサ(例えば、接触強度センサ(単数又は複数)165、図1A)、及び1つ又は複数のカメラ(光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B)及び任意選択的に、1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えば、ポータブル多機能デバイス100(図1A)、デバイス300(図3A)、又はコンピュータシステム301(図3B)で実行される。方法700における一部の動作は、任意選択で組み合わされ、及び/又は、一部の動作の順序は、任意選択で変更される。
以下に記載されるように、方法700は、拡張現実に基づく測定において仮想測定点及び仮想測定セグメントをより正確に追加する直感的な方法を提供する。タッチ感知ディスプレイ、タッチ感知ディスプレイとの接触の強度を検出するための1つ以上のセンサ、及び1つ以上のカメラを備える電子デバイスの場合、タッチ感知ディスプレイ上で連続して検出された接触による反復する押圧は、測定点の位置を少なくとも1つのカメラからのライブビューで位置決めする間、電子デバイスを定常状態に保持することをより容易にする(例えば、タッチ感知ディスプレイ上の反復タップと比較して)。方法700は、仮想測定点及び仮想測定セグメントを追加するときのユーザからの入力の種類を変更し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスに関して、ユーザが測定点及び測定セグメントをより正確に追加することを可能にすることにより、より効率的に電力を節約し、バッテリの充電の間の時間を延ばす。
電子デバイスは、タッチ感知ディスプレイ上に、アプリケーション(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)のユーザインタフェースを表示する(702)。
ユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含む(704)。視野の表現は、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新される(例えば、視野の表現はライブビューであり、1つ以上のカメラが移動するとき、及び/又は1つ以上のカメラの視野内の物理世界が変化するときに変化する)。ユーザインタフェースは、視野の表現の上に表示される測定点作成インジケータを含む(例えば、図5AHのフォーカス点5012と併せたレチクル5010、これらは、カメラのライブプレビューの上部でユーザインタフェース5006内に表示される)。更に、視野は、三次元空間(例えば、物理的オブジェクトを含む物理的世界内の空間)(例えば、物理的空間5000)の少なくとも一部分を含む。
電子デバイスは、タッチ感知ディスプレイ上の接触を検出する(例えば、図5AIのタッチ入力5120)(706)。
タッチ感知ディスプレイ上の接触を連続して検出している間に(708)、かつ測定点作成インジケータが、三次元空間内の第1の位置に対応する視野の表現内の第1の位置の上に表示されている間に(710)、第1の基準を満たすために、接触の強度がそれぞれの強度閾値を満たす(例えば到達する、又は超える)という要件を含む第1の基準(例えば、測定点作成基準)が満たされたという判定に従って、電子デバイスは、三次元空間内の第1の位置に対応する視野の表現内に第1の(仮想)測定点(例えば、図5AIの測定点5122)を追加して表示する(712)。いくつかの実施形態では、電子デバイスは、第1の基準が満たされているかどうかを判定する。いくつかの実施形態では、第1の基準は、接触の強度が強度閾値(例えば、接触検出強度閾値IT0を上回る軽い押圧強度閾値ITL)を超えるときに満たされる(例えば、図5AIの強度計5040によって示されるように)。いくつかの実施形態では、第1の基準は、接触の強度が強度閾値を下回るときに満たされる(強度閾値を超えた後)。いくつかの実施形態では、第1の基準は、第1の基準の他の基準が満たされたとき、接触がアフォーダンス上に位置決めされ、このアフォーダンスは、アクティブ化されたときに、測定点作成インジケータが表示される位置(例えば、図5AIの測定追加ボタン5014)で視野の表示された表現に測定点を追加するという必要条件を含む。
タッチ感知ディスプレイ上の接触を連続して検出している間に(708)、第1の(仮想)測定ポイントを追加した後、電子デバイスは、電子デバイスが移動されるとき(例えば、1つ以上のカメラの視野が変化するとき)、視野の表現を更新する(714)。いくつかの実施形態では、電子デバイスが移動されていることに応答して、電子デバイスは、視野の表現内の第1の(仮想)測定点(例えば、1つ以上のカメラの視野が三次元空間内の第1の位置を含む間の)と、ユーザインタフェース内の測定点作成インジケータとの間に動的測定セグメント(例えば、図5AKの動的測定セグメント5128)を表示する。いくつかの実施形態では、動的測定セグメントの表示は、デバイスの移動(例えば、これは1つ以上のカメラの視野を変更する)に従って変化する。例えば、測定点作成インジケータが、視野の表現内の固定位置で中心に置かれるとき、視野の表現における第1の測定点と、測定点作成インジケータに対応する視野内の表現内の位置との間の距離は、デバイス(及び1つ以上のカメラの視野)が三次元空間内の第1の位置に対して移動するにつれて変化し、したがって、動的測定セグメントの長さは、デバイスが移動するにつれて変化する。
タッチ感知ディスプレイ上の接触を連続して検出している間に(708)、電子デバイスが移動された後、及び測定点作成インジケータが、三次元空間内の第2の位置に対応する視野の表現内の第2の位置の上に表示されている間に(716)、測定点作成インジケータが三次元空間内の第2の位置に対応する視野の表現内の第2の位置の上に表示されている間に第1の基準が満たされるとの判定に従って(718)、電子デバイスは、三次元空間内の第2の位置に対応する視野の表現内に第2の(仮想)測定点を追加して表示する(720)(例えば、図5ALの測定点5132の追加に関して本明細書で説明されるように)。いくつかの実施形態では、視野の表現内の第2の位置は、例えば、測定点作成インジケータが視野の表現内の固定位置で中心に置かれたとき、視野の表現内の第1の位置と同じである。いくつかの実施形態では、電子デバイスは、第1の基準が満たされているかどうかを判定する。加えて、電子デバイスは、第1の測定点と第2の点を接続する第1測定セグメントを表示する(722)。
いくつかの実施形態では、第1の測定セグメント(第1の測定点と第2の測定点を接続する)は、第2の基準(例えば、測定セグメント作成基準)が満たされるという判定に従って表示される。いくつかの実施形態では、第2の基準は、第1の基準がそれぞれの測定点を追加及び表示するために満たされるそれぞれの実例に続いて、接触が、次の測定点を追加及び表示するために第1の基準が満たされる次の実例まで、接触がタッチ感知ディスプレイ上で(例えばアクティブ化されると、測定点作成インジケータが表示される位置で視野の表示された表現に測定点を追加するアフォーダンス上で)維持されるという要件を含む(例えば、図5AH~図5ASを参照して本明細書に示され、説明されるように)。すなわち、第2の基準は、接触が、(強度に基づく)第1の基準を満たす連続する測定点の作成の間に維持されるという要件を含む。いくつかの実施形態では、第1の基準に対する強度閾値は、第1の強度閾値(例えば、接触検出強度閾値(IT0)を上回る第2の強度閾値であり(例えば、軽い押圧強度閾値ITL)、第2の基準は、接触が維持されている間、接触の強度が第1の強度閾値以上に留まるという要件を含む。いくつかの実施形態では、第2の基準は、接触が維持されている間に接触の強度が第2の強度閾値以下に低下するという要件を含む(例えば、第1の基準が、接触の強度が第2の強度閾値を超えることを必要とする場合)。いくつかの実施形態では、第2の基準は、接触が維持されている間に接触の強度が第2の強度閾値以下に留まるという要件を含む(例えば、第1の基準が、(強度閾値を超えた後に)接触の強度が強度閾値を下回ることを必要とする場合)。
より一般的には、いくつかの実施形態では、接触がタッチ感知ディスプレイ上で維持される限り、それぞれの点が、第1の基準が満たされたことによって追加され表示された後、1つ以上の追加の測定点、並びにそれらの対応する測定セグメントが、第1の基準が追加の測定点ごとに満たされることによって追加され、表示される。すなわち、接触がタッチ感知ディスプレイ上に維持される限り、第1の基準が満たされたときのそれぞれの後続の実例は、(新たに追加された)追加の点と直近に追加された前の点との間に追加の点及び追加の測定セグメントの両方を追加する。別の言い方をすれば、第1の基準が満たされたことによってそれぞれの点が追加された後、電子デバイスは、接触がタッチ感知ディスプレイ上で維持されるのを中止するまで連続測定(点及びセグメント)作成モードで動作する。
いくつかの実施形態では、タッチ感知ディスプレイ上の接触を連続して検出している間、及び第2の(仮想)測定点を追加した後、電子デバイスは、電子デバイスが再び移動されるのにつれて視野の表現を更新する(724)(例えば、図5AN~5AQを参照して本明細書に示され、説明されるように)。いくつかの実施形態では、タッチ感知ディスプレイ上の接触を連続して検出している間、電子デバイスが再び移動された後、かつ測定点作成インジケータが、三次元空間内の第3の位置に対応する視野の表現内の第3の位置の上に表示されている間に、測定点作成インジケータが三次元空間内の第3の位置に対応する視野の表現内の第3の位置の上に表示されている間に第1の基準が満たされるとの判定に従って、電子デバイスは、三次元空間内の第3の位置に対応する視野の表現内の第3の(仮想)測定点(例えば、図5ARの測定点5142)を追加して表示し、第2の測定点と第3の測定点を接続する第2の測定セグメント(例えば、図5ARの完了した測定セグメント5136)を表示する。いくつかの実施形態では、視野の表現内の第3の位置は、例えば、測定点作成インジケータが視野の表現内の固定位置で中心として置かれたとき、視野の表現内の第1の位置と同じである。
いくつかの実施形態では、測定点作成インジケータが、三次元空間内の第2の位置に対応する視野の表現内の第2の位置の上に表示されている間に第1の基準が満たされないという判定に従って、電子デバイスは、三次元空間内の第2の位置に対応する視野の表現内の第2の(仮想)測定点を追加して表示するのを取りやめ、かつ第1の測定点と第2の測定点を接続する第1測定セグメントの表示を取りやめる(726)。
いくつかの実施形態では、第2の(仮想)測定点を追加した後、電子デバイスは、電子デバイスが再び移動されると、視野の表現を更新する(728)。いくつかの実施形態では、電子デバイスが再び移動された後、測定点作成インジケータが、三次元空間内の第3の位置に対応する視野の表現内の第3の位置の上に表示されている間、及び測定点作成インジケータが、三次元空間内の第3の位置に対応する視野の表現内の第3の位置の上に表示されている間に第1の基準が満たされたという判定に従って、電子デバイスは、三次元空間内の第3の位置に対応する視野の表現内の第3の(仮想)測定点を追加して表示する。いくつかの実施形態では、第2の測定点を追加するための第1の基準と、第3の測定点を追加するための第1の基準との間で接触が維持されるという要件を含む第2の基準(例えば、測定セグメント作成基準)が満たされるという判定に従って、電子デバイスは、第2の測定点と第3の測定点とを接続する第2の測定セグメントを表示する。いくつかの実施形態では、第2の基準が満たされないという判定に従って、電子デバイスは、第2の測定点と第3の測定点とを接続する第2の測定セグメントを表示するのを取りやめる(例えば、図5AH~図5ASを参照して本明細書に示され、説明されるように)。いくつかの実施形態では、それぞれの測定点が直近に追加された測定点(例えば、第2の測定点)であり、測定セグメントの終点が直近に追加された測定セグメント(例えば、第1の測定セグメント)の終点である場合、このとき、第1の基準(例えば測定点作成基準)は満たされ、第2の基準は満たされないという判定に従って、電子デバイスは追加の測定点(例えば、第3の測定点)を追加して表示し、それぞれの測定点(追加の測定点を表示する前に直近に追加された測定点)と、追加の測定点との間の追加の測定セグメントの表示を取りやめる。
いくつかの実施形態では、タッチ感知ディスプレイ上の接触を連続して検出している間に、及び電子デバイスが移動されている間に、動的測定セグメントが、最近追加された測定点(例えば、第2の測定点)と、測定点作成インジケータに対応する視野の表現内の位置との間に表示され(例えば、動作714を参照して本明細書に記載されている動的測定セグメント)、動的測定セグメントは、第2の基準が満たされたという判定に従って引き続き表示される。いくつかの実施形態では、直近に追加された測定点が、動的測定セグメント(例えば、第1の測定セグメント)を表示する前の直近に追加された測定セグメントである別の測定セグメントの終点である場合、このとき、電子デバイスは、第2の測定点を追加するために第1の基準が満たされた後の(例えば、第3の測定点を追加するために第1の基準が満たされた後の任意の時点での)接触のリフトオフに応答して動的測定セグメントを表示することを中止する(例えば、図5AH~図5ASを参照して本明細書に示され、説明されるように)。
接触がタッチ感知ディスプレイ上に維持されているかどうかに応じて、対応する測定セグメントと共に、又はそれなしで測定点を、直前の測定点に追加することは、測定セグメントを追加せずに測定点を追加するための追加のオプションを提供する(例えば、ユーザが接触をリフトオフすることで、追加すべき次の測定点が前の測定点及び測定セグメントに接続されていないことを示す)。追加で表示される制御によってUIを乱雑にすることなく、追加の制御オプションを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、電子デバイスは1つ以上の触知出力生成器を含む。いくつかの実施形態では、接触の強度がそれぞれの強度閾値を満たす(例えば、到達する(増大する)か、又はそれを超える)という判定に従って、電子デバイスは、(例えば、接触の強度が測定点を追加するのに十分であることを示すために)触知出力を生成する(730)(例えば、図5AIの触知出力5124を参照して本明細書に記載されるように)。いくつかの実施形態では、触知出力は、第1の基準が満たされる(例えば、接触の強度がそれぞれの強度閾値を満たすという要件に加えて、第1の基準の他の要件も満たされる)という判定に従って生成される。いくつかの実施形態では、電子デバイスは、それぞれの強度閾値が満たされるときに触知出力を提供して、接触の強度が測定点を追加するのに十分であることを示す、及び/又は測定点が追加されていることを示す。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
電子デバイスが1つ以上の触知出力生成器を含むいくつかの実施形態では、それぞれの強度閾値は、第1の強度閾値(例えば、接触検出強度閾値IT0)を上回る第2の強度閾値(例えば、軽い押圧強度閾値ITL)である(732)。いくつかの実施形態では、接触の強度が第2の強度閾値を満たさなくなるとの判定(第2の強度閾値を満たした後に)(例えば、接触の強度が第2の強度閾値以下に低下する)、及び接触の強度が第1の強度閾値を満たしている(例えば、接触の強度が第1の強度閾値以上のままである)との判定に従って、電子デバイスは、(例えば、測定点の追加を示すために)触知出力を生成する(例えば、図5AJを参照して本明細書に記載されるように)。いくつかの実施形態では、電子デバイスは、強度が第2の強度閾値を下回るときに触知出力を提供して、測定点が追加されていることを示す。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第1の測定点の追加及び表示は、接触の強度がそれぞれの強度閾値を満たすとき、測定点作成インジケータが、三次元空間内の第1の位置に対応する視野の表現内の第1の位置の上に表示される間に実行される(例えば、図5AIを参照して本明細書に示され、説明されるように)(734)。いくつかの実施形態では、第2の測定点の追加及び表示は、電子デバイスが移動された後に接触の強度がそれぞれの強度閾値を満たすとき、測定点作成インジケータが、三次元空間内の第2の位置に対応する視野の表現内の第2の位置の上に表示されている間に実行される。
いくつかの実施形態では、それぞれの強度閾値は、第1の強度閾値(例えば、接触検出強度閾値IT0)を上回る第2の強度閾値(例えば、軽い押圧強度閾値ITL)である(736)。いくつかの実施形態では、第1の基準は、第1の基準が満たされるために、接触の強度がそれぞれの強度閾値を満たした後に、それぞれの強度閾値を下回るという要件を含む。いくつかの実施形態では、第1の測定点の追加及び表示は、接触の強度が対応の強度閾値を下回るとき、測定点作成インジケータが、三次元空間内の第1の位置に対応する視野の表現内の第1の位置の上に表示されている間に実行される。いくつかの実施形態では、第2の測定点の追加及び表示は、電子デバイスが移動された後、及び測定点作成インジケータが、三次元空間内の第2の位置に対応する視野の表現内の第2の位置の上に表示されている間に、接触の強度が、それぞれの強度閾値を下回るまで低下したときに実行される。
いくつかの実施形態では、1つ以上のカメラの視野の表現を表示している間に、電子デバイスは、三次元空間内のそれぞれの位置に対応する1つ以上のカメラの視野の表現内のアンカー点を決定する(738)。いくつかの実施形態では、1つ以上のカメラが移動すると、測定点作成インジケータ(又はその少なくとも一部)は、アンカー点の上(又はそれに近接し)になり、電子デバイスは、接触が第1の基準を満たす場合、それぞれの測定点がアンカー点で追加されることを示すために測地点作成インジケータの視覚的外観を変更する(例えば、図5AHにおけるレチクル5010及びフォーカス点5012を参照して本明細書に記載されるように)。接触が第1の基準を満たす場合、測定点がアンカー点で追加されるという視覚的フィードバックを提供することにより、アンカー点に測定点を追加することが容易になる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、ユーザインタフェースは、アクティブ化されると、測定点作成インジケータが表示される視野の表現内の位置で視野の表現内に(仮想)測定点を追加するアフォーダンスを含む(例えば測定追加ボタン5014)(740)。いくつかの実施形態では、電子デバイスは、アフォーダンスをアクティブ化するタッチ入力(例えば、タップジェスチャ)を検出し、アフォーダンスをアクティブ化するタッチ入力を検出したことに応答して、測定点作成インジケータが表示される視野の表現内の位置で視野の表現内に測定点を追加して表示する(例えば、図5Kを参照して本明細書に示され、説明されるように)。
図7A~図7Eにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、800、900、1000、1100、1200、1300及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図7A~図7Eに関して上記した方法700にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法700を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、800、900、1000、1100、1200、1300及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図8A~図8Cは、いくつかの実施形態に係る、拡張現実環境において自動的に決定されたアンカー点で仮想測定点を追加する方法800を示すフロー図である。方法800は、タッチ感知ディスプレイ(例えば、タッチスクリーン112(図1A)、又は入力デバイス(単数又は複数)302(図3B)と組み合わせたディスプレイ生成構成要素(単数又は複数)304)、及び1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、タッチ感知ディスプレイとの接触の強度を検出する1つ又は複数のセンサ(例えば、接触強度センサ(単数又は複数)165、(図1A)、及び任意選択的に、1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えば、ポータブル多機能デバイス100(図1A)、デバイス300(図3A)、又はコンピュータシステム301(図3B)で実行される。方法800の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に記載されるように、方法800は、自動的に決定されたアンカー点で、又はそのようなアンカー点から離れた位置のいずれかで、拡張現実に基づく測定において仮想測定点を追加する直感的な方法を提供する。電子デバイスは、測定点作成基準が満たされた場合に、測定点がアンカー点で追加されることの視覚的フィードバックを提供し、これにより、アンカー点で測定点を追加することが容易になる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。バッテリ動作電子デバイスに関して、ユーザが自動的に決定されたアンカー点で(又はそのようなアンカー点から離れて測定点を追加する)迅速に測定点を追加することを可能にすることにより、より効率的に電力を節約し、バッテリ充電間の時間を延ばす。
電子デバイスは、タッチ感知ディスプレイ上に、アプリケーションのユーザインタフェース(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)を表示する(802)。
ユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含む(804)。視野の表現は、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新される(例えば、視野の表現はライブビューである)。加えて、ユーザインタフェースは、視野の表現の上に表示される測定点作成インジケータを含む(例えば、図5Kのフォーカス点5012と組み合わせたレチクル5010)。視野は、三次元空間(例えば、物理的オブジェクトを含む物理的世界内の空間)の少なくとも一部分を含む。
視野の表現を表示している間に(806)、電子デバイスは、三次元空間内の第1の位置に対応する視野の表現内の位置でアンカー点を決定する(808)。いくつかの実施形態では、電子デバイスは、三次元空間内の物理的オブジェクトの角、三次元空間内の物理的オブジェクトの縁部に沿った点などの三次元空間内の複数の位置に対応する複数のアンカー点を決定する。
視野の表現を表示している間に(806)、1つ以上のカメラのうちの少なくとも1つが移動し、測定点作成インジケータ(又はその少なくとも一部)がアンカー点の上(又はその近く)にある間、電子デバイスは、タッチ入力が第1の基準(例えば、測定点作成基準)を満たす場合、(仮想)測定点が、アンカー点で追加されることを示すために(例えば、図5AKにおけるレチクル5010及びフォーカス点5012を参照して本明細書に記載されるように)、測定点作成インジケータの視覚的外観を変更する(810)。
視野の表現を表示している間に(806)、電子デバイスは、第1の基準を満たすタッチ感知ディスプレイ上の第1のタッチ入力(例えば、アフォーダンス上のタップジェスチャ、又は強度閾値を満たす、又はそれを超える、アフォーダンス上の強い押圧入力)(例えば、図5Kのタッチ入力5038)を検出する(812)。
視野の表現を表示している間に(806)、第1の基準を満たす第1のタッチ入力を検出したことに応答して(814)、及び第1の基準が満たされたとき、測定点作成インジケータ(又は少なくともその一部)がアンカー点の上に(又はそれに近接して)あるという判定に従って(816)、電子デバイスは、三次元空間内の第1の位置に対応する視野の表現内のアンカー点で第1の(仮想)測定点(例えば、図5Kの測定点5042)を追加して表示する。
視野の表現を表示している間に(806)、第1の基準が満たされたとき、測定点作成インジケータ(又はその少なくとも一部)がアンカー点の上にない(又はそれに近接していない)との判定に従って(818)、電子デバイスは、アンカー点から離れている視野の表現内の第1の位置で(例えば、三次元空間内の第1の位置に対応しない視野の表現内の位置で)第1の(仮想)測定点を追加して表示する。
いくつかの実施形態では、決定されたアンカー点は、(例えば、図5Qの測定点5054に対応するアンカー点に関して本明細書に記載されるように)測定の(現在)表示された表現の終点でもあり(820)、タッチ入力が第1の基準を満たす場合、アンカー点で測定点を追加することは、視野の表現内に、複数の表示された測定セグメント(例えば、及びそれらの関連する終点)によって囲まれた領域を形成しない。例えば、決定されたアンカー点での測定点の追加と併せて、又はそれに応答して追加される測定セグメントは、追加された測定セグメントを、閉じた多角形の最後の辺として含む閉じた多角形を形成しない。測定点作成基準が満たされた場合、測定点がアンカー点で追加される視覚的フィードバックを提供することにより、測定点のループをちょうど閉じていないアンカー点を含む、アンカー点で測定点を追加することが容易になる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、電子デバイスは、視野の表現の上に第1の測定の表現を表示する(822)。第1の測定の表現は、三次元空間内の第2の位置に対応する第1の終点と、三次元空間内の第3の位置に対応する第2の終点と、第1の終点と第2の終点を接続する第1のラインセグメントとを含む。更に、決定されたアンカー点は、第1のラインセグメントの中点である(例えば、アンカー点が対応する第1の位置は、三次元空間内の第2の位置と第3の位置の中間である)(例えば、図5AAを参照して本明細書に示され、説明されるように)。測定点作成基準が満たされた場合、測定点が測定セグメントの中点にあるアンカー点で測定点が追加されることの視覚的フィードバックを提供することにより、測定セグメントの中点で測定点を追加することが容易になる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、電子デバイスは1つ以上の触知出力生成器を含む。いくつかの実施形態では、1つ以上のカメラのうちの少なくとも1つが移動し、及び測定点作成インジケータ(又はその少なくとも一部)がアンカー点の上(又はその近く)にある間に、電子デバイスは、測定点作成インジケータの視覚的外観を変更することと併せて触知出力を生成する(824)(例えば、図5Hに関して本明細書で説明されるように)。いくつかの実施形態では、タッチ入力が第1の基準を満たす場合、アンカー点で測定点を追加することは、1つ以上のカメラの視野の表現において、複数の表示された測定セグメント(例えば、それらの関連する終点)によって囲まれた領域を形成しない。例えば、測定点の追加と併せて、又はそれに応答して追加される測定セグメントは、閉じた多角形の最後の辺として追加される測定セグメントを含む閉じた多角形を形成しない。いくつかの実施形態では、触覚出力は、三次元空間内の識別された物理的特徴にスナップするときに生成される。いくつかの実施形態では、触知出力は、測定の現在表示されている表現に、そのそれぞれの測定点(例えば、終点)に、及び/又はその測定セグメントの中点にスナップするときに生成される。測定点作成基準が満たされた場合に、アンカー点で測定点が追加されることの触覚フィードバック及び視覚的フィードバックの両方を提供することにより、測定点のループをちょうど閉じていないアンカー点を含むアンカー点で測定点を追加することが容易になる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
電子デバイスが1つ以上の触知出力生成器を含むいくつかの実施形態では、電子デバイスは、アンカー点から離れた測定点作成インジケータの移動を検出する(826)(例えば、その結果測定点作成インジケータは、アンカー点の上にない(又はそれに近接していない)(例えば、測定点作成インジケータがユーザインタフェース内の固定位置に留まる間、視野を変更する1つ以上のカメラの移動に起因する)。いくつかの実施形態では、測定点作成インジケータのアンカー点から離れる移動を検出したことに応答して、電子デバイスは、触知出力を生成する(例えば、図5Iに関して本明細書で説明されるように)。測定点作成基準が満たされた場合、測定点がアンカー点で追加されないことの触覚フィードバックを提供することは、測定点を配置する間ユーザを案内するのに役立つ。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
電子デバイスが、1つ以上の触覚出力生成器を含むいくつかの実施形態では、
第1の基準を満たす第1のタッチ入力を検出したことに応答して、電子デバイスは、第1の測定点に接続される第1の測定セグメントを追加せずに、第1の測定点を追加し(例えば第1の測定点は、新たな測定の第1の終点である)、第1の触覚出力を生成する(例えば測定の開始の触覚出力)(例えば、図5Kの測定点5042に関して本明細書で説明されるように)(828)。いくつかの実施形態では、電子デバイスは、三次元空間内の第2の位置に対応する視野の表現内の第2の位置への測定点作成インジケータの移動を検出する(例えば、図5Mに関して本明細書で説明されるように)。いくつかの実施形態では、測定点作成インジケータが、視野の表現内の第2の位置の上にある間に、電子デバイスは、第1の基準を満たすタッチ感知ディスプレイ上の第2のタッチ入力を検出する。いくつかの実施形態では、第1の基準を満たす第2のタッチ入力を検出したことに応答して、電子デバイスは、視野の表現内の第2の位置で第2の測定点を追加する(例えば、図5Nの測定点5054に関して本明細書で説明されるように)。いくつかの実施形態では、第1の基準を満たす第2のタッチ入力を検出したことに応答して、電子デバイスは、第1の測定点と第2の測定点との間に測定セグメントを追加する(例えば、電子デバイスは、第2の測定点及び測定セグメントを追加することによって測定の表現を追加し、この場合測定の表現は、第1の測定点、第2の測定点、及び測定セグメントを含む)(例えば、図5Nの測定セグメント5048に関して本明細書に記載されるように)。いくつかの実施形態では、第1の基準を満たす第2のタッチ入力を検出したことに応答して、電子デバイスは、第1の触知出力とは異なる第2の触知出力(例えば、測定終了触知出力)を生成する(例えば、第2の触知出力は、周波数、振幅、パターン、持続時間などの少なくとも1つの触知出力において第1の触知出力とは異なる)(例えば、図5Nの触知出力5056に関して本明細書に記載されているように)。測定セグメントが作成された場合と比較して測定の開始時(第1の測定点のみを有する)に触覚フィードバックを提供することは、測定点を配置している間に、測定プロセスにおいてそれらがどこにあるかを示すことによってユーザを案内するのに役立つ。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、1つ以上のカメラのうちの少なくとも1つが移動すると、電子デバイスは、測定点作成インジケータを表示し、一方、視野の表現は、1つ以上のカメラのうちの少なくとも1つのカメラの視野内の三次元空間内の識別された物理的特徴に対応する領域を含む。加えて、電子デバイスは、視野の表現が三次元空間内の識別された物理的特徴に対応する領域を含まない間は、測定点作成インジケータを表示するのを中止する(例えば、図5E~図5Gを参照して本明細書に記載されるように)(830)。ライブビューが、三次元空間内の識別された物理的特徴に対応する領域を含むかどうかに応じて、測定点作成インジケータを表示する、又は表示しないことは、自動的に識別された特徴の有無に関する視覚的フィードバックを提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
図8A~8Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、900、1000、1100、1200、1300及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図8A~図8Cに関して上記した方法800にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法800を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、700、900、1000、1100、1200、1300及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図9A~図9Bは、いくつかの実施形態に係る、拡張現実環境における物理的空間の測定のためのラベルを表示する方法900を示すフロー図である。方法900は、ディスプレイ(例えば、タッチスクリーン112(図1A)、ディスプレイ340(図3A)、又はディスプレイ生成構成要素(単数又は複数)304(図3B))、入力デバイス(例えば、タッチスクリーン112(図1A)、タッチパッド355(図3A)、入力デバイス(単数又は複数)302(図3B)、又はディスプレイとは別個の物理ボタン、1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、入力デバイスのタッチ感知面との接触の強度を検出するための1つ以上のセンサ(例えば、接触強度センサ(単数又は複数)165、図1A)、及び任意選択的に1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えばポータブル多機能デバイス100(図1A)、デバイス300(図3A)又はコンピュータシステム301(図3B)で実行される。方法900の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に説明するように、方法900は、電子デバイスと所与の測定との間の距離に基づいて、異なる測定のためのラベルを提供する直感的な方法を提供する。短い距離で最大サイズのラベルを提供することにより、これらのラベルが大きくなりすぎ、視野の表現の大部分を見えにくくすることを防ぐ。最小サイズのラベルを長い距離で提供することにより、これらのラベルが判読し易いように維持する。中間距離で可変サイズのラベルを提供することは、視野の表現における対応する測定の相対距離を示す。このように、異なる距離で異なる測定のためのラベルを提供することは、(例えば、デバイスを操作する/デバイスと相互作用するときに、ユーザが測定ラベルを見ること及び使用するのを助けることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
電子デバイスは、ディスプレイ上に、アプリケーションのユーザインタフェース(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)を表示する(902)。
ユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含む(904)。視野の表現は、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新される(例えば、視野の表現はライブビューである)。視野は、三次元空間(例えば、物理的世界の空間)内の物理的オブジェクトを含む。
視野の表現を表示している間に、電子デバイスは、視野の表現の上に、物理的オブジェクトに対応する第1の測定の表現を追加する(例えば、物理的オブジェクトの長さ、幅、又は他の寸法の測定に対応する表示されたライン、この場合表示されたラインは視野の表現の上に重ね合わされる、又は載せられる)、入力デバイスを介する1つ以上のユーザ入力(例えば、アクティブ化されると、視野の表示された表現に測定点を追加するアフォーダンス上のタップジェスチャ又はアフォーダンス上の押圧入力)を検出する(906)。いくつかの実施形態では、電子デバイスは、視野の表現の上に、第1の測定の表現と、第1の測定を記述する第1のラベルを同時に表示する(908)。いくつかの実施形態では、電子デバイスと物理的オブジェクトとの間の第1の距離(例えば、電子デバイスのカメラのうちの1つから物理的オブジェクトまでの距離)が第1の閾値距離(例えばより小さい距離閾値)未満であるという判定に従って、第1のラベルは、第1の閾値サイズ(例えば、電子デバイスと物理的オブジェクトとの間の距離が第1の閾値距離を下回って縮小するのにつれて変化しない上位のサイズ閾値、又は最大サイズ)で表示される(910)。いくつかの実施形態では、電子デバイスと物理的オブジェクトとの間の第1の距離が、第1の閾値距離より大きい第2の閾値距離(例えば、上位の距離閾値)より大きいとの判定に従って、第1のラベルは、第1の閾値サイズより小さい第2の閾値サイズで(例えば電子デバイスと物理的オブジェクトとの間の距離が第2の閾値距離を上回って増加するのにつれて変化しない、より下位のサイズ閾値、又は最小サイズ)表示される。いくつかの実施形態では、電子デバイスと物理的オブジェクトとの間の第1の距離が、第1の閾値距離と第2の閾値距離との間にあるという判定に従って、第1のラベルは、電子デバイスと物理的オブジェクトとの間の第1の距離に依存する、第1の閾値サイズと第2の閾値サイズとの間のサイズで表示される。電子デバイスと物理的オブジェクトとの間の距離に基づくラベルサイズの変化は、図5AX~図5BEを参照して本明細書に示され、記載されている。
いくつかの実施形態では、視野の表現の上に、測定の表現と、測定を記述するラベルを同時に表示している間に、電子デバイス(又は電子デバイスのカメラのうちの1つ)が物理的オブジェクトからの第1の距離である間に、電子デバイスは、第1のスケールで測定の表現に沿って1つ以上の第1のスケールマーカーを表示する(例えば、三次元空間内の第1の既定の物理的距離の間隔に対応する、測定の表現に沿った第1の既定の距離の間隔で1つ以上の第1のスケールマーカーを表示する)(912)。いくつかの実施形態では、電子デバイスは、電子デバイスを物理的オブジェクトから第2の距離に移動させる電子デバイスの移動(又はその1つ以上のカメラの移動)を検出する。いくつかの実施形態では、電子デバイスが物理的オブジェクトからの第2の距離である間に、電子デバイスは、第1のスケールとは異なる第2のスケールで測定の表現の少なくとも一部分に沿って1つ以上の第2のスケールマーカーを表示する(例えば、三次元空間内の第2の所定の物理距離の間隔に対応する、電子デバイスは、測定の表現に沿った第2の既定の距離の間隔で1つ以上の第2スケールマーカーを表示する)。電子デバイスと物理的オブジェクトとの間の距離に基づいた表示されるマーカーのスケールの変化は、図5AX~5BEを参照して本明細書に示され、説明される。
いくつかの実施形態では、電子デバイスが物理的オブジェクトから第1の既定の距離(例えば、第2の閾値距離より大きな距離、又は第1の閾値距離と第2の閾値距離との間の距離)の範囲内にある間で、第1の既定の距離範囲が第1の距離を含む場合、第1のスケールでの1つ以上の第1のスケールマーカーが、測定の表現に沿って表示される。いくつかの実施形態では、電子デバイスが、物理的オブジェクトから第2の既定の距離(例えば第1の閾値距離と第2の閾値距離との間の距離、又は第1の閾値未満の距離)の範囲内にある間で、第2の既定の距離範囲が第2の距離を含む場合、第2のスケールでの1つ以上の第2のスケールマーカーが、測定の表現の少なくとも一部分に沿って表示される(例えば、電子デバイスの物理的オブジェクトにより近づくような移動の結果として、測定の表現の一部分のみが引き続きユーザインタフェース内に表示され続ける場合)。
一例では、電子デバイスの検出された移動は、電子デバイスを物理的オブジェクトにより近く移動させ、そのため第1の距離が第2の距離よりも大きくなる。電子デバイスが物理的オブジェクトからの第1の距離にある間、1つ以上のスケールマーカーが、三次元空間内の1フィート間隔に相当する、測定の表現に沿った間隔で表示される。同じ例では、電子デバイスが物理的オブジェクトからの第2の距離にある間、1つ以上のスケールマーカーは、三次元空間内の1インチの間隔に相当する、測定の表現に沿った間隔で表示される。デバイスが物理的オブジェクトからのそれぞれの距離、例えばメートル、デシメートル、センチメートル、ミリメートル、ヤード、フィート、インチ、クォーターインチ、又は任意の他の好適な距離にある間に、表示されるスケールマーカーによって、異なる既定の物理的距離が表示され得ることを当業者は認識するであろう。
測定からデバイスまでの距離が変化するのにつれてスケールを自動的に変化させるスケールマーカーを提供することは、ユーザが手動でスケールを変更することを必要とする場合より効率的である。更なるユーザ入力を必要とせずに、一セットの条件(例えば距離条件)が満たされる動作を実行することにより、(例えば、デバイスを操作する/デバイスと相互作用するときに、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、電子デバイスは、視野の表現の上に、三次元空間内のそれぞれの物理的オブジェクト(例えば、第1の測定が対応する同一の物理的オブジェクト、又は三次元空間内の異なる物理的オブジェクト)に対応する第2の測定の表現を追加する1つ以上のユーザ入力の第2のセットを検出する(914)。いくつかの実施形態では、電子デバイスは、視野の表現の上に、第2の測定の表現と、第2の測定を記述する第2のラベルを同時に表示する。いくつかの実施形態では、電子デバイスとそれぞれの物理的オブジェクトとの間の第2の距離が第1の閾値距離未満であるという判定に従って、第2のラベルは第1の閾値サイズで表示される。いくつかの実施形態では、電子デバイスとそれぞれの物理的オブジェクトとの間の第2の距離が第2の閾値距離より大きいとの判定に従って、第2のラベルは第2の閾値サイズで表示される。いくつかの実施形態では、電子デバイスとそれぞれの物理的オブジェクトとの間の第2の距離が第1の閾値距離と第2の閾値距離との間にあるという判定に従って、第2のラベルは、電子デバイスとそれぞれの物理的オブジェクトとの間の第2の距離に依存する、第1の閾値サイズと第2の閾値サイズとの間のサイズで表示される。いくつかの実施形態では、視野の表現は、視野が変化するにつれてサイズが変化する複数のラベルを同時に表示する。
いくつかの実施形態では、電子デバイスと第1の測定が対応する物理的オブジェクトとの間の第1の距離は、電子デバイスと第2の測定が対応するそれぞれの物理的オブジェクトとの間の第2の距離とは異なる(916)。いくつかの実施形態では、第1のラベルは、(例えば、第1の距離に基づく)第1のサイズで表示され、第2のラベルは(例えば、第2の距離に基づく)第2のサイズで表示され、第1のサイズは第2のサイズとは異なる。一例では、第1の距離は、第1の既定の距離の範囲内にあり、第2の距離は、第2の既定の距離の範囲内にある(例えば、第1の既定の範囲は、第1の閾値距離未満の距離、第2の閾値距離を超える距離、又は第1の閾値距離と第2の閾値距離との間の距離のうちの1つであり、また第2の既定の範囲は、前述の範囲のうちの異なる1つである)。別の例では、第1の距離及び第2の距離は、第1の閾値距離と第2の閾値距離との間の距離の範囲内の異なる距離であり、したがって、それらの関連するラベルのそれぞれのサイズ(例えば、第1の距離及び第2の距離での測定に対応するラベル)は異なる。
図9A~図9Bにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、1000、1100、1200、1300及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図9A~図9Bに関して上記した方法900にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法900を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、700、800、1000、1100、1200、1300及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図10A~図10Bは、いくつかの実施形態に係る、拡張現実環境における物理的空間内の矩形エリアを測定し、それと相互作用する方法1000を示すフロー図である。方法1000は、ディスプレイ(例えば、タッチスクリーン112(図1A)、ディスプレイ340(図3A)、又はディスプレイ生成構成要素(単数又は複数)304(図3B))、入力デバイス(例えば、タッチスクリーン112(図1A)、タッチパッド355(図3A)、入力デバイス(単数又は複数)302(図3B)、又はディスプレイとは別個の物理ボタン、1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、入力デバイスのタッチ感知面との接触の強度を検出するための1つ以上のセンサ(例えば、接触強度センサ(単数又は複数)165、図1A)、及び任意選択的に1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えばポータブル多機能デバイス100(図1A)、デバイス300(図3A)又はコンピュータシステム301(図3B)で実行される。方法1000の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に説明するように、方法1000は、測定に隣接する矩形を検出し表示する直感的な方法を提供する。ユーザ入力に応答して作成された測定に隣接して検出された矩形を有することにより、方法1000は、デバイスがユーザに関係のない(例えば、測定されていない)矩形を検出し示すリスクを低減し、それによって、より効率的なヒューマンマシンインタフェースを作成する。バッテリ動作電子デバイスに関して、関連する矩形のより迅速かつより効率的な検出及び表示を可能にすることにより、電力を節約し、バッテリ充電間の時間を延ばす。
電子デバイスは、ディスプレイ上に、アプリケーションのユーザインタフェース(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)を表示する(1002)。
ユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含む(1004)。視野の表現は、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新される(例えば、視野の表現はライブビューである)。視野は、三次元空間(例えば、物理的世界の空間)内の物理的オブジェクト(又はその一部分)を含む。
視野の表現を表示している間に、電子デバイスは、視野の表現の上に、物理的オブジェクトに対応する第1の測定の表現を追加する1つ以上のユーザ入力を介する1つ以上のユーザ入力(例えば、アクティブ化されると、視野の表示された表現に測定点を追加するアフォーダンス上でのタップジェスチャ又は押圧入力)を検出する(例えば、検出されたユーザ入力は、電子デバイスに、物理的オブジェクトの縁部の測定に対応する表示されたラインを追加させ、この場合表示ラインは、視野の表現の上に重ね合わされるか、又は載せられる)(1006)。
第1の測定の表現は、物理的オブジェクト上の第1の位置に対応する第1の終点を含む(1008)。第1の測定の表現は、物理的オブジェクト上の第2の位置に対応する第2の終点を含む。第1の測定の表現は、第1の終点と第2の終点とを接続する第1のラインセグメントを含む。2つの終点と、2つの終点を接続する第1のラインセグメントとを含む測定の表現の追加は、図5J~図5Oを参照して本明細書に示され、説明される。
電子デバイスは、第1の測定(又はその表現)にある程度基づいて、第1の測定の第1のラインセグメントに隣接する視野の表現内の第1のエリアを判定する(1010)。第1のエリアは、三次元空間内の物理的矩形エリア(例えば、物理的矩形エリア全体又はその一部分)に対応する。例えば、第1のエリアは、物理的オブジェクトの物理的矩形エリア又はその一部分に対応し、第1の測定は、物理的オブジェクトの物理的矩形エリアの1つの縁部に対応する。いくつかの実施形態では、視野の表現内の第1のエリアは、物理的矩形エリアに対する1つ以上のカメラのうちの少なくとも1つのカメラの視野角に起因して、視野の表現内で矩形として表示されない。いくつかの実施形態では、電子デバイスは、視野の表現内の第1のエリアに対応する物理的エリアが、視野の表現の画像処理(例えば、深さ推定を使用して)に基づいた矩形エリアであると判定する。いくつかの実施形態では、1つ以上のカメラのうちの少なくとも1つのカメラの視野は、物理的矩形エリアの1つ以上の追加部分を含まずに、物理的矩形エリアの第1の部分を含む。いくつかの実施形態では、物理的矩形エリアの1つ以上の追加部分を見ることは、物理的矩形エリアの1つ以上の追加部分を含むように、1つ以上のカメラのうちの少なくとも1つのカメラの視野を移動させるデバイスの移動を必要とする。
電子デバイスは、ユーザインタフェース内の第1のエリアの指示を表示する(1012)(例えば、図5Pのインジケータ5058)。指示は、視野の表現内の第1のエリアの上に載せられる(例えば、重ね合わされる)。
いくつかの実施形態では、ユーザインタフェースは、視野の表現の上に表示される測定点作成インジケータを含む(例えば、図5Yのフォーカス点5012と組み合わせたレチクル5010)(1014)。いくつかの実施形態では、第1のエリアの指示は、測定点作成インジケータが、1つ以上のカメラの視野の表現内の第1のエリアの上に表示されるとの判定に従って表示される(例えば、図5Yを参照して本明細書に示され、説明されるように)。いくつかの実施形態では、測定点作成インジケータ(又はその少なくとも一部分)が第1のエリアの上にある間に、電子デバイスは、入力デバイスを介するユーザ入力(例えば、アクティブ化されると、視野の表示された表現に測定又は測定点を追加するアフォーダンスに対応する位置でのタッチ感知面上のタップジェスチャ又は押圧入力)を検出する。いくつかの実施形態では、測定点作成インジケータが第1のエリアの上にある間にユーザ入力を検出したことに応答して、電子デバイスは、第1のエリアが確認されたことを示すために第1のエリアの指示の視覚的外観を変更する(例えば、図5Zを参照して本明細書に示され、説明されるように)。
いくつかの実施形態では、測定点作成インジケータが第1のエリアの上にある間、及び第1のエリアの指示が表示されている間にユーザ入力が検出され、測定点作成インジケータが第1のエリアの上にある間、及び第1のエリアの指示が表示されている間の両方のユーザ入力を検出したことに応答して(例えばこれに従って)第1のエリアの表示の視覚的外観が変更される。いくつかの実施形態では、方法は、視野の表現の上に、第1のエリアを記述する1つ以上のラベルを表示することを含む(例えば、変化した視覚的外観で表示される指示と同時に表示される)。いくつかの実施形態では、第1のエリアを記述する1つ以上のラベルは、第1のエリアの第1の辺の長さ(例えば、物理的矩形エリアの長さ)を示すラベル、第1のエリアの第2の辺の長さを示すラベル(例えば、物理的矩形エリアの幅)、及び/又は第1のエリアの面積(例えば、物理的矩形エリアの面積)を示すラベルを含む(例えば、図5Zを参照して本明細書に示され、説明されるように)。
第1のエリアの指示の外観を変更することにより、電子デバイスが、第1の測定に隣接する矩形が正しいというユーザの確認を検出したことの視覚的フィードバックを提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、1つ以上のユーザ入力は、視野の表現の上に、物理的オブジェクトに対応する第2の測定の表現を追加する(例えば、検出されたユーザ入力は、電子デバイスに、物理的オブジェクトの第2の縁部の測定に対応する第2の表示されたラインを追加させ、この場合、第2の表示ラインは、視野の表現上に重ね合わされる、又は載せられる)(例えば、図5Yの測定セグメント5066及びその対応する終点によって表される測定)(1016)。いくつかの実施形態では、第2の測定の表現は、物理的オブジェクト上の第2の位置に対応する第2の終点(例えば、図5Yの測定点5054)を含む。いくつかの実施形態では、第2の測定の表現は、物理的オブジェクト上の第3の位置に対応する第3の終点(例えば、第3の位置は、第1の位置及び第2の位置と異なる)(例えば、図5Yの測定点5090)を含む。いくつかの実施形態では、第2の測定の表現は、第2の終点と第3の終点を接続する第2のラインセグメント(例えば、図5Yの測定セグメント5066)を含む。いくつかの実施形態では、1つ以上のカメラの視野の表現における第1のエリアは、第1の測定及び第2の測定に基づいて判定される。いくつかの実施形態では、第1のエリアは、第1の測定の第1のラインセグメント及び第2の測定の第2のラインセグメントに隣接する。2つの測定に基づいて第1のエリアを判定することにより、デバイスが、ユーザに関係のない(例えば、測定されていない)矩形を検出し示すリスクを低減し、それによって(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、1つ以上のカメラのうちの少なくとも1つのカメラの視野は、物理的矩形エリアの第1の部分を含み、第1のエリアは、物理的矩形エリアの第1の部分に対応する(例えば、図5ABのインジケータ5104によって示される領域を参照して説明されるように)(1018)。いくつかの実施形態では、電子デバイスは、1つ以上のカメラのうちの少なくとも1つのカメラの視野を移動させる電子デバイスの移動を検出する(例えば、図5AC~図5ADを参照して本明細書に示され、説明されるように)。いくつかの実施形態では、視野を移動させる電子デバイスの移動を検出したことに応答して、電子デバイスは、視野の表現を経時的に更新して、物理的矩形エリアの1つ以上の追加の部分に対応する1つ以上の追加エリアの1つ以上の指示を表示する。いくつかの実施形態では、第1のエリアと、経時的に表示される1つ以上の追加エリアとを含む集合エリアが、物理的矩形エリア全体に対応しているとの判定に従って、電子デバイスは、視野の表現の上に、物理的矩形エリアに対応する測定を記述するラベルを表示する(例えば、図5AEのラベル5110を参照して本明細書に記載されるように)。いくつかの実施形態では、ラベルは、測定の面積(例えば、物理的矩形エリア全体の面積)を示す。視野が変化するにつれて、物理的矩形エリアに対応する追加エリアの指示を自動的に示すことは、電子デバイスが物理的矩形エリアを正しく検出していることの視覚フィードバックを提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、集合エリアが物理的矩形エリア全体に対応するという判定に従って、物理的矩形エリアに対応する測定を記述するラベルを視野の表現の上に表示した後、電子デバイスは、視野の表現が、物理的矩形エリアの第1の部分に対応する第1のエリアを含むように、1つ以上のカメラのうちの少なくとも1つのカメラの視野を移動させる電子デバイスの更なる移動を検出する(1020)。いくつかの実施形態では、集合エリアが物理的矩形エリア全体に対応するという判定に従って、電子デバイスは、物理的矩形エリアの第1の部分に対応する第1のエリアの上に、物理的矩形エリアに対応する測定を記述するラベルを表示する(例えば、図5AFを参照して本明細書に記載されるように)。そのような部分が(再)表示されているときに、物理的矩形エリアの異なる部分で物理的矩形エリアの測定を記述するラベルを表示することは、電子デバイスが物理的矩形エリアを正確に検出しており、測定が物理的矩形エリアの全ての部分に正確に関連付けられているという視覚的フィードバックを提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
図10A~図10Bにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1100、1200、1300及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図10A~図10Bに関して上記した方法1000にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法1000を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、700、800、900、1100、1200、1300及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図11A~図11Bは、いくつかの実施形態に係る、拡張現実環境において測定情報と相互作用し、それを管理する方法1100を示すフロー図である。方法1100は、タッチ感知ディスプレイ(例えば、タッチスクリーン112(図1A)、又は入力デバイス(単数又は複数)302(図3B)と組み合わせたディスプレイ生成構成要素(単数又は複数)304)、及び1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、タッチ感知ディスプレイとの接触の強度を検出する1つ又は複数のセンサ(例えば、接触強度センサ(単数又は複数)165、(図1A)、及び任意選択的に、1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えば、ポータブル多機能デバイス100(図1A)、デバイス300(図3A)、又はコンピュータシステム301(図3B)で実行される。方法1100の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に説明するように、方法1100は、測定の表現上でタッチ入力を検出したことに応答して情報を共有するためのプロセスを開始することにより、測定に関する情報を共有するための直感的な方法を提供する。方法1100は、測定に関する情報を共有する際のユーザからの入力の数、範囲、及び/又は種類を低減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスでは、ユーザが測定に関する情報をより迅速にかつより効率的に共有できることを可能にすることにより、電力をより効率的に節約し、バッテリの充電の間の時間を延ばす。
電子デバイスは、タッチ感知ディスプレイ上に、アプリケーションの第1のユーザインタフェース(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)を表示する(1102)。
第1のユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含む(1104)。視野の表現は、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新される(例えば、視野の表現はライブビューである)。視野は、三次元空間(例えば、物理的世界の空間)内の物理的オブジェクトを含む。物理的オブジェクトの測定の表現は、視野の表現内の物理的オブジェクトの画像上に重ね合わされる。
第1のユーザインタフェースを表示している間に、電子デバイスは、測定の表現上のタッチ感知ディスプレイ上の第1のタッチ入力(例えば、タップ、ダブルタップ、又は表示された測定上の押圧入力)(例えば、図5BLのタッチ入力5182)を検出する(1106)。
測定の表現上のタッチ感知ディスプレイ上の第1のタッチ入力を検出したことに応答して、電子デバイスは、測定に関する情報を共有するプロセスを開始する(例えば、クライアントボードプロセス又は通信アプリケーション(例えば、テキストメッセージアプリケーション、電子メールアプリケーション、ファイル転送アプリケーション)などに測定に関する情報を送信する)(例えば、例えば、図5BL~図5BMを参照して本明細書に記載されているように)(1108)。いくつかの実施形態では、プロセスは、測定情報をクリップボードに追加することを含む。いくつかの実施形態では、プロセスは、情報を第2のアプリケーションに送信することを含む。いくつかの実施形態では、プロセスを開始することは、共有シートユーザインタフェースなどの、測定に関する情報を共有するためのユーザ選択可能オプションを含む第2のユーザインタフェースを表示することを含む。いくつかの実施形態では、第2のユーザインタフェースは、測定を説明する情報を含む。いくつかの実施形態では、情報は、測定が重ね合わされる物理的オブジェクトを分類する(例えば、窓、壁、床、又はテーブルとして)自動的に生成された意味的ラベルを含む。いくつかの実施形態では、情報は、第1の測定と物理的オブジェクトとの間の関係(例えば、物理的オブジェクトの長さ、幅、高さ、又は深さ)を分類する、自動的に生成された意味的ラベルを含む。
いくつかの実施形態では、測定に関する情報を共有するためのプロセスを開始することは、測定に関する情報を(例えば、電子デバイスのオペレーティングシステムによって提供されるクリップボードプロセスに)コピーすることを含む(1110)。いくつかの実施形態では、測定に関する情報をコピーした後、電子デバイスは、測定に関する情報を電子デバイス上の宛先にペーストするために1つ以上のユーザ入力を検出する。いくつかの実施形態では、測定に関する情報を電子デバイス上の宛先にペーストするために1つ以上のユーザ入力を検出したことに応答して、電子デバイスは、電子デバイス上の宛先において測定に関する情報を表示する。測定に関する情報のコピー及びペーストを可能にすることにより、同じアプリケーション内での測定の共有、及び電子デバイス上の他のアプリケーションと測定を共有することが容易になる。複数のアプリケーションに利用できる情報を作成することは、(例えば、測定を共有する又は送信するためのアプリケーションを選択し易くすることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、測定に関する情報を共有するためのプロセスを開始することは、1つ以上のアクティブ化可能なユーザインタフェース要素を含む第2のユーザインタフェース(例えば、図5BMの測定管理インタフェース5184)を表示することを含み、この場合、1つ以上のアクティブ化可能なユーザインタフェース要素内のそれぞれのアクティブ化可能なユーザインタフェース要素は、測定に関する情報のそれぞれの宛先に対応する(例えば、図5BMのアイコン5192、5194及び5196)(1112)。いくつかの実施形態では、1つ以上のアクティブ化可能なユーザインタフェース要素の各々は、電子デバイス上のそれぞれのアプリケーション(第1のアプリケーション以外の)又はプロセスに対応する(例えば、メッセージングアプリケーション(例えば、図5BMのアイコン5194)、電子メールアプリケーション(例えば、図5BMのアイコン5192)、メモ取りアプリケーション、ファイル転送プロトコル(例えば、図5BMのアイコン5196)など)。いくつかの実施形態では、電子デバイスは、第2のユーザインタフェース内のそれぞれのアクティブ化可能なユーザインタフェース要素上でのタッチ感知ディスプレイ上の第2のタッチ入力を検出する。いくつかの実施形態では、第2のタッチ入力を検出したことに応答して、電子デバイスは、それぞれのアクティブ化可能なユーザインタフェース要素に対応するそれぞれの宛先に測定に関する情報を送信する。
いくつかの実施形態では、測定に関する情報をそれぞれの宛先に送信することは、電子デバイス上の第2のアプリケーション(例えば、メモ取りアプリケーション)に情報を送信することを含む。いくつかの実施形態では、測定に関する情報をそれぞれの宛先に送信することは、後続の宛先に情報を送信する前に、測定に関する情報を再検討、編集、及び/又はアノテーションするための第3のユーザインタフェースを表示することを含む(例えば、第3のユーザインタフェースは、選択されると、任意の編集及びアノテーションを含む情報が、それぞれの宛先(例えば、メッセージングアプリケーション又は電子メールアプリケーション)から後続の宛先(例えば、別の電子デバイス)へ送信される、アフォーダンスを含む)。いくつかの実施形態では、測定に関する情報をそれぞれの宛先に送信することは、電子デバイスと第2の電子デバイスとの間のファイル転送プロトコルを介して、第2の電子デバイスに情報を送信することを含む。
ユーザインタフェースに、共有される測定のための複数の宛先(例えば、宛先アイコンを有する共有シート)に対するアクティブ化可能なユーザインタフェース要素を提供することにより、これらの宛先と測定を共有することが容易になる。複数の共有宛先オプションを提供することは、(例えば、測定を共有又は送信するためのアプリケーションを選択し易くすることによって)デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、測定の表現上のタッチ感知ディスプレイ上の第1のタッチ入力を検出したことに応答して、電子デバイスは、測定に関する情報を表示する(1114)。いくつかの実施形態では、測定に関する情報は、測定の大きさを含む(例えば、図5BMの測定管理インタフェース5184に示されるように)。いくつかの実施形態では、測定に関する情報は、測定と物理的オブジェクトとの間の関係(例えば、物理的オブジェクトの長さ、幅、高さ、又は深さ)を分類する意味的ラベルを含む(例えば、図5BMの測定管理インタフェース5184内のラベル5186-bを参照して本明細書に記載されるように)。いくつかの実施形態では、測定に関する情報は、測定と三次元空間の識別されたアンカー特徴との間の関係(例えば、テキストラベル)を含む(例えば、視野の表現内の特定のエリアが、地面に平行な物理的矩形エリアに対応するかどうか)を分類するラベルを含む。いくつかの実施形態では、測定が物理的矩形エリアに対応し、かつ長さ測定、幅測定、及び面積測定を含むいくつかの実施形態では、長さ、幅、及び面積が表示され、長さ及び幅は面積よりも目立つように表示される。測定の表現上でタッチ入力を検出したことに応答して、情報を共有するためのプロセスを開始することに加えて、測定に関する情報を提供することは、ユーザが共有のために正しい測定を選択しており、かつユーザが情報を見ること及び使用することを可能にする視覚的フィードバックを提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、測定に関する情報を表示することは、第1の基準が満たされるために、第1のタッチ入力における接触強度がそれぞれの強度閾値を満たす(例えば、到達する又は超える)という要件を含む第1の基準を満たすという判定に従って実行される(例えば、図5BL~図5BMを参照して本明細書に記載されるように)(1116)。いくつかの実施形態では、それぞれの強度閾値は、接触検出強度閾値IT0を上回る軽い押圧強度閾値ITLである。強度基準を満たす、測定の表現上のタッチ入力を検出したことに応答して測定に関する情報を提供することは、偶発的な、望ましくない情報の表示を低減する。強度基準が満たされたときに動作を実行することにより、(例えば、デバイスを操作する/デバイスと相互作用するときに、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、電子デバイスは、物理的オブジェクトの分類(例えば、それぞれの構造的特徴(窓、壁、床など)として、又は家具若しくは固定具(テーブル)のそれぞれの部品などとしての物理的オブジェクトの分類)を決定する(1118)。いくつかの実施形態では、測定に関する情報は、物理的オブジェクトの分類を示すラベルを含む(例えば、図5BMの測定管理インタフェース5184内のラベル5186-aを参照して本明細書に記載されるように)。いくつかの実施形態では、電子デバイスは、1つ以上のカメラの視野の表現の画像処理に基づいて(例えば、特徴認識を使用して)物理的オブジェクトを分類する。更なるユーザ入力を必要とせずに、物理的オブジェクトを自動的に分類及びラベル付けすることは、デバイスの操作性を向上させ、ユーザが物理的オブジェクトを手動で分類しラベルを付ける必要性を低減(又は排除)することによって、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、測定の表現は、測定中の第1の方向の電子デバイスの移動に少なくともある程度基づいて、アプリケーションのユーザインタフェースに追加された(1120)。いくつかの実施形態では、電子デバイスは、測定中の第1の方向への電子デバイスの移動に少なくともある程度基づいて、測定と物理的オブジェクトとの間の関係の分類(例えば、物理的オブジェクトの長さ、幅、高さ又は深さに対応するような測定の分類)を決定する(例えば、図5BMを参照して本明細書に記載されるように)。
いくつかの実施形態では、測定に関する情報は、測定と物理的オブジェクトとの間の関係の分類を示すラベルを含む。例えば、電子デバイスは、測定中の垂直方向である電子デバイスの移動に基づいて物理的オブジェクトの高さとして、又は測定中に電子デバイスの水平方向への移動に基づいて物理的オブジェクトの幅として測定を分類する。いくつかの実施形態では、電子デバイスは、視野の表現の画像処理(例えば、特徴認識)に更に基づいて測定と物理的オブジェクトとの間の関係を分類して、測定に沿ったそれぞれの地点に対応する、電子デバイスと物理的オブジェクト上のそれぞれの点との間のそれぞれの距離を判定する。例えば、電子デバイスは、測定の第1の終点に対応する物理的オブジェクト上の第1の点が、測定の第2の終点に対応する物理的オブジェクト上の第2の点よりも電子デバイスから離れている(又は電子デバイスにより近い)(例えばz方向に)との判定に更に基づいて物理的オブジェクトの深さとして測定を分類する。
更なるユーザ入力を必要とせずに、測定中のデバイスの移動にある程度基づいて、測定を自動的に分類及びラベル付けすることは、デバイスの操作性を向上させ、ユーザが手動で分類及びラベル測定を行う必要性を低減(又は排除)することによって、ユーザデバイスインタフェースをより効率的にする。
図11A~11Bにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1200、1300及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図11A~図11Bに関して上記した方法1100にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法1100を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1200、1300及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図12A~図12Cは、いくつかの実施形態に係る、拡張現実環境において自動的に決定された位置合わせガイドを提供する方法1200を示すフロー図である。方法1200は、ディスプレイ(例えば、タッチスクリーン112(図1A)、ディスプレイ340(図3A)、又はディスプレイ生成構成要素(単数又は複数)304(図3B))、入力デバイス(例えば、タッチスクリーン112(図1A)、タッチパッド355(図3A)、入力デバイス(単数又は複数)302(図3B)、又はディスプレイとは別個の物理ボタン、1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、入力デバイスのタッチ感知面との接触の強度を検出するための1つ以上のセンサ(例えば、接触強度センサ(単数又は複数)165、図1A)、及び任意選択的に1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えばポータブル多機能デバイス100(図1A)、デバイス300(図3A)又はコンピュータシステム301(図3B)で実行される。方法1200の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に説明するように、方法1200は、拡張現実に基づく測定において(仮想)ガイドを、ガイドがカメラの視野の移動方向に沿って延在している状態で提供する直感的な方法を提供する。測定ガイドを提供することは、ユーザの所定位置を助け、(仮想)測定点を迅速かつ正確に配置するのに役立つ。カメラの視野の移動方向に沿ってガイドを自動的に提供することによって、方法1200は、測定を作成する際のユーザからの入力の数、範囲、及び/又は種類を低減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスに関して、ユーザがより迅速にかつより効率的に測定行うことを可能にすることで、電力が節約され、バッテリ充電間の時間が延びる。
電子デバイスは、ディスプレイ上に、アプリケーションのユーザインタフェース(例えば、拡張現実測定アプリケーション又は拡張現実測定機能を含むアプリケーション)を表示する(1202)。ユーザインタフェースは、1つ以上のカメラのうちの少なくとも1つのカメラの視野の表現を含み(1204)、視野の表現は、1つ以上のカメラのうちの少なくとも1つによって検出された現在の視覚データに対する変更に基づいて経時的に更新され(例えば、視野の表現はライブビューである)、また、視野は、三次元空間(例えば、物理的オブジェクトを含む物理的世界内の空間)の少なくとも一部分を含む。
電子デバイスは、1つ以上のカメラのうちの少なくとも1つのカメラの視野を第1の方向(例えば、水平方向又は垂直方向)(又は、いくつかの実施形態では、実質的に第1の方向(10,15,20度又は25度以内などの、第1の方向の既定の閾値角度内にある方向))に移動させる電子デバイスの移動を検出する(1206)。
第1の方向に視野を移動させる電子デバイスの移動を検出している間に(1208)、電子デバイスは、電子デバイスの移動に従って視野の表現を更新し(1210)、第1の方向に沿って延在する視野の表現内の1つ以上の第1の要素(又は特徴)を識別し(例えば、検出された縁部、検出された平面など)(1212)、1つ以上の第1の要素の判定に少なくともある程度基づいて、視野の表現内に、第1の方向に延在し、かつ1つ以上の第1の識別された要素のうちの1つに対応する第1のガイドを表示する(例えば、図5Mの仮想ガイド5050を参照して本明細書に記載されるように)(1214)。いくつかの実施形態では、電子デバイスは、第1の方向に複数のガイドを表示する(例えば、図5ABの仮想ガイド5106を参照して本明細書に記載されるように)。いくつかの実施形態では、複数のガイドのそれぞれは、第1の方向に沿って延在するそれぞれ識別された要素(例えば、第1の方向に沿って延在する、三次元空間内のそれぞれの物理的オブジェクトのそれぞれの縁部)に対応する。いくつかの実施形態では、電子デバイスは、電子デバイスの移動を検出している間に、第1の方向に1つ以上のガイドを表示する。
いくつかの実施形態では、視野は複数の要素を含み(1216)、複数の要素は、第1の方向以外の方向(例えば、第1の方向に直交する方向、又はほぼ直交する(例えばそこに直交している既定の閾値角度の範囲内の)方向、あるいは第1の方向から所定の閾値角度を超える、例えば、第1の方向から10、15、20又は25度を超える方向)に延在する1つ以上の要素を含む。いくつかの実施形態では、第1の方向に視野を移動させる電子デバイスの移動を検出している間に、電子デバイスは、第1の方向以外の方向に延在するガイドを表示することを取りやめる(例えば、図5AN~図5AO及び図5AVを参照して本明細書に記載されるように)。例えば、電子デバイスは、カメラの移動方向に基づいてガイドを延在させる物理的オブジェクト(例えば、テーブル又は壁)の軸を決定する。いくつかの実施形態では、電子デバイスは、少なくとも1つのカメラの移動の方向以外の方向に延在するガイドを表示せずに、少なくとも1つのカメラの移動方向に延在する、視野内の1つ以上の要素に対応する1つ以上のガイドを表示する。他の方向に延在するガイドを提供せずに、視野の移動方向に沿って1つ以上のガイドを提供することで、作成されている測定に関係のないガイドを表示するのを回避する。ユーザインタフェースの乱雑さを低減することによって、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第1の方向で視野を移動させる電子デバイスの移動を検出する前に(1218)、電子デバイスは、タッチ感知ディスプレイ上の第1のタッチ入力を検出し、第1のタッチ入力を検出したことに応答して、三次元空間内の第1の位置に対応する視野の表現内の第1の位置に第1の(仮想)測定点を追加して表示する(例えば、図5Rの測定点5054)。第1のガイドを表示することは、1つ以上の第1の要素が、三次元空間内の第1の位置に対応する(例えば、第1の位置は検出される縁部に沿った特定の点である)との判定に更に基づいている。加えて、第1のガイドは、視野の表現内の第1の位置を含む(例えば、ガイドは測定点と重なっているか、又は測定点から第1の方向に延在する)(例えば、図5Sの仮想ガイド5070を参照して本明細書に記載されるように)。視野の移動方向に沿って第1の測定点から延在する及び/又は第1の測定点を含むガイドを提供することは、ユーザが第2の測定点を配置し、それによって測定を行うのを助ける。このような視覚的フィードバックを提供することにより、デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)。
いくつかの実施形態では、視野の表現内の第1の位置での第1の測定点は、視野の表現における直近に追加された測定点である(1220)。視野の移動方向に沿って直近に追加された測定点から延在する、及び/又はそのような測定点を含むガイドを提供することは、ユーザが次の測定点を配置し、それによって、2つの直近に追加された2つの測定点間の測定を行うのを助けることができる。このような視覚的フィードバックを提供することにより、デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)。
いくつかの実施形態では、視野を第1の方向(例えば、図5Sを参照して本明細書で説明されるように水平方向)に移動させる電子デバイスの移動を検出した後、電子デバイスは、視野を第2の方向(例えば、図5Tを参照して本明細書で説明されるように垂直方向)に移動させる電子デバイスの移動を検出する(1222)。視野を第2の方向に移動させる電子デバイスの移動を検出したことに応答して、電子デバイスは、第1の方向に延在する第1のガイドの表示を中止する。いくつかの実施形態では、電子デバイスは、第2の方向以外の任意の方向又は第2の方向の所定の閾値角度内に任意のガイドを表示することを中止する(例えば、図5Tを参照して本明細書に記載されるように)。第2の方向に視野を移動させる電子デバイスの移動を検出している間に、電子デバイスは、電子デバイスの移動に従って視野の表現を更新し、第2の方向に沿って延在する視野の表現内の1つ以上の第2の要素を識別し、かつ1つ以上の第2の要素の判定に少なくともある程度基づいて、視野の表現内に、第2の方向に延在し、かつ1つ以上の識別された第2の要素のうちの1つに対応する第2のガイドを表示する(例えば、図5Tの仮想ガイド5072)。視野の移動方向が変化するのにつれて、ガイドを自動的に変更することは、作製されている測定に関連する可能性がより高いガイドを表示する(及び、作成されている測定に関係する可能性が低いガイドの表示を中止する)。ユーザインタフェースの乱雑さを低減することによって、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第1のガイドが対応する1つ以上の第1の識別された要素のうちの少なくとも1つは、三次元空間内の物理的オブジェクトの縁部として識別される要素である(1224)(例えば、図5Sを参照して本明細書で説明されるように)。第1の方向に伸びる物理的オブジェクトの縁部に沿ってガイドを自動的に表示することは、ユーザが測定点を配置し、この縁部に沿って測定を行うのに役立つ。更なるユーザ入力を必要とせずに、オブジェクトの縁部に沿ってガイドを自動的に提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第1のガイドが対応する1つ以上の第1の識別された要素のうちの少なくとも1つは、三次元空間内の平面として識別される要素である(1226)(例えば、三次元空間内の物理的オブジェクトの表面に対応する)。第1の方向に伸びる平面に沿ってガイドを自動的に表示することは、ユーザが測定点を配置し、平面に沿って測定を行うのに役立つ。更なるユーザ入力を必要とせずに、平面に沿ってガイドを自動的に提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、ユーザインタフェースは、視野の表現の上に表示される測定点作成インジケータを含む(1228)。いくつかの実施形態では、電子デバイスは、三次元空間内のそれぞれの位置に対応する視野の表現内のそれぞれの位置に、それぞれの測定点を表示する。いくつかの実施形態では、電子デバイスは、測定点作成インジケータを視野の表現内のそれぞれの測定点の上に移動させる電子デバイスの移動を検出し、また、電子デバイスの移動を検出したことに応答して、測定点作成インジケータがそれぞれの測定点の上に表示されている間、電子デバイスは複数のガイドを表示する。複数のガイドのうちの第1のガイドは、複数のガイドの第2のガイドに直交しており、複数のガイドは、それぞれの測定点で交差する。垂直ガイドの表示は、図5ATを参照して本明細書に記載される。
いくつかの実施形態では、複数のガイドのそれぞれのガイドは、それぞれのガイドが、測定点から延在する視野の表現内の特定の要素に沿って延在するという判定に少なくともある程度基づいて表示される。例えば、測定点が三次元空間内の物理的オブジェクトの角に対応する場合、1つ以上のガイドは、視野の表現内に表示されるように、第1の方向に延在する物理的オブジェクトの縁部(例えば、物理的オブジェクトの(水平方向の)長さに対応する縁部)に沿って物理的オブジェクトの角から第1の方向に(例えばx軸に沿って)延在するガイドを含む。いくつかの実施形態では、1つ以上のガイドは、視野の表現に表示されるように、第2の方向(例えば、物理的オブジェクトの(垂直方向の)高さに対応する)に延在する物理的オブジェクトの縁部に沿って物理的オブジェクトの角から第2の方向(例えば、y軸に沿って)延在するガイドを含む。いくつかの実施形態では、1つ以上のガイドは、視野の表現内に表示されるように、第3の方向に延在する物理的オブジェクトの縁部(例えば、物理的オブジェクトの深さに相当する縁部)に沿って物理的オブジェクトの角から第3の方向(例えば、z軸に沿って)延在するガイドを含む。
測定点作成インジケータが測定点の上に表示されている間に、複数の垂直ガイドを測定点で自動的に表示することは、ユーザが追加の測定点を配置するのに役立つ。更なるユーザ入力を必要とせずに、垂直ガイドを測定点で自動的に提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、ユーザインタフェースは、視野の表現内の第2の位置の上に表示される測定点作成インジケータを含む(1230)。いくつかの実施形態では、第1の方向に延在する第1のガイドを表示している間に、電子デバイスは、タッチ感知ディスプレイ上の第2のタッチ入力を検出する。第2のタッチ入力を検出したことに応答して、及び第2の位置と第1のガイドとの間の距離(例えば、最短距離)が閾値距離内にあるという判定に従って、電子デバイスは、第2の位置からその距離である第1のガイド上の位置に第2の(仮想)測定点を追加して表示する。例えば、図5Xは、仮想ガイド5072上の特定の点での測定点5090の追加を示す。第2のタッチ入力を検出したことに応答して、及び第2の位置と第1のガイドとの間の距離が閾値距離以内でないという判定に従って、電子デバイスは、第2の位置に第2の測定点を追加して表示する(例えば、測定点5080は仮想ガイド5072の閾値距離内にないため、測定点5080は仮想ガイド5072上の点に追加されない)。測定点作成インジケータの位置とガイドとの間の距離に応じて、測定点をガイド上に自動的に追加する(例えば、測定点をガイド上の位置にスナップする)ことは、ユーザが測定点を迅速かつ正確に配置するのに役立つ。更なるユーザ入力を必要とせずに、一セットの条件(例えば、距離条件)が満たされたとき動作を実行することにより、(例えば、ユーザが適切な測定入力を提供するようにユーザを支援し、デバイスを操作する/それと相互作用するときにユーザの誤りを削減することによって)デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
図12A~図12Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、1300、及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図12A~図12Cに関して上記した方法1200にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法1200を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600,700,800,900,1000,1100,1300,及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図13A~図13Cは、いくつかの実施形態による、以前に追加された仮想アノテーションを自動的に除去する方法1300を示すフロー図である。方法1300は、1つ以上の入力デバイス(例えば、タッチスクリーン112(図1A)、タッチパッド355(図3A)、又は入力デバイス(単数又は複数)302(図3B))、又はディスプレイとは別個の物理的ボタン、1つ以上の表示デバイス(例えば、タッチスクリーン112(図1A)、ディスプレイ340(図3A)又はディスプレイ生成構成要素(単数又は複数)304(図3B))、及び1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、入力デバイスのタッチ感知面との接触の強度を検出するための1つ以上のセンサ(例えば、接触強度センサ(単数又は複数)165、図1A)、及び任意選択的に1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えばポータブル多機能デバイス100(図1A)、デバイス300(図3A)又はコンピュータシステム301(図3B)で実行される。方法1300の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に記載されるように、方法1300は、現在の仮想アノテーション(現在の拡張現実に基づく測定など)に接続されていない、又はそれに関係ない前の仮想アノテーション(前の拡張現実ベースの測定など)を自動的に削除するための直感的な方法を提供する。前の関係ない仮想アノテーションを自動的に削除することにより、新しい仮想アノテーションを作成しつつ、拡張現実ユーザインタフェースが、これ以前の仮想アノテーションによって乱雑になるのを阻止する。本明細書に記載されるように、方法1300は、前の仮想アノテーションを手動で削除する必要なしに、個々の仮想アノテーションを作成することを容易にし、また、新たな仮想アノテーションが一続きの関連する仮想アノテーションに追加されるとき、この一続きの中のこれ以前の仮想アノテーションを削除することなく、一続きの関係する仮想アノテーション(例えば接続された仮想アノテーション)を取得し易くする。この方法は、拡張現実に基づく仮想アノテーションを作成する際のユーザからの入力の数、範囲、及び/又は種類を低減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスに関して、ユーザが拡張現実ベースの仮想アノテーションをより迅速かつより効率的に作成することを可能にすることにより、電力が節約され、バッテリ充電間の時間が延びる。
具体的には、仮想アノテーションが拡張現実に基づく測定である場合、前の関係のない拡張現実に基づく測定を自動的に削除することにより、新たな測定を行っている間に測定ユーザインタフェースがこれより前の測定で乱雑になることを防止する。このような自動削除はまた、電子デバイスが物理的空間に対する正確なマッピングをもはや持たなくてもよい測定を除去する。本明細書に記載されるように、方法1300は、前の測定を手動で削除する必要なく、個々の測定を行うことを容易にし、また、新たな仮想アノテーションがこの一続きに追加されるとき、この一続きにあるこれ以前の仮想アノテーションを削除することなく、一続きの関係する仮想アノテーション(例えば接続された仮想アノテーション)を取得し易くもする。方法は、拡張現実に基づく測定を行う際のユーザからの入力の数、範囲、及び/又は種類を低減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作電子デバイスに関して、ユーザがより迅速かつ効率的に拡張現実ベースの測定を行うことを可能にすることで、電力が節約され、バッテリ充電間の時間が延びる。
電子デバイスは、1つ以上の表示デバイスを介して、物理的空間の表現(例えば、1つ以上のカメラのうちの少なくとも1つのカメラの視野内にある物理的空間の一部分のライブプレビュー)含むユーザインタフェースを表示する(1302)。例えば、図5BSにおけるユーザインタフェース5006は、物理的空間5000の表現を含む。
物理的空間の表現を表示している間に、電子デバイスは、物理的空間の表現内に仮想アノテーション(例えば、形状、線、矩形、測定など)を作成するために1つ以上の入力の第1のセットを受信する(例えば特定の点を下げるための入力であり、その後に、物理的空間に対する電子デバイスの移動が続き、その後に、特定の点を下げるための別の入力が続く)(1304)。
1つ以上の入力の第1のセットを受信したことに応答して、電子デバイスは、物理的空間の表現に第1の仮想アノテーションを追加する(1306)。第1の仮想アノテーションは、物理的空間の表現の一部分にリンクされる。例えば、図5BS~図5BUに示されるように、測定セグメント5212及びその関連する終点5206及び5216を含む仮想アノテーションが、ユーザインタフェース5006内に作成され、(物理的)オブジェクト5202の表現にリンクされる。別の例として、図5BV~5BYに示されるように、測定セグメント5222及びその関連する終点5220及び5224を含む仮想アノテーションが、ユーザインタフェース5006内に作成され、オブジェクトの表現5202にリンクされる。
いくつかの実施形態では、仮想アノテーションを物理的空間の表現に追加することは、仮想アノテーションを作成することと、それを物理的空間の表現内の位置にリンクすることで、仮想アノテーションが物理的空間の表現内に固定されて見える、又は実質的に固定されて見えることと、を含む。いくつかの実施形態では、物理的空間の表現「内」の仮想アノテーション又は物理的空間の表現に「追加される」仮想アノテーションは実際には、物理的空間の特定のモデルに追加され、仮想アノテーションがリンクされる物理的空間の表現の一部分が物理的空間のカメラ画像内に現れたとき、物理的空間のカメラ画像の上部に描かれることで、仮想アノテーションが物理的空間内にあることの印象を与える。いくつかの実施形態では、物理的空間の表現から「除去される」仮想アノテーションは、実際には、物理的空間の特定のモデルから除去され、ひとたびそれが、物理的空間の表現が「除去される」と、仮想アノテーションがリンクされた物理的空間の表現の一部分が物理的空間のカメラ画像に現れたとき、物理的空間のカメラ画像の上にそれはもはや描かれないことで、仮想アノテーションはもはや物理的空間内にないという印象を与える。
第1の仮想アノテーションを物理的空間の表現に追加した後、電子デバイスは、物理的空間の表現に関連付けられた1つ以上の入力の第2のセットを受信する(1310)。
物理的空間の表現に関連付けられた1つ以上の入力の第2のセットを受信したことに応答して(1312)、1つ以上の入力の第2のセットが、第1の仮想アノテーションから閾値距離内にある仮想アノテーションを物理的空間の表現内に作成せよとの要求に対応するという判定に従って、電子デバイスは、物理的空間の表現内に第1の仮想アノテーションを維持しつつ、物理的空間の表現内に第2の仮想アノテーション(例えば、物理的空間の表現の第2の部分にリンクされた)を作成する(1314)。いくつかの実施形態では、第1の仮想アノテーションと第2の仮想アノテーションは同時に表示される。いくつかの実施形態では、閾値距離はゼロである(例えば、第2の仮想アノテーションが作成されるときに第1の仮想アノテーションを維持するために、第2の仮想アノテーションを第1の仮想アノテーションと接続される必要がある)。いくつかの実施形態では、閾値距離はゼロを超える(例えば、第2の仮想アノテーションが第1の仮想アノテーションまで所定の距離内にある場合、たとえ第2の仮想アノテーションが第1の仮想アノテーションに接続されていない場合でも、第1の仮想アノテーションは維持される)。例えば、図5BZ~図5CFに示されるように、測定セグメント5232は以前に追加された測定セグメント5222からの閾値距離内にあるため、以前に追加された測定セグメント5222は、測定セグメント5232が作成される際/作成された後、ユーザインタフェース5006内の物理的空間5000の表現内に維持される。別の実施例では、図5CG~図5CKに示されるように、測定セグメント5242は、以前に追加された測定セグメント5232及び5222からの閾値距離内にあるため、以前に追加された測定セグメント5232及び5222は、測定セグメント5242が作成される際/作成された後、ユーザインタフェース5006内の物理的空間5000の表現内に維持される。
加えて、物理的空間の表現に関連付けられた1つ以上の入力の第2のセットを受信したことに応答して(1312)、1つ以上の入力の第2のセットが、第1の仮想アノテーションからの閾値距離の外にある仮想アノテーションを物理的空間の表現内に作成せよとの要求に対応しているとの判定に従って(1316)、電子デバイスは、物理的空間の表現内に第2の仮想アノテーション(例えば、物理的空間の表現の第2の部分にリンクされる)を作成し、物理的空間の表現から第1の仮想アノテーションを除去する。いくつかの実施形態では、第1の仮想アノテーションは、第1の仮想アノテーションを除去するための明示的な要求なしに除去される(例えば、デバイスは、第2の仮想アノテーションを作成するために使用される入力の第2のセットとは別個の、第1の仮想アノテーションの削除を要求するユーザ入力を検出しない)。例えば、図5BV~5BYに示されるように、測定セグメント5222は、以前に追加された測定セグメント5212から閾値距離の外にあるため、以前に追加された測定セグメント5212は、測定セグメント5222が追加される際/追加された後、除去される。
いくつかの実施形態では、物理的空間の表現内に第1の仮想アノテーションを維持しながら、物理的空間の表現内に第2の仮想アノテーションを作成することは、第1の仮想アノテーションの少なくとも一部分に対応する位置に第2の仮想アノテーションを作成することを開始することを含む(1318)(例えば、図5CA~図5CFにおける測定セグメント5232の作成が代わりに、図5CFにおける測定点5234の配置で開始し、図5CAにおける測定点5228の配置に終了する場合)。後続の仮想アノテーションが前の仮想アノテーション上で開始するとき、前の仮想アノテーションを自動的に維持することにより、新たなアノテーションが一続きの関連する仮想アノテーションに追加されるとき、この一続きにあるこれ以前のアノテーション(例えば測定)を削除することなく、電子デバイスが一続きの関連する仮想アノテーション(例えば一続きの接続された測定)を作成することを可能にする。更なるユーザ入力を必要とせずに、一セットの条件が満たされたときに(例えば、後続の仮想アノテーションが前の仮想アノテーション上で開始するとき)動作を実行することは、(例えば、ユーザが適切な入力を提供するようにユーザを助け、デバイスを操作する/デバイスと相互作用するときにユーザの誤りを削減することによって)デバイスの操作性を強化し、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間の表現内に第1の仮想アノテーションを維持しながら、物理的空間の表現内に第2の仮想アノテーションを作成することは、第1の仮想アノテーションの少なくとも一部分に対応する位置で第2の仮想アノテーションの作成を完了することを含む(1320)。例えば、図5BZ~図5CFに示されるように、測定セグメント5232の作成は、測定セグメント5222の終点に対応する位置で完了し、測定セグメント5222は物理的空間5000の表現内に維持される。後続の仮想アノテーションが前の仮想アノテーション上で終わるとき、前の仮想アノテーションを自動的に維持することにより、新たなアノテーションが一続きの関連する仮想アノテーションに追加されるとき、この一続きにあるこれ以前のアノテーション(例えば測定)を削除することなく、電子デバイスが一続きの関連する仮想アノテーション(例えば一続きの接続された測定)を作成することを可能にする。更なるユーザ入力を必要とせずに、一セットの条件が満たされたとき(例えば後続の仮想アノテーションが前の仮想アノテーション上に終わるとき)動作を実行することで、(例えば、ユーザが適切な入力を提供するようにユーザを助け、デバイスを操作する/デバイスと相互作用するときにユーザの誤りを削減することによって)、デバイスの操作性を向上させユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間の表現に関連付けられた1つ以上の入力の第2のセットを受信したことに応答して、1つ以上の入力の第2のセットが、1つ以上のカメラのうちの少なくとも1つのカメラの視野を閾値量を超えてシフトする(例えば、第1の仮想アノテーションと物理的空間の表現との間のリンクの追跡の忠実度を閾値量を超えて低下させる特定の量だけ、1つ以上のカメラのうちの少なくとも1つのカメラの視野をシフトする)要求に対応するという判定に従って、電子デバイスは、物理的空間の表現から第1の仮想アノテーションを除去する(1322)。いくつかの実施形態では、第1の仮想アノテーションは、第1の仮想アノテーションを除去する明示的な要求なしに除去される(例えば、電子デバイスは、第1の仮想アノテーションの削除を要求するユーザ入力を検出しない)。閾値量を超えるカメラ(複数又は単数)の移動に従って仮想アノテーションを除去する例が、図5CL~図5CMを参照して本明細書で説明される。後続の仮想アノテーションのための視野が閾値量を超えてシフトするとき、前の仮想アノテーション(例えば測定)を自動的に除去することにより、拡張現実ユーザインタフェースにおける乱雑さを低減し、かつ、新しい仮想アノテーションの近くにない前の仮想アノテーションの追跡及び表示の忠実性を伴う潜在的な問題を回避する。更なるユーザ入力を必要とせずに、一セットの条件が満たされたときに動作を実行することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間の表現に関連付けられた1つ以上の入力の第2のセットを受信したことに応答して、1つ以上の入力の第2のセットが、1つ以上のカメラのうちの少なくとも1つのカメラの視野をシフトする(例えば、1つ以上のカメラのうちの少なくとも1つのカメラの視野を、閾値時間量を超えて、第1の仮想アノテーションがリンクされるに見える物理的空間の一部分から離れるようにシフトする)ことで、第1の仮想アノテーションを閾値時間量を超えてもはや見ることができないようにするという要求に対応するという判定に従って、電子デバイスは、物理的空間の表現から第1の仮想アノテーションを除去する(1324)。いくつかの実施形態では、第1の仮想アノテーションは、第1の仮想アノテーションを除去する明示的な要求なしに除去される(例えば、デバイスは、第1の仮想アノテーションの削除を要求するユーザ入力を検出しない)。仮想アノテーションが閾値時間量を超えて見ることができなくなるように、カメラの移動に従って仮想アノテーションを除去する例が図5CL~図5CMを参照して本明細書に記載されている。後続の仮想アノテーションの視野が閾値時間量を超えてシフトするときに、前の仮想アノテーション(例えば、測定)を自動的に除去することにより、拡張現実ユーザインタフェースにおける乱雑さを低減し、新しい仮想アノテーションの近くにない前の仮想アノテーションの追跡及び表示の忠実性を伴う潜在的な問題を回避する。更なるユーザ入力を必要とせずに、一セットの条件が満たされたときに動作を実行することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、1つ以上の入力の第2のセットを受信している間、及び第1の仮想アノテーションが物理的空間の表現内にある間に、電子デバイスは、更なる入力によって、物理的空間の表現から第1の仮想アノテーションを除去する指示を出力する(1326)。いくつかの実施形態では、指示は、グラフィカル指示、音声指示、及び/又は触知指示を含む。例えば、図5BW~図5BXに示されるように、デバイス100は、測定セグメント5212の外観を変更して、更なる入力によって、測定セグメント5212をユーザインタフェース5006内の物理的空間5000の表現から除去させることを示す。別の実施例では、図5CA~図5CBに示されるように、デバイス100は測定セグメント5222の外観を変更して、更なる入力によって、測定セグメント5222をユーザインタフェース5006内の物理的空間5000の表現から除去させることを示す。更なる入力が前の仮想アノテーション(例えば、測定)を削除することの視覚的、聴覚的、及び/又は触覚フィードバックを提供することは、前の仮想アノテーションが偶発的に除去されないように入力を変更する機会を提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、指示は、アラートを表示するために使用されるユーザインタフェースの所定の部分(例えば、ユーザインタフェース内の指定されたアラートエリア、例えば、レチクル5010の上のユーザインタフェース5006内のエリア(例えば、図5CMでエラーメッセージ5248が表示されるエリアなど))に表示される視覚的指示である(1328)。アラートを表示するためのユーザインタフェースの指定されたエリア内に視覚的フィードバックを提供することは、ユーザがフィードバック/アラートを見て理解する可能性を増大させる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、指示は、物理的空間の表現における第1の仮想アノテーションの外観の変化である(1330)(例えば、ライン色、ラインスタイル、ライン厚、充填、不透明度などを変更する)。例えば、図5BW~図5BXに示されるように、測定セグメント5212の外観(例えば、ライン色及びラインスタイル)が変更される。いくつかの実施形態では、点配置のためのレチクルが第1の仮想アノテーションから離れるにつれて、第1の仮想アノテーションの外観の変化の大きさは増大する。第1の仮想アノテーションの外観を変更することによって視覚的フィードバックを提供することにより、同じ入力が続いた場合に、ユーザが第1の仮想アノテーションが除去されることを見て理解する可能性を増大させる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、第1の仮想アノテーションは、測定の記述(例えば、測定により測定された距離又はエリアのテキスト記述)を含む測定の表現であり、第1の仮想アノテーションの外観の変化は、測定の表現の少なくとも一部分を維持しながら、測定の表現から記述を除去することを含む(1332)。例えば、図5BVに示されるように、測定セグメント5212に関連付けられたラベルは、レチクル5010が測定セグメント5212から離れて移動されるときに除去される。測定を表すライン又は他の形状を維持しながら、測定からラベル又は他の記述を除去することによって視覚的フィードバックを提供することは、同じ入力が続いた場合に測定が除去されることをユーザが見て理解するであろう可能性を増加させる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間の表現における第1の仮想アノテーションの外観の変化を表示した後、電子デバイスは、第1の仮想アノテーションから閾値距離(例えば、第2の仮想アノテーションが作成されたときにディスプレイから第1の仮想アノテーションを除去するか否かを判定するために使用される同一の閾値距離)以内の位置での入力を検出し(例えば第1の仮想アノテーション上、又はその近くの点配置のためにレチクルをホバリングする)、及び第1の仮想アノテーションから閾値距離以内の位置で入力を検出したことに応答して、第1の仮想アノテーションの外観の変化を逆転させる(例えば、第2の仮想アノテーションが第1の仮想アノテーションから閾値距離以内の位置にある部分を含む場合、第1の仮想アノテーションは、第2の仮想アノテーションが作成されるときに除去されないことを示すために)(1334)。例えば、図5CA~図5CBからの測定セグメント5222の外観の変化は、フォーカス点5012が測定セグメント5222上の特定の点にスナップする際図5CCにおいて逆転される。前の仮想アノテーションが除去されることを示す視覚的フィードバックを提供した後、及び前の仮想アノテーションに近づけて、又はその上に入力を作成することによって、ユーザがそれぞれの入力を変更した後、前の仮想アノテーションが維持されることを示すフィードバックを提供することは、ユーザの入力を案内するのに役立つ。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
図13A~図13Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、1200、及び1400)に関して本明細書に記載される他のプロセスの詳細はまた、図13A~図13Cに関して上記した方法1300にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法1300を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、1200及び1400)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図14A~図14Dは、いくつかの実施形態に係る、物理的空間内のオブジェクトが、拡張現実環境内の対応する表現が追跡され得るオブジェクトとして識別されたかどうかを示す方法1400を示すフロー図である。方法1400は、1つ以上の入力デバイス(例えば、タッチスクリーン112(図1A)、タッチパッド355(図3A)、又は入力デバイス(単数又は複数)302(図3B))、又はディスプレイとは別個の物理的ボタン、1つ以上の表示デバイス(例えば、タッチスクリーン112(図1A)、ディスプレイ340(図3A)又はディスプレイ生成構成要素(単数又は複数)304(図3B))、及び1つ以上のカメラ(例えば、光学センサ(単数又は複数)164(図1A)又はカメラ(単数又は複数)305(図3B))、任意選択的に、入力デバイスのタッチ感知面との接触の強度を検出するための1つ以上のセンサ(例えば、接触強度センサ(単数又は複数)165、図1A)、及び任意選択的に1つ以上の触知出力生成器(例えば、触知出力生成器(単数又は複数)163(図1A)又は触知出力生成器(単数又は複数)357(図3A))を含む電子デバイス(例えばポータブル多機能デバイス100(図1A)、デバイス300(図3A)又はコンピュータシステム301(図3B)で実行される。方法1400の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
以下に説明するように、方法1400は、拡張現実環境内に仮想アノテーション(例えば、仮想測定)を配置する間、視覚的フィードバックを提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
電子デバイスは、1つ以上の表示デバイスを介して、アノテーション配置ユーザインタフェースを表示する(1402)。アノテーション配置ユーザインタフェースは、物理的空間の表現(例えば、1つ以上のカメラのうちの少なくとも1つのカメラの視野内にある物理的空間の一部分のライブプレビュー)と、アノテーション配置入力(例えば、ドロップポイントボタン上のタップ又は配置ユーザインタフェース要素上のタップ)を検出したことに応答して、仮想アノテーションが物理的空間の表現内に配置される位置を示す配置ユーザインタフェース要素(例えば、配置インジケータ)とを含む(1404)。例えば、図5CNに示されるように、デバイス100は、物理的空間5000の表現と、アノテーション配置入力を検出したことに応答して(例えば、測定追加ボタン5014上のタップ、又はいくつかの実施形態では、レチクル5010及び/又はフォーカス点5012上のタップ)、仮想アノテーションが物理的空間5000の表現内に配置される位置を示すフォーカス点5012と合わせた、レチクル5010の形態の配置ユーザインタフェース要素とを含むユーザインタフェース5006を表示する。
アノテーション配置ユーザインタフェースを表示している間に、電子デバイスは、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出する(1406)。1つ以上のカメラのうちの少なくとも1つの移動は、配置ユーザインタフェース要素が、物理的空間の第1の部分に対応する物理的空間の表現内の位置に表示されている間に開始する(1408)。いくつかの実施形態では、移動は、横方向に移動する(例えば、右、左、上、下を回転させる)、回転する(例えば、右、左、上、下に回転する)、又は前後に移動することのうちの1つ以上を含む。
物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出したことに応答して(1410)、電子デバイスは、配置ユーザインタフェース要素を、物理的空間の第1の部分とは異なる、物理的空間の第2の部分に対応する物理的空間の表現内の位置に移動させ、また、電子デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る、物理的空間の第2の部分内のオブジェクトを識別することができないという判定に従うことを含め、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動に従って、アノテーション配置ユーザインタフェースの外観を更新し、配置ユーザインタフェース要素の少なくとも一部分の表示を中止し(1412)、及び、デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る、物理的空間の第2の部分内のオブジェクトを識別したという判定に従って、配置ユーザインタフェース要素の表示を維持する(1414)。例えば、図5CNに示されるように、レチクル5010及びフォーカス点5012は、デバイス100が物理的空間5000内のオブジェクト(テーブル5200)を識別したという判定に従って表示されることで、測定をユーザインタフェース5006内のテーブル5200の表現に追加することができる。図5COでは、デバイス100が物理的空間5000内のそのようなオブジェクトを識別できないという判定に従って、レチクル5010及びフォーカス点5012は表示されない。電子デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る、物理的空間内のオブジェクトを識別することができないという視覚的フィードバックを提供することは(例えば配置ユーザインタフェース要素の少なくとも一部分の表示を中止することによる)、そのようなオブジェクトが識別されるまで視野を変更する必要があることをユーザに知らせる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出したことに応答して(1416)、配置ユーザインタフェース要素が、1つ以上のカメラのうちの1つから離れた第1の距離である、物理的空間内の第1のオブジェクトに対応する物理的空間の表現内の位置にあるという判定に従って、電子デバイスは、配置ユーザインタフェース要素を第1のサイズで表示し、及び配置ユーザインタフェース要素が、1つ以上のカメラのうちの1つから離れた第2の距離である、物理的世界内の第2のオブジェクトに対応する、物理的空間の表現内の位置にあるという判定に従って、電子デバイスは、配置ユーザインタフェース要素を第2のサイズで表示する。いくつかの実施形態では、第1の距離は第2の距離さより大きく、第1のサイズは第2のサイズより小さい。例えば、図5BO及び図5BTに示されるように、レチクル5010及びフォーカス点5012は、(図5BTに示されるように)物理的空間5000内のより近い点に対応する、ライブプレビュー内の位置の上に位置決めされる場合よりも、(図5BOに示されるように)物理的空間5000内のより遠い点に対応する、ライブプレビュー内の位置の上に位置決めされたとき、より小さいそれぞれのサイズで表示される。別の例では、図5CG及び図5CJに示されるように、レチクル5010及びフォーカス点5012は、(図5CJに示されるように)物理的空間5000内のより近い点に対応するライブプレビュー内の位置の上に位置決めされる場合よりも、(図5CGに示されるように)物理的空間5000内のより通遠い点に対応するライブプレビュー内の位置の上に位置決めされたとき、より小さいそれぞれのサイズで表示される。配置ユーザインタフェース要素が、カメラからのライブビュー内の所与のオブジェクトの位置にあるとき、電子デバイスは、カメラから物理的空間内の所与のオブジェクトまでの距離に基づいて、配置ユーザインタフェース要素のサイズを調整する。このような視覚的フィードバックは、物理的空間内のオブジェクトの相対位置についてユーザに情報を提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間の表現における配置ユーザインタフェース要素の第1のサイズは、物理的空間内の第2のオブジェクトに対する物理的空間の表現における配置ユーザインタフェースの第2のサイズよりも、物理的空間内の第1のオブジェクトに対してより大きくなる(1418)(例えば、図5BTを参照して本明細書に記載されるように)。いくつかの実施形態では、配置ユーザインタフェース要素のサイズは、オブジェクトがカメラから遠く離れているときに小さすぎること(又はオブジェクトがカメラに近過ぎるときに大きすぎる)ことを回避するために、カメラから物理的空間内の所与のオブジェクトまでの距離に基づいているが、いくつかの実施形態でのサイズは、距離と正確に増減しない。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、配置ユーザインタフェース要素は、第1の部分(例えば、図5CCのレチクル5010などのレチクル)及び第2の部分(例えば、図5CCのフォーカス点5012などのドット、又は他のマーカー)を含む(1420)。いくつかの実施形態では、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出したことに応答して、配置ユーザインタフェース要素が、物理的空間内の既定のタイプの特徴(例えば、配置ユーザインタフェース要素の第2の部分がスナップされ得る角、ライン、又は他の特徴)に対応する物理的空間の表現内の位置にあるという判定に従って、電子デバイスが配置ユーザインタフェース要素の外観を更新することで配置ユーザインタフェース要素の第2の部分が配置ユーザインタフェース要素の第1の部分に対して拡大され、また配置ユーザインタフェース要素が、物理的空間内の既定のタイプの特徴(例えば、配置ユーザインタフェース要素の第2の部分がスナップされ得る角、ライン、又は他の特徴)に対応しない物理的空間の表現内の位置にあるという判定に従って、電子デバイスは、配置ユーザインタフェース要素の第2の部分を配置ユーザインタフェース要素の第1の部分に対して拡大せずに、配置ユーザインタフェース要素の表示を維持する。例えば、図5CC及び5CEに示されるように、フォーカス点がアンカー点(以前に追加された測定の上の対象点又は物理的オブジェクトの表現上の対象点など)にスナップされるとき、フォーカス点5012はレチクル5010に対して(及びアンカー点にスナップされていないときのフォーカス点5012のサイズに対して)拡大される。仮想アノテーション点がスナップされ得る特徴の上にあるとき、配置ユーザインタフェース要素の外観を変更することで(例えば、配置ユーザインタフェース要素の残りの部分に対して、配置ドットのサイズを拡大することによって)、その特徴で仮想アノテーション点を追加することを容易にする。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
配置ユーザインタフェース要素が、第1の部分(例えばレチクル)と、第2の部分(例えばドット又は他のマーカー)とを含むいくつかの実施形態では、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出したことに応答して、配置ユーザインタフェース要素が、物理的空間内の既定のタイプの特徴(例えば、配置ユーザインタフェース要素の第2の部分がスナップされ得る角、ライン、又は他の特徴)に対応する物理的空間の表現内の位置にあるという判定に従って、電子デバイスは、配置ユーザインタフェース要素の外観を更新することで配置ユーザインタフェース要素の第2の部分が配置ユーザインタフェース要素の第1の部分に対してシフトされ、また、配置ユーザインタフェース要素が、物理的空間内の既定のタイプの特徴(例えば、配置ユーザインタフェース要素の第2の部分がスナップされ得る角、ライン、又は他の特徴)に対応しない物理的空間の表現内の位置にあるという判定に従って、電子デバイスは、配置ユーザインタフェース要素の第2の部分を配置ユーザインタフェース要素の第1の部分に対してシフトせずに、配置ユーザインタフェース要素の表示を維持する(1422)。例えば、図5CC及び図5CEに示されるように、フォーカス点がアンカー点(以前に追加された測定の対象点又は物理的オブジェクトの表現上の対象点など)にスナップされるとき、フォーカス点5012は、レチクル5010に対して(かつ、アンカー点にスナップされていないときはレチクル5010内のフォーカス点5012の位置に対して)シフトされる。仮想アノテーション点がスナップされ得る特徴の上にあるとき、配置ユーザインタフェース要素の外観を変更することは(例えば配置ドットの位置を配置ユーザインタフェース要素の残りの部分に対してシフトすることで、配置ドットが特徴にスナップすることによって)、その特徴において仮想アノテーション点を追加することを容易にする。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間の第2の部分内のオブジェクトを識別できないという判定に従って、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出したことに応答して、電子デバイスは、電子デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間の第2の部分内のオブジェクトを識別することができないことを示す情報を有するアラートを(例えば、アノテーション配置ユーザインタフェースとは別個に、又はその上に重ねて)表示する(1424)。例えば、図5COに示されるように、テーブル5200から更に離れるデバイス100の移動に応答して、デバイス100は、デバイス100が、ユーザインタフェース5006内の物理的空間5000の表現内の対応するオブジェクトが仮想アノテーション(例えば、仮想測定)にリンクされ得る物理的空間5000内のオブジェクトを識別することができないことを示すために、エラーメッセージ5250を表示する。電子デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間内のオブジェクトを識別できないというアラートを表示することは、そのようなオブジェクトが識別されるまで、(電子デバイスを移動させることによって)視野を変更する必要があることをユーザに知らせる。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間の第2の部分内のオブジェクトを識別できないという判定に従って、物理的空間に対する1つ以上のカメラのうちの少なくとも1つの移動を検出したことに応答して、デバイスが、電子デバイスは、電子デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間の第2の部分内のオブジェクトを識別できない理由を示す情報を有するアラートを(例えば、配置ユーザインタフェースとは別個に、又は上に重ねて)表示する(1426)。いくつかの実施形態では、アラートは、物理的空間内のオブジェクトを識別する電子デバイスの能力を改善するために講じることができるステップを説明する情報を含む。例えば、図5COに示されるように、テーブル5200から更に離れるデバイス100の移動に応答して、デバイス100をカメラの視野内のオブジェクトにより近づくように移動させる必要があるため、デバイス100は、デバイス100がオブジェクトを識別できないことを示すエラーメッセージ5250を表示する。(1)電子デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間内のオブジェクトを識別できないことを説明する、及び/又は(2)視野をどのように変更する必要があるかをユーザに知らせる(例えば、電子デバイスを移動させることによって)アラートを表示することは、このような状況を修正するのに役立つ。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、デバイスが、物理的空間の表現内の対応するオブジェクトが仮想アノテーションにリンクされ得る物理的空間の第2の部分内のオブジェクトを識別できない理由を示す情報は、より多くの光が必要であるとの指示(例えば図5Dに示されるように)、1つ以上のカメラ(又は電子デバイス)のうちの少なくとも1つが速く移動しすぎていることの指示、物理的空間内の表面を位置付けるために、1つ以上のカメラ(又は電子デバイス)のうちの少なくとも1つを移動させる必要があることの指示(例えば、図5Eに示されるように)、1つ以上のカメラ(又は電子デバイス)の少なくとも1つが、物理的空間内のオブジェクトから更に離れて移動される必要があることの指示、及び1つ以上のカメラ(又は電子デバイス)のうちの少なくとも1つを物理的空間内のオブジェクトにより近く移動させる必要があることの指示(例えば、図5COに示されるように)のうちの1つ以上を含む(1428)。
いくつかの実施形態では、配置ユーザインタフェース要素を、物理的空間の第2の部分に対応する物理的空間の表現の上の位置に表示している間に、電子デバイスは、配置入力(例えば、配置ユーザインタフェース要素上のタップジェスチャ、又はアノテーション配置ユーザインタフェース内の仮想アノテーションの配置をトリガするボタン)を検出する(1430)。いくつかの実施形態では、配置入力を検出したことに応答して、電子デバイスは、配置ユーザインタフェース要素に対応する位置に物理的空間の表現内の仮想アノテーションの少なくとも一部分を配置する。いくつかの実施形態では、アノテーションの一部分の配置は、測定において第1の点をドロップすることを含む。いくつかの実施形態では、アノテーションの一部分の配置は、測定において第2又は第3の点をドロップすることを含む。いくつかの実施形態では、アノテーションの一部分の配置は、物理的空間の表現における測定の配置を完了することを含む。例えば、図5BP~図5BQに示されるように、レチクル5010及びフォーカス点5012上のタッチ入力5204(例えば、タップジェスチャ)は、フォーカス点5012に対応する位置でのユーザインタフェース5006内の物理的空間5000の表現における測定点5206の配置をトリガする。配置入力に応答して、配置ユーザインタフェース要素の表示された位置に仮想アノテーション点を配置することにより、物理的空間の表現内の正しい位置に仮想アノテーション点を位置決めすることが容易になる。改善された視覚的フィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、配置ユーザインタフェース要素を、物理的空間の第2の部分に対応する物理的空間の表現の上の位置に表示している間に、電子デバイスは、配置ユーザインタフェース要素に対応する位置での入力(例えば、タッチ感知ディスプレイを備える電子デバイスの場合、配置ユーザインタフェース要素上のタップジェスチャ)を検出する(1432)。いくつかの実施形態では、配置ユーザインタフェース要素に対応する位置で入力を検出したことに応答して、電子デバイスは、異なるユーザインタフェース要素のアクティブ化が(例えば、タッチ感知ディスプレイの場合、異なるユーザインタフェース要素上のタップジェスチャによる)、配置ユーザインタフェース要素に対応する位置で物理的空間の表現内に仮想アノテーションの少なくとも一部分を配置させることを示すアノテーション配置ユーザインタフェース内の異なるユーザインタフェース要素に隣接して(又はその付近で)グラフィック指示を表示する(例えば、電子デバイスは、ボタンをタップして点をドロップする命令を表示し、この場合ボタンは、配置ユーザインタフェース要素とは異なり、配置ユーザインタフェース要素から離れて位置する)。例えば、図5BRに示されるようにレチクル5010及びフォーカス点5012上のタッチ入力5204(例えばタップジェスチャ)は、測定追加ボタン5014付近での命令メッセージ5208の表示をもたらし、測定追加ボタン5014のアクティブ化が、フォーカス点5012に対応する位置でユーザインタフェース5006内の物理的空間5000の表現内に測定点を配置させることを示す。いくつかの実施形態では、ユーザが、配置ユーザインタフェース要素をタップする(むしろ「+」、「追加」又は同様の要素などの異なる要素上でタップする)ことによって仮想アノテーション点を作成しようとする場合、電子デバイスは仮想アノテーション点を作成するために、(配置ユーザインタフェース要素上でタップする代わりに)この要素がタップする正しい要素であることを示すメッセージを、「+」、「追加」又は類似の要素の隣に表示する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
図14A~図14Dにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、1200及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図14A~図14Dに関して上記した方法1400にも、類似の様式で適用可能であることに留意されたい。例えば、入力、ユーザインタフェース要素(例えば、測定点、測定セグメント、仮想アノテーション、物理的空間又は視野の表現、アフォーダンス、アラート、インジケータ、ラベル、アンカー点、及び/又はレチクル及びドットなどのユーザインタフェース要素の配置)、触知出力、及び方法1400を参照して上述した強度閾値は、任意選択的に、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、1200及び1300)を参照して本明細書に記載される入力、ユーザインタフェース要素、触知出力、及び強度閾値のうちの1つ以上を任意選択的に有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図6A~図6C、図7A~図7E、図8A~図8C、図9A~図9B、図10A~図10B、図11A~図11B、図12A~図12C、図13A~図13C、図14A~図14Dを参照して上述された動作は、任意選択的に、図1A~図1Bに示される構成要素によって実施される。例えば、検出動作606、614、706、708、812、906、1006、1106、1206、1334、1430及び1432、並びに受信動作1304及び1310は、任意選択的に、イベントソータ170、イベント認識部180、及びイベント処理部190により実行される。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1の対応するイベント認識部180は、そのイベント情報をそれぞれのイベント定義186と比較し、タッチ感知面上の第1の位置における第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するかどうかを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられたイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176又はオブジェクト更新部177を、任意選択で使用するか又は呼び出す。いくつかの実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A~図1Bに記される構成要素に基づいてどのように実施されるかは明らかであろう。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に適した様々な変更で本発明及び様々な記載された実施形態を最良の形で使用することを有効化するために、これらの実施形態を選択し記載した。