移动设备上的三维环境中的导航的制作方法

文档序号:21817135发布日期:2020-08-11 21:28阅读:114来源:国知局
移动设备上的三维环境中的导航的制作方法

分案说明

本申请属于申请日为2009年8月24日的中国发明专利申请201310095018.x的分案申请,而该申请进一步属于申请日为2009年8月24日的中国发明专利申请200980141356.4的分案申请。

本发明一般地涉及三维环境中的导航。



背景技术:

存在通过三维环境进行导航以显示三维数据的系统。所述三维环境包括定义显示什么三维数据的虚拟相机。所述虚拟相机具有根据其位置和方位的视角(perspective)。通过改变所述虚拟相机的视角,用户能够导航通过三维环境。

诸如移动电话、个人数字助理(pda)、便携式导航设备(pnd)和手持游戏机的移动设备被配备有改进的计算能力。许多移动设备能够访问一个或多个网络,诸如互联网。而且,诸如可从苹果公司获得的iphone设备的一些移动设备接受来自gps传感器、加速计和触摸屏的输入。改进的计算能力使得可能在移动设备上运行各种各样的软件应用。尽管计算能力有所改进,但是许多手持移动设备的显示很小-通常宽度不足4英寸。小的显示使得用户难以在移动设备上导航通过三维环境。

需要对移动设备上的三维环境中的导航进行改进的方法和系统。



技术实现要素:

这里所公开的实施例涉及用于在移动设备上的三维环境内进行导航的方法和系统。一些实施例涉及使用移动设备的方位在三维环境中进行的导航。一些实施例涉及用于移动移动设备上的虚拟相机的用户界面手势。一些实施例涉及用于移动移动设备上的虚拟相机的用户界面手势,诸如挤压(pinching)、旋转和双击放大。一些实施例涉及移动设备上的三维环境中的移位(panning)。最后,一些实施例涉及移动设备上的三维环境中的锚定导航。

以下参考附图对本发明的进一步实施例、特征和优势以及本发明各个实施例的结构和操作进行详细描述。

附图说明

结合于此形成说明书一部分的附图图示了本发明,并且连同描述一起用于进一步解释本发明的原理并且使得本领域技术人员能够制造和使用本发明。

图1是图示导航通过三维环境的移动设备的示图。

图2是图示导航通过三维环境的虚拟相机的示图。

图3是图示接受用户界面手势以导航通过三维环境的系统的示图。

图4是图示用于角度跳跃导航的方法的流程图。

图5是图示移动设备上的角度跳跃导航的示图。

图6a-b是图示根据视图上所选择的位置确定目标位置的示图。

图7是图示角度跳跃轨线的示图。

图8是图示用于锚定环视(look-around)导航的方法的流程图。

图9a-b是图示移动设备上的锚定环视导航的示图。

图10是图示用于锚定盘旋(helicopter)导航的方法的流程图。

图11a-b是图示移动设备上的锚定盘旋导航的示图。

图12是图示用于在移动设备上的三维环境中进行环视的两手指手势的示图。

图13是图示用于基于移动设备的方位对虚拟相机进行导航的方法的流程图。

图14a-c是图示基于移动设备的方位对虚拟相机进行导航的示图。

图15是图示用于使用挤压动量对虚拟相机进行导航的方法的流程图。

图16a-c是图示使用挤压动量在移动设备上导航虚拟相机通过三维环境的示图。

图17是图示用于在移动设备上进行移位的方法的流程图。

图18a-b是图示在移动设备上移位通过三维环境的示图。

图19a-c是图示可以在移动设备上的导航中使用的不同移位模式的示图。

元素在其中第一次出现的附图通常由相应附图标记中最左侧的一个或多个数字所指示。在附图中,相同的附图标记可以指示相同或功能类似的元素。

具体实施方式

本发明的实施例提供了移动设备上的三维环境中的导航。在以下被称作“一个实施例”、“实施例”、“示例性实施例”等的实施例的详细描述中,指出所描述的实施例可以包括特定特征、结构或特性,但是并非每个实施例都必然包括所述特定特征、结构或特性。而且,这样的短语不是必然指代同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为无论是否明确描述,结合其它实施例实现这样的特征、结构或特性处于本领域技术人员的知识范围之内。

这里的详细描述被划分为多个部分。第一部分提供了在移动设备上导航通过三维环境的介绍。第二部分描述了接受用户界面手势以在移动设备上的三维环境中进行导航的系统。接下来的若干部分更为详细地描述了所述用户界面手势。第三部分描述了角度放大的用户界面手势。第四部分描述了两种锚定导航手势。第五部分描述了双手指环视手势。第六部分描述了加速计导航。第七部分描述了俯仰(pitch)动量和两手指触摸以及旋转手势。最后,第八部分描述了移动设备上的三维环境中的移位。

介绍

该部分提供了移动设备上的三维环境中的导航的概述。图1是图示能够导航通过三维环境的移动设备100的示图。在实施例中,移动设备100可以是pda、移动电话、手持游戏机或者本领域技术人员已知的其它手持移动设备。在一个示例中,移动设备100可以为能够从苹果公司获得的iphone设备。在另一个示例中,移动设备100可以是运行能够从google公司获得的android平台的设备。在其它另外的实施例中,移动设备100可以为平板电脑、膝上电脑或者大于手持移动设备但是仍然便于用户携带的其它移动设备。这些示例是说明性的而并非意在对本发明进行限制。

移动设备100可以具有接受来自用户的触摸输入的触摸屏。用户可以利用其手指、笔或者本领域技术人员已知的其它手段来触摸所述屏幕。移动设备100还可以具有加速计,其检测移动设备何时加速或检测移动设备100相对于重力的方位。应当注意的是,其它设备可以是用户确定移动设备100的方位,并且本发明并非意在被限制于加速计。可以使用另外的一个或多个加速计。此外,移动设备100可以具有位置接收器,诸如gps接收器,并且可以被连接到诸如互联网的一个或多个网络。

移动设备100具有视图102。如之前所提到的,移动设备102可以在用户触摸视图102时接受触摸输入。此外,视图102可以向用户输出图像。在一个示例中,移动设备100可以呈现三维环境并且在视图102中从虚拟相机的视角向用户显示所述三维环境。

移动设备100使得用户能够将虚拟相机导航通过三维环境。在一个示例中,所述三维环境可以包括三维模型,诸如地球的三维模型。地球的三维模型可以包括映射到三维地形的卫星成像纹理。地球的三维模型还可以包括建筑物和其它兴趣点的模型。该示例仅为说明性的而并非意在对本发明进行限制。

响应于用户输入,移动设备100可以改变虚拟相机的视角。基于虚拟相机的新视角,移动设备100可以向视图102中呈现新图像。以下详细描述改变虚拟相机的视角并且导致新图像的各种用户界面手势。

图2示出了图示三维环境中的虚拟相机的示图200。示图200包括虚拟相机202。虚拟相机202被指引以观看三维地形210。三维地形210可以是诸如地球三维模型的较大三维模型的一部分。

如之前所提到的,用户输入可以使得诸如图1中的移动设备100的移动设备将虚拟相机202移动到新的位置。此外,用户输入可以使得虚拟相机202改变方位,诸如俯仰(pitch)、偏转(yaw)或滚转(roll)。

以这种方式,移动设备上的用户界面手势使得虚拟相机在移动设备上导航通过三维环境。以下详细描述各种系统组件以及用户界面手势的细节。

系统

该部分描述响应于用户界面手势在移动设备上导航虚拟相机通过三维环境的系统。图3是图示接受用于在移动设备上的三维环境中进行导航的用户界面手势的系统300的示图。

系统300包括具有用户交互模块310和呈现器模块322的客户端302。用户交互模块310包括运动模型314。通常,客户端302如下操作。用户交互模块310接收与用户希望观看的位置相关的用户输入,并且通过运动模型314构建定义虚拟相机的视图规范。呈现器模块322使用所述视图规范来决定绘制什么数据并绘制所述数据。如果呈现器模块322需要绘制系统300所没有的数据,则系统300使用网络接口350跨诸如互联网的一个或多个网络向服务器发送对额外数据的请求。

运动模型314构建视图规范。所述视图规范定义虚拟相机在三维空间内的已知为平截头体的可视体积,以及所述平截头体在三维环境中的位置和方位。在一个实施例中,所述平截头体为斜截棱锥的形状。所述平截头体具有能够根据观看环境而变化的最小和最大观看距离。因此,改变所述视图规范改变了对虚拟相机的可视体积所挑选的地理数据。所挑选的地理数据由呈现器模块322绘制。

所述视图规范可以指定虚拟相机的三个主要参数集合:相机三角架、相机镜头和相机聚焦性能。相机三角架参数集合指定如下:虚拟相机位置(x,y,z坐标),虚拟相机相对于缺省方位进行定向的方式,诸如航向角(例如,北?,南?,其间?);俯仰(例如,水平?,下?,上?,其间?);偏转和滚转(例如,水平?,顺时针?,逆时针?,其间?)。镜头参数集合指定如下:水平视界(例如,远摄照片?,正常人眼-大约55度?,或者广角?);以及垂直视界(例如,远摄照片?,正常人眼-大约55度?,或者广角?)。聚焦参数集合指定如下:到近裁剪面的距离(例如,虚拟相机能够看到距“镜头”多近,比那更近的对象不被绘制);以及到远裁剪面的距离(例如,虚拟相机能够看到距镜头多远,比那更远的对象不被绘制)。如这里所使用的,“移动虚拟相机”包括推拉(zooming)所述虚拟相机以及平移所述虚拟相机。

为了构建视图规范,用户交互模块310接收用户输入。客户端302具有各种用于接收输入的机制。例如,客户端302可以使用传感器接收输入,所述传感器包括触摸接收器340、加速计342和位置模块344。现在将依次对每种传感器进行描述。

触摸接收器340可以是接受来自触摸屏的输入的任意类型的触摸接收器。触摸接收器340可以接收诸如图1中的视图102的视图上的触摸输入。所接收的触摸数据可以包括屏幕上通过x和y坐标所定义的用户触摸位置。用户可以利用手指、笔或其它物体触碰屏幕。例如,如果用户选择了屏幕上的多个位置,则触摸接收器340能够同时接收多个触摸。所述屏幕可以使用本领域已知的任意技术来检测触摸,包括电阻、电容、红外、表面声波、应变仪、光学成像、声音脉冲识别、受抑全内反射和弥漫激光成像技术,但是不局限于此。

加速计342可以是本领域技术人员已知的任意类型的加速计。加速计342能够在移动设备移动时进行检测。加速计342还能够检测移动设备相对于重力的方位。

位置接收器344检测移动设备的位置。位置接收器344可以例如从gps接收器检测移动设备的位置。gps接收器使用来自gps卫星的信号确定移动设备的位置。在其它示例中,位置接收器344可以例如通过收集来自附近小区塔台和wi-fi热点的信息来检测移动设备的位置。位置接收器可以一起使用来自小区塔台、wi-fi热点和gps卫星的信息来快速且准确地确定移动设备的位置。

如之前所提到的,用户交互模块310包括改变如由视图规范所定义的虚拟相机的视角的各种模块。用户交互模块310包括动量模块316、角度跳跃模块312、导航模块318、锚模块320、移位模块348和目标模块346。以下对这些模块中的每一个进行描述。

用户交互模块310中的模块可以根据目标位置改变虚拟相机的视角。目标位置可以由目标模块346来确定。在一个实施例中,目标模块346可以延伸来自虚拟相机焦点的射线。目标位置可以是所述射线与三维模型的交点,所述三维模型诸如地球的三维模型。所述射线可以根据用户在视图上所选择的位置进行延伸。可替换地,所述射线可以延伸通过虚拟相机的观看平截头体的中心。参考图6a-b更详细地描述目标模块346的操作。

使用目标模块346的一个模块是角度跳跃模块312。响应于用户在三维环境中对特征的选择,角度跳跃模块312将虚拟相机向所述特征进行移动。在一个实施例中,触摸接收器340接收指示用户已经选择了一个视图位置的用户输入。在一个示例中,用户可以在视图上选择一个位置并且通过在该位置上进行双击来发起角度跳跃。基于用户所选择的位置,目标模块346确定目标位置。使用所述目标位置,角度跳跃模块312移动虚拟相机。角度跳跃模块312可以将虚拟相机向目标位置进行移动,并且可以将虚拟相机向目标位置进行旋转。随着虚拟相机的移动,角度跳跃模块312可以改变虚拟相机的滚转以仿真飞机的横倾斜。角度跳跃模块312可以对虚拟相机进行定向以使得目标位置看上去大约处于视图的中心。为了对虚拟相机进行定向,角度跳跃模块312可以改变虚拟相机的俯仰或偏转值。以这种方式,用户能够利用一只手在屏幕上进行双击并容易地将虚拟相机向目标进行导航。此外,虚拟相机向其新的位置的平滑转移可以为用户产生舒适的效果。

锚模块320响应于其它用户界面手势移动虚拟相机。在一个实施例中,锚模块320在触摸接收器340接收到一个手指静止而另一手指移动的两手指触摸时被调用。静止和移动手指的相对初始位置可以激活两种导航模式之一-锚定环视模式或锚定盘旋模式。在一个实施例中,当第一静止手指的初始位置低于第二手指的初始位置时激活锚定环视模式。当第一静止手指的初始位置高于第二手指的初始位置时激活锚定盘旋模式。锚定环视模式可以由环视模块326来执行,而锚定盘旋模式可以由盘旋模块324来执行。

环视模块326根据第二手指的移动改变虚拟相机的方位。触摸接收器340可以接收第二手指运动的方向并且将所述方向发送到环视模块326。基于所述方向,环视模块326可以沿不同轴对虚拟相机进行旋转。环视模块326可以在手指向移动设备的左或右运动时改变虚拟相机的偏转。类似地,环视模块326可以在手指向移动设备的顶部或底部运动时改变虚拟相机的俯仰。参考图8和9a-b对环视模块326的操作进行更为详细的描述。在一个实施例中,环视模块326还可以响应于两个手指的移动来改变虚拟相机的方位。该实施例参考图12进行描述。

盘旋模块34在静止手指的位置最初低于运动手指时对虚拟相机进行移动。在一个实施例中,当触摸接收器340接收到静止手指低于运动手指的两手指触摸时,目标模块346可以确定目标位置。可以通过基于静止手指的位置延伸射线来确定所述目标位置。可替换地,可以延伸射线通过虚拟相机的观看平截头体的中心来确定所述目标位置。随后参考图6a-b更为详细地描述目标位置的确定。

触摸接收器340可以将运动手指的方向发送到盘旋模块324。基于所述运动手指的方向,盘旋模块324可以在不同方向移动虚拟相机,保持目标位置和虚拟相机位置之间的距离近似恒定。盘旋模块324可以允许距离的小的改变。例如,新的地形可能被流送到客户端,这使得距离有所改变。

盘旋模块324可以将射线从目标模块346所确定的目标位置向上延伸。当运动手指的方向朝向移动设备的顶部或底部时,盘旋模块324可以改变相对于射线的倾斜角度。改变所述倾斜角度可以将虚拟相机向上或向下移动。当运动手指的方向朝向移动设备的左侧或右侧时,盘旋模块324可以改变相对于射线的方位角度。改变方位角度可以在保持恒定高度的同时围绕目标位置移动虚拟相机。此外,当运动手指的方向在移动设备的两条轴线上都具有分量时,盘旋模块324可以改变倾斜和方位角度。以这种方式,盘旋模块324使得用户能够容易地围绕目标位置进行导航。如图16c所描述的,盘旋模块还可以在两个手指在移动设备的屏幕上旋转时移动虚拟相机。

在一个实施例中,盘旋模块324还可以改变目标位置和虚拟相机之间的距离。例如,虚拟相机可以移动到目标位置之中或者远离所述目标位置。例如,最初静止的手指的移动可以导致朝向或远离目标平移虚拟相机。

在一个实施例中,盘旋模块324可以在允许导航模块318基于移动设备相对于重力的方位改变倾斜角度的同时改变方位角度。盘旋模块324的操作参考图10和图11a-b更为详细地进行描述。

导航模块318根据从加速计342和位置接收器344所接收的方位和位置信息在三维环境中对虚拟相机进行定向和定位。导航模块318包括加速计导航模块330。在一个实施例中,加速计342接收移动设备相对于重力的方位。基于移动设备的方位,加速计导航模块330改变虚拟相机的位置或方位。基于移动设备的方位,加速计导航模块330可以改变虚拟相机的俯仰,使得虚拟相机向上或向下看。可替换地,加速计导航模块330可以改变虚拟相机相对于目标位置的倾斜,使得虚拟相机向上或向下移动。

位置接收器344可以接收移动设备的航向值。例如,位置接收器344可以接收移动设备所面对的主要方向(北、东、南、西)。基于所述航向值,导航模块318可以在移动设备的方向中对虚拟相机进行定向。而且,位置接收器344可以接收移动设备的位置值。例如,位置接收器344可以接收移动设备的纬度、经度和高度。基于移动设备的位置,导航模块318可以在三维环境中定位虚拟相机。所述三维环境可以包括地球的三维模型。以这种方式,导航模块318可以在虚拟地球中对虚拟相机进行定位和定向以对应于移动设备在真实地球中的位置和方位。导航模块318可以连续更新虚拟相机的位置和方位以追踪所述移动设备。导航模块318的操作参考图13和图14a-b更为详细地进行描述。

角度跳跃模块312、动量模块316、加速计导航模块330、环视模块326和盘旋模块324中的每一个接受用户界面手势来移动虚拟相机。那些模块中的每一个可以与动量模块316进行协同以在用户界面手势完成之后继续虚拟相机的运动。动量模块316可以在手势完成之后使得所述运动逐渐减速。以这种方式,动量模块316仿真了具有动量的虚拟相机并且仿真了受到诸如空气阻力的阻力影响的虚拟相机。

如以上所描述的,锚模块316在触摸接收器340接收到一个手指静止而另一个运动的两手指触摸时对虚拟相机进行导航。根据进一步的特征,当两个手指都运动时,动量模块316也可以对虚拟相机进行导航。两个手指都运动的两手指触摸在这里有时被描述为手指彼此分开或接近的挤压手势。动量模块316可以确定所述手指相对于彼此的速度。基于手指速度,动量模块316可以确定虚拟相机的速度并且可以以所确定的速度移动虚拟相机。彼此接近地运动手指可以使得虚拟相机前进,而彼此远离地运动手指可以使得虚拟相机后退。动量模块316可以仿真空气阻力并且由此可以逐渐降低虚拟相机的速度。

可替换地,虚拟相机可以保持静止,并且诸如地球三维模型的三维模型可以根据手指速度进行移动。动量模块316可以以根据手指速度所确定的角速度旋转地球模型。动量模块316的操作参考图15和图16a-b更为详细地进行描述。

诸如地球三维模型的三维模型也可以由移位模块348进行旋转。在一个实施例中,触摸接收器340可以接收指示用户已经触摸了移动设备的视图上的第一位置并且向所述视图上的第二位置移动其手指(触摸和拖动手势)的用户输入。基于所述第一和第二位置,目标模块346可以确定三维环境中的第一和第二点。基于所述第一和第二点,移位模块348可以相对于虚拟相机移动所述三维模型。这种移动在此可以被称作“移位”。在一个示例中,移位模块348可以通过确定三维模型上的旋转轴并且围绕所述旋转轴旋转所述三维模型来移动所述三维模型。

在一个实施例中,移位模块348的操作可以根据虚拟相机的方位而改变。如之前所提到的,虚拟相机的方位可以根据移动设备相对于重力的方位来确定。在一个示例中,当虚拟相机面向地面时,用户可以以任何方向进行移位。然而,当虚拟相机面向地平线时,用户近可以向前或向后移位。相反,手指向左侧或右侧的移动会导致虚拟相机朝向左侧或右侧。移位模块348的操作参考图17、图18a-b以及图19a-c更为详细地进行描述。

系统300的每个组件都可以以硬件、软件、固件或者其任意组合来实现。

在以下部分中,更为详细地描述了角度跳跃模块312、目标模块346、锚模块320、动量模块316、导航模块318和移位模块348的操作。

角度跳跃

该部分参考图4-5、6a-b和7描述了用于角度跳跃导航的方法。角度跳跃导航使得用户能够容易且直观地在移动设备上的三维环境中进行导航。通常,响应于用户在一个位置上的双击,所述方法将虚拟相机向一个位置进行导航并且将虚拟相机转向该位置。

图4是图示用于角度跳跃导航的方法400的流程图。方法400以在步骤402接收指示用户已经在视图的一个位置上进行了双击的用户输入作为开始。步骤402在图5中进行图示。图5示出了图示移动设备上的角度跳跃导航的示图500。示图500示出了移动设备100具有视图102。用户在位置504进行双击。如方法400的其余步骤中所描述的,角度跳跃导航沿轨线502进行导航。

基于步骤402中所接收的敲击位置的位置,在步骤404确定目标位置。确定目标位置在图6a-b中图示。图6a示出了示图600,其图示了延伸屏幕射线以确定目标位置。示图600示出了具有焦点602的虚拟相机。所述虚拟相机具有焦距606和视口604。在视口604上,点610对应于用户在移动设备的视图上所选择的点。从焦点602,射线612延伸通过点610。射线612与三维模型616相交以确定目标位置614。以这种方式,基于由用户所选择(例如,所双击)的点确定目标位置614。

虽然对于用户而言很容易,但是利用手指双击视图可能是不精确的。移动设备趋于具有小的视图(例如,手持移动设备可能具有通常不大于4英寸的视图)。结果,手指触摸会占据相当一部分视图。当用户选择接近于地平线的位置时,屏幕射线可能近似与三维模型相切。宽手指的位置的微小变化可能导致目标位置的大变化。结果,角度跳跃导航可能是不稳定的。

为了应对潜在的不稳定性,如图6b所示,用户选择可以被滞阻(damp)。图6b示出了具有虚拟相机的示图650,所述虚拟相机具有焦点602、焦距610和视口604。用户在视图上选择接近水平的点。用户所选择的点对应于视口604上的点652。射线654从焦点602延伸通过视口604上的点652。射线654在点656与凹进的虚拟表面658相交。点656可以被投影到三维模型660上以确定目标位置。通过将屏幕射线与虚拟表面相交,用户的选择被滞阻,由此提高了稳定性。示图650示出了用于滞阻用户选择的一种方法,但是也可以使用本领域技术人员所知的其它方法。

返回参见图4,一旦确定了目标位置,虚拟相机就在步骤406向所述目标位置移动。随着虚拟相机向目标位置移动,所述虚拟相机在步骤408向目标位置进行旋转。步骤406和408在图7中进行图示。

图7示出了图示角度跳跃轨线的示图700。示图700示出了处于初始位置702的虚拟相机。虚拟相机沿轨线706移动。虚拟相机可以以初始的向前速度矢量作为开始。随着虚拟相机在轨线706上继续,虚拟相机向目标708旋转。向目标708旋转可以包括改变虚拟相机的俯仰或偏转。随着虚拟相机在轨线706上继续,虚拟相机可以放慢速度,最终静止在面向目标708的位置704。当虚拟相机静止时,目标708可以近似地出现在视图的中心。由于允许距离中心的小偏移量,所以视图的近似中心可以不是确切的中心。

随着虚拟相机沿着轨线706移动,虚拟相机可以滚转。所述滚转可以仿真类似飞行器的向终点进行翻转。虚拟相机可以以不进行滚转而开始轨线706。虚拟相机的滚转可以随着其沿轨线706移动而增加,并且可以在通过轨线706中途达到最大滚转量。接着,虚拟相机的滚转可以降低,当虚拟相机到达其最终位置704时返回零滚转。

以这种方式,角度跳跃导航使得用户能够在三维环境中容易地向目标位置进行导航。此外,通过基于双触摸手势确定目标位置,用户能够仅利用一只手就向所述位置进行导航。由于用户经常用一只手保持移动设备,而仅留出一只手空闲在三维环境中导航,所以这是很有用的。

锚定导航

利用一只空闲的手导航,若干种用户界面手势可以使用两个手指。该部分描述两种使用两个手指的用户界面手势-锚定环视和锚定盘旋。每个用户界面手势使得一个手指最初静止而另一个手指则进行移动。静止手指可以先于运动手指触摸屏幕。静止和运动手指的初始相对位置可以确定用户输入了锚定环视导航模式还是锚定盘旋导航模式。

图8是图示用于锚定环视导航的方法800的流程图。方法800通过在步骤802接收用于在移动设备的视图上进行两手指触摸的用户输入作为开始。两个手指之一进行运动,并且在步骤804接收第二手指的运动方向(例如,运动矢量)。两手指触摸在图9a中图示。

图9a示出了示图900。示图900示出了具有视图102的移动设备100。用户已经利用手指902和手指904触摸了视图102。手指902最初静止而手指904最初处于运动。手指902可以在手指904之前触摸屏幕至少特定时间量。作为手指902和904的相对位置的结果,用户输入了锚定环视导航模式。在一个实施例中,在最初运动的手指(手指904)高于最初静止的手指(手指902)时用户输入锚定导航模式。

返回参见图8,一旦接收到第二手指的移动,就根据第二手指的移动改变虚拟相机的方位。图9b中图示了如何改变虚拟相机的方位。

图9b示出了示图950,其图示了在三维环境中进行环视的虚拟相机。示图950示出了三维地形210和虚拟相机202。通过改变其俯仰,相机202可以如箭头952所示的向上或向下看。通过改变其偏转,相机202可以如箭头954所示的向左或向右看。

在图9a中,如箭头906和908所示,当用户向左侧或右侧移动手指904时,虚拟相机的偏转可以相应地改变为向左或向右看。类似地,当用户向上或向下移动手指904时,如箭头906和908所示,虚拟相机的俯仰可以相应地改变为向上或向下看。如箭头920所示,当用户斜着移动其手指时,虚拟相机的俯仰和偏转都会改变。俯仰和偏转可以根据沿移动设备的轴线的运动矢量的分量进行改变。以这种方式,用户可以通过移动手指来使得虚拟相机进行环视,从不同视角观看三维环境。

在可替换实施例中,虚拟相机可以基于用户输入向左和向右看,而基于移动设备的方位向上和向下看。移动设备相对于重力的方位可以从移动设备的加速计接收。虚拟相机的俯仰可以根据移动设备的方位而改变。以这种方式,用户能够通过移动设备转向向上和向下来向上和向下看。

在一个实施例中,可以基于第一、静止手指的位置来确定虚拟相机的轴线。在一个示例中,可以基于静止手指的位置来确定目标位置。所述轴线是连接虚拟相机和目标位置的线。在该实施例中,第二手指的移动使得虚拟相机绕所述轴线进行旋转。

如之前所提到的,在静止手指低于运动手指时用户输入锚定环视模式。然而,当静止手指高于运动手指时,用户可以输入锚定盘旋模式。锚定盘旋模式参考图10和11a-b进行描述。

图10是图示用于锚定盘旋导航的方法1000的流程图。方法1000通过在步骤1002接收用于在移动设备的视图上进行两手指触摸的用户输入作为开始。两个手指之一处于运动,并且在步骤1004接收第二手指的运动方向(例如,运动矢量)。两手指触摸在图11a中图示。

图11a示出了示图1100。示图1100示出了具有视图102的移动设备100。用户已经利用手指1102和1104触摸了视图102。手指1102最初静止而手指1104最初处于运动。用户可以在利用手指1104触摸视图之前利用手指1102触摸屏幕至少特定时间量。作为手指1102和1104的相对位置的结果,用户输入了锚定盘旋模式。如以上所提到的,在最初运动的手指(手指1104)低于最初静止的手指(手指1102)时用户可以输入锚定盘旋模式。

返回参见图10,在接收用户输入之后,在步骤1004确定目标位置。在一个实施例中,目标位置可以基于第一、静止的手指的位置来确定。如图6a中所描述的,目标位置可以通过延伸屏幕射线来确定。此外,如参考图6b所描述的,屏幕射线可以被滞阻。可替换地,可以通过将射线延伸通过虚拟相机观看平截头体的中心来确定目标位置。所述射线可以在目标位置与三维模型相交。这些示例是说明性的,并且可以使用本领域技术人员所知的确定目标位置的其它方法。

一旦确定了目标位置,相对于目标位置的倾斜或方位角值就在步骤1008根据第二手指的移动而改变。步骤1008在图11b中图示。

图11b示出了图示锚定盘旋导航的示图1150。示图1150示出了指向三维地形210的虚拟相机202。如步骤1006所描述的,延伸射线1160以确定目标1158。从目标1158,确定指向上方的矢量1162。相对于矢量1162,虚拟相机202具有倾斜角度1156和方位角角度1154。改变倾斜角度1156使得虚拟相机202向上或向下移动,改变方位角角度1154使得虚拟相机202以恒定高度围绕目标1158进行盘旋。在一个实施例中,改变倾斜角度1156和方位角角度1154并不改变虚拟相机202和目标1158之间的距离。以这种方式,改变倾斜角度1156和方位角角度1154在保持与目标1158等距离的同时围绕目标1158对虚拟相机进行导航。

在图11a中,如箭头1108和1106所示,当用户向左或向右移动手指1104时,方位角角度的改变使得虚拟相机202以恒定高度围绕目标1158进行盘旋。类似地,如箭头1110和1112所示,当用户向上或向下移动手指904时,倾斜角度可以改变使得虚拟相机相对于目标1158向上和向下移动。如箭头1116所示,当用户斜着移动其手指时,倾斜和方位角角度都会改变。倾斜和方位角值可以根据沿移动设备的轴线的运动矢量的分量而改变。以这种方式,用户可以通过移动手指而使得虚拟相机围绕目标位置移动,从不同视角观看目标位置。虚拟相机的方位也可以改变使得虚拟相机持续面对目标。

在一个示例中,用户可以向下并向右移动手指1104。在该示例中,相对于目标位置的倾斜和方位角值都可以响应于所述手指移动而改变。随着倾斜值的增加,虚拟相机向着目标位置的高度向下移动。与此同时,增加的方位角值使得虚拟相机围绕目标位置进行旋转。在虚拟相机移动时,所述虚拟相机可以保持朝向目标位置。以这种方式,用户能够容易地从不同视角观看三维环境中的特征。

在一个实施例中,虚拟相机和目标位置之间的距离也可以变化。例如,虚拟相机可以通过在改变倾斜或方位角值的同时将虚拟相机移动到目标之中而俯冲到所述目标中。而且,所述虚拟相机能够在改变倾斜或方位角值的同时移动远离所述目标。

在一个实施例中,向左或向右移动手指1104可以改变方位角角度,而倾斜角度则根据移动设备的方位来确定。移动设备相对于重力的方位可以从所述移动设备的加速计接收。基于所述移动设备的方位,确定倾斜角度。以这种方式,用户可以通过向上和向下移动所述移动设备来上下移动所述虚拟相机。

例如,保持移动设备并且观看显示的用户可以将所述设备相对于地面进行移动。随着设备移动为面朝地面,虚拟相机可以移动到目标之上并且向下面对目标。随着设备移动为与地面垂直,虚拟相机可以移动到目标的高度并且从水平视图观看目标。

双手指环视导航

如之前所提到的,用户可以通过移动一个手指并保持另一个手指静止而使得虚拟相机环视。该部分描述可以使得虚拟相机环视的另一种手势。该部分中所描述的手势包括触摸显示的两个手指。通常,两个手指以近似相同的距离在近似相同的方向移动,并且虚拟相机根据手指的运动而移动。

图12示出了示图1200,其图示了在移动设备上的三维环境中进行环视的两手指手势。示图1200示出了具有视图102的移动设备100。触摸视图102的是手指1202和1204。利用用户触摸视图102,用户如矢量1206和1208所示的在视图102上移动手指1202和1204。矢量1206和1208表示用户移动手指1202和1204的方向和距离。

矢量1206和1208可以近似处于相同方向。矢量1206和1208无需精确平行。可以在阈值范围内允许方向1206和1206之间的小角度。类似地,矢量1206和1208可以具有近似相同的长度。在阈值范围内允许矢量1206和1208的小长度差异。

基于用户移动手指1202和1204的方向和距离,虚拟相机的方位发生变化。手指1202和1204已经移动了略有不同的方向和距离,接着所述方向和距离值可以被组合以确定合计矢量。在一个示例中,矢量1206和1208的方向和距离值可以被平均以确定所述合计矢量。这里描述了矢量,但是可以使用任意类型的运动数据。

响应于手指1202和1204的移动,虚拟相机可以如图9b所示改变其方位。图9b示出了具有三维地形210和虚拟相机202的示图950。示图950示出了三维地形210和虚拟相机202。当手指移动的矢量是向移动设备上的左侧或右侧时,虚拟相机的偏转可以改变。改变虚拟相机的偏转使得该相机如箭头954所示向左或向右看。类似地,当手指移动的矢量是移动设备的上方或下方时,虚拟相机的俯仰会改变。改变虚拟相机的俯仰使得该相机如箭头956所示向上或向下看。

当用户斜着移动其手指时,虚拟相机的俯仰和偏转都会变化。俯仰和偏转可以根据沿移动设备的轴线的手指移动矢量的分量而变化。以这种方式,通过移动两个手指,用户能够使得虚拟相机环视,从不同角度观看三维环境。

在可替换实施例中,所述虚拟相机可以基于用户输入向左和向右看,而基于移动设备的方位向上和向下看。移动设备相对于重力的方位可以从移动设备的加速计接收。虚拟相机的俯仰可以根据移动设备的方位而变化。以这种方式,用户可以通过将移动设备向上和向下转向来上下看。移动设备的方位可以由加速计来确定。下一部分更为详细地对加速计导航进行描述。

加速计导航

该部分更为详细地描述了利用加速计对虚拟相机进行导航。图13是图示用于基于移动设备的方位对虚拟相机进行导航的方法1300的流程图。

方法1300以在步骤1302使能加速计导航作为开始。例如,加速计导航可以在用户在对加速计导航设置了缺省设置的情况下进行设置改变以对其开机或启动时被使能。在另一个示例中,输入诸如锚定导航或环视导航的导航模式可以使能加速计导航。而且,加速计导航可以在移动设备的方位变化超出阈值时被使能。这样,方位的微小变化就不会无意中改变虚拟相机的视角。而且,加速计导航可以在移动设备相对于重力的方位超出阈值时被使能。如果移动设备相对于重力的方位低于阈值,则所述方位可以处于“盲区(deadzone)”之中。

一旦加速计导航被使能,就在步骤1304确定移动设备的方位。在一个实施例中,加速计确定重力方向以及移动设备相对于重力的方位。基于移动设备的方位,在步骤1306改变虚拟相机的位置或方位。步骤1304和1306在图14a-c中图示。此外,加速计读数可以被滞阻。

图14a-c均示出了具有不同方位的移动设备。图14a示出了面对地面的移动设备1402的概况。假设相对于与移动设备1402的屏幕平面正交的矢量来定义移动设备1402的方位。移动设备的加速计检测到重力为笔直向下。换句话说,重力与移动设备1402的方位平行。结果,虚拟相机在三维模型被定向为笔直向下,所述三维模型诸如地球的三维模型。利用面对地面的虚拟相机,所述虚拟相机可以捕捉地面的图像1404。

图14b示出了处于相对于地面的一个角度的移动设备1422的概况。该移动设备的加速计检测到重力相对于移动设备的方位成角度1426。结果,虚拟相机的俯仰可以被设置为角度1426。以角度1426对虚拟相机进行定向,虚拟相机所捕捉并且向用户显示的图像可以作为图像1424出现。

可替换地,可以基于角度1426来确定虚拟相机的俯仰。在一个实施例中,移动设备的角度范围可以平滑内插到虚拟相机的角度范围中。所述内插可以是线性内插。在一个示例中,假设移动设备的角度范围为30度至90度。该范围内插到虚拟相机0度至90度的角度范围。在该示例中,如果用户以60度保持设备,则虚拟相机的角度可以被设置为45度。该示例仅是说明性的。

图14c示出了与地面正交的移动设备1432的概况。该移动设备的加速计检测到重力相对于所述移动设备成角度1436。结果,虚拟相机的俯仰可以被设置为角度1436。以角度1436对虚拟相机进行定向,虚拟相机所捕捉并且向用户显示的图像可以作为面向水平的图像1434出现。

如图14a-c所示,随着用户改变移动设备的方位,虚拟相机的方位也发生变化。因此,随着用户将移动设备指向地平线,虚拟相机也看向地平线。随着用户将移动设备指向天空,虚拟相机也向上看向天空。最终,随着用户将移动设备指向地面,虚拟相机也看向地面。

除了改变虚拟相机的方位之外,虚拟相机的位置也可以根据移动设备的方位而变化。在一个实施例中,可以如参考图11a-b所描述的确定目标位置和倾斜角度。随着移动设备方位的变化,虚拟相机相对于目标位置的倾斜角度也可以变化。

以这种方式,用户可以通过改变移动设备的方位来导航通过三维环境。

俯仰动量

锚定导航部分讨论了一个手指最初静止而另一个手指最初处于运动的两手指手势。该部分描述两个手指最初都处于运动的两手指手势。所述两手指手势可以被称作挤压并且参考图15和图16a-b进行描述。也可以通过第一和第二手指触摸的时序来将挤压和锚定导航区别开来。例如,当第一和第二手指之间的时间高于阈值,则可以激活锚定导航模式。当第一和第二手指之间的时间高于阈值,可以利用挤压动量移动虚拟相机。在可替换实施例中,可以在所述时间低于阈值时激活锚定导航模式,而在所述时间高于阈值时利用挤压动量移动虚拟相机。

图15是图示用于使用挤压对虚拟相机进行导航的方法1500的流程图。方法1500以在1502接收用户在视图上的挤压的输入作为开始。用户挤压在图16a中图示。

图16a示出了图示移动设备上的挤压手势的示图1600。示图1600示出了具有视图102的移动设备100。用户已经利用手指1604和1602触摸了视图。两个手指都处于运动并且它们的相对运动处于在步骤1504中所确定的挤压速度。如箭头1612和1614所示将手指1604和1602移动分开会导致正挤压速度,而如箭头1624和1622所示将手指1604和1602移动到一起会导致负挤压速度。

基于步骤1504中所确定的挤压速度,在步骤1506确定虚拟相机的速度。如果挤压速度为正则虚拟相机的速度可以为正(向前),而如果挤压速度为负则虚拟相机的速度可以为负(后退)。在一个示例中,虚拟相机的速度可以从挤压速度线性内插。这仅是说明性示例而并非意在限制本发明。

在步骤1508,虚拟相机加速至步骤1506所确定的速度。在步骤1510,虚拟相机可以逐渐减速。为了使得虚拟相机减速,可以仿真虚拟相机的动量,并且虚拟相机可以受到所仿真的空气阻力的影响。步骤1508和1510在图16b中图示。

图16b示出了图示受到挤压动量影响的虚拟相机的示图1650。示图1650示出了虚拟相机在位置1652开始并在位置1654结束。示图1650示出了若干时间点t0,t1,t2,t3,t4和t5处的虚拟相机。虚拟相机随着时间流逝而减速。

在另一个实施例中,两个手指最初都无需处于运动之中。一个或两个手指最初可以是静止的。此外,挤压可以平移虚拟相机或者推拉虚拟相机而没有任何动量。在该实施例中,虚拟相机根据挤压的距离和速度推拉或平移。当挤压手势完成时,虚拟相机可以停止推拉或平移。

在一个实施例中,虚拟相机可以直线平移。可替换地,虚拟相机可以保持静止并且三维模型可以移动。在一个示例中,三维模型可以旋转。三维模型相对于虚拟相机的这种运动可以被称作“移位”。

在另一个实施例中,虚拟相机同时进行推拉(或平移)和旋转。相机的旋转基于两个手指之间的角度,并且推拉基于两个手指之间的距离。这两个动作可以同时进行。任何一个手指都无需为了该手势而锚定,但是任何一个手指都可以锚定。该实施例在图16c中图示。

在图16c中,手指1和手指2可以同时与表面相接触。此外,手指1和手指2可以同时处于运动。如箭头1671和1673所示旋转手指1和手指2将导致相机围绕目标点进行旋转。所述目标点可以通过如针对图6a-b所描述的延伸屏幕射线来确定。在示例中,所述屏幕射线可以基于一个手指的位置来确定,所述手指诸如触摸屏幕的第一手指。可替换地,所述屏幕射线可以基于手指之间的中间点来确定。以这种方式,目标点不被用户在显示上的手指之一所覆盖。

一旦确定了目标点,相机就可以围绕所述目标点进行旋转。在一个实施例中,相机可以如针对图11b所描述的通过改变方位角值来围绕目标点进行旋转。以这种方式,所述相机可以围绕目标点盘旋,从不同视角观看目标。

在一个实施例中,可以确定连接手指1和手指2的“看不见的”线。当用户如箭头1671和1673所示旋转手指1和手指2时,所述看不见的线和移动设备的显示之间的角度也变化。当所述看不见的线和移动设备的显示之间的角度变化时,相对于目标点的方位角角度也会变化。在一个实施例中,所述方位角角度可以以与所述看不见的线和移动设备的显示之间的角度相同的量或者近似相同的量而变化。以这种方式,当用户在移动设备的显示上以360度旋转两个手指时,虚拟相机围绕目标点盘旋360度。

此外,如箭头1679所示改变手指1和手指2之间的距离,例如会通过推拉或平移虚拟相机而改变虚拟相机的范围。在一个示例中,如以上所描述的确定连接手指1和手指2的看不见的线。当所述看不见的线长度减小时,相机可以移动远离目标点。类似地,当所述看不见的线长度增加时,所述相机可以向目标点移动,反之亦然。以上参考图16a-b描述了改变范围。此外,如以上所描述的,可以应用动量来继续所述手势。旋转、推拉中任一个或者其二者的速度可以基于手势结束时的速度而在手指离开之后逐渐减小。

在一个示例性操作中,用户可以以90度逆时针旋转手指1和2,并且可以将手指1和2移动分开。在该示例中,虚拟相机可以以90度逆时针围绕目标点盘旋,并且可以平移靠近目标点。在另一个示例性操作中,用户可以以45度顺时针旋转手指1和2,并且可以移动手指1和2更加接近。在该示例中,虚拟相机可以以45度顺时针围绕目标点盘旋,并且可以平移远离目标点。

通过在单个用户界面手势中进行推拉和旋转,实施例使得用户能够容易地围绕目标点进行导航并且从不同视角观看目标。

角度移位

该部分描述在移动设备上移位虚拟相机通过三维环境。通常,用户通过利用手指在移动设备的视图上选择一个位置来进行移位。基于所选择的位置,确定目标位置。随着用户拖动其手指,三维模型相对于虚拟相机的位置进行移动以跟随所述目标位置。这可以被称作触摸拖动手势。在一个实施例中,所述三维模型响应于触摸拖动手势进行旋转以跟随用户的手指。

图17是图示用于在移动设备上进行移位的方法1700的流程图。方法1700在步骤1702开始,其中接收移动设备的用户所选择的第一和第二位置。选择所述第一和第二位置在图18a中图示。所述第一和第二位置中的每一个都可以由视图上的x和y坐标来定义。图18a示出了图示移动设备上的移位的示图1800。示图1800示出了具有视图102的移动设备100。用户利用其手指触摸位置1802并且将其手指拖动到新的位置1804。

基于位置1802和位置1804,在步骤1704确定第一和第二目标点。所述第一和第二目标点可以利用如参考图6a-b所描述的射线来确定。如果所述射线接近与三维模型相切,则目标点可能无需如参考图6b所描述的那样进行滞阻。例如,每个目标点可以通过维度、经度和高度来定义。高度(作为这里所意指的术语)可以是从目标点到三维模型中心的距离。在一个实施例中,通过将射线与三维模型相交来确定第一目标点,并且通过将射线与虚拟球体表面相交来确定第二目标点。确定目标点在图18b中图示。

图18b示出了具有面对三维地形210的虚拟相机202的示图1800。如之前所提到的,三维地形210可以是三维模型的一部分。在一个实施例中,第一目标点(目标点1854)可以通过延伸射线1852以在三维地形210处与三维模型相交来确定。基于目标点1854,确定虚拟球体表面1862。虚拟球体表面1862可以具有在三维模型中心处并且可以作为相切目标点1854的中心。通过将第二射线1864与虚拟球体表面1862相交,确定目标点1856。可替换地,可以不使用虚拟表面,并且可以通过将射线与三维模型相交来确定第二目标点。目标点1854和目标点1856这两个目标点形成相对于所述三维模型中心的地心矢量。

返回参见图17,一旦确定了目标点,就在步骤1706确定旋转轴。为了计算旋转轴,可以确定两个目标点之间的叉积。参见图18b,可以通过两个矢量v1’和v1来定义所述两个目标点。通过取得v1’和v1之间的叉积(v1’×v1)来计算旋转轴。一旦确定了旋转轴,就在步骤1708旋转三维模型。所述三维模型通过角度α进行旋转,所述角度α通过计算两个矢量v1’和v1之间的点积所确定(α=v1’·v1)。基于角度α和旋转轴计算旋转矩阵。最后,基于所述旋转矩阵旋转所述三维模型。

一旦完成了移位运动,就可以记录手指最后的屏幕空间位置。此外,移位运动可以在用户手势完成之后继续。这为用户提供了其在旋转地球仪的感觉。旋转的速度可以逐渐降低以仿真阻力。

以这种方式,用户利用其手指所抓住的目标跟随用户手指的运动。对于用户而言,可以感到就像他在触摸行星并控制它一样。由于视图的大小,手指的第一和第二位置不能离开过远。这限制了用户所能够移位的速度并且提高了移位手势的稳定性。

可以有若干移位模式。当加速计导航被使能并且移动设备被转向低于特定值时,触摸拖动手势可以具有不同行为。在那种情况下,虽然垂直方向的触摸拖动手势可以导致如以上参考图17所描述的移位,但是水平方向的触摸拖动手势会使得虚拟相机环视。这在图19a-c中图示。

图19a示出了图示移动设备1904的示图1900。移动设备1904具有检测其相对于重力的角度β的加速计。当移动设备的角度β超出阈值α时,用户能够如图19b中的示图1930所示的在所有方向进行移位。当移动设备的角度β低于阈值α时,向左和向右的触摸抓住手势不会移位,但是会使得虚拟相机如图19c中的示图1960所示的向左和向右看。虚拟相机可以通过改变虚拟相机的偏转值来向左和向右看。

结论

注意,在之前的描述中,为了清楚已经关于与触摸屏进行接触的手指对实施例进行了描述。然而,可以使用诸如笔的本领域技术人员所知的任意其它物体。

说明内容和摘要部分可以给出发明人所预期的本发明的一个或多个但并非全部示例性实施例,并且由此并非意在以任意方式对本发明和权利要求进行限制。

以上已经借助于图示指定功能及其关系的实施方式的功能构建模块对本发明进行了描述。这些功能构建模块的界限在这里为了便于描述进行了任意定义。只要适当执行指定功能及其关系,就能够定义替代界限。

之前对特定实施例的描述将全面揭示本发明的一般本质,并且其他人通过应用本领域技术范围之内的知识,无需过度实验就能够轻易对这些特定实施例的各种应用进行修改和/或调整,而并不背离本发明的一般概念。因此,基于这里所给出的教导和指示,这样的调整和修改意在处于所公开实施例的等同物的含义和范围之内。所要理解的是,这里的短语或术语是出于描述而非限制的目的,从而本说明书的术语或短语要由技术人员根据所述教导和指示进行解释。

本发明的宽度和范围不应当由任何以上所描述的示例性实施例来限制,而是仅依据权利要求及其等同物来确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1