发明内容
为解决上述问题,本发明提供一种人机交互方法及装置,实现通过鼠标交互应用进行多点触摸手势交互,具有兼容性好、使用简单、成本低的特点。
本发明提供一种人机交互方法,所述方法包括:检测并获取当前输入的第一鼠标事件;其中,所述第一鼠标事件为预先定义的启动/关闭鼠标事件与触摸手势映射模式的鼠标事件;检测并获取当前输入的第二鼠标事件;以及根据所述第二鼠标事件以及映射关系得到对应的触摸手势,并根据所述触摸手势与操作系统进行交互;其中,所述映射关系为预先设定的第二鼠标事件与触摸手势的映射关系。
优选地,根据所述触摸手势与操作系统进行交互的步骤具体为:根据所述触摸手势为放大或缩小时,确定以一对称点对称的两操作点彼此远离或接近以执行所述手势与操作系统进行的放大或缩小的交互操作。
优选地,所述对称点为所述鼠标的光标在屏幕上的当前位置。
优选地,所述对称点在屏幕上的位置预先设定。
优选地,所述对称点为所述屏幕的中心点。
优选地,确定以一对称点对称的两操作点彼此远离或接近以执行所述手势与操作系统进行的放大或缩小的交互操作的步骤之后,所述方法还包括:判断所述两操作点的其中一个或两个是否到达屏幕边界或所述两操作点之间的距离小于一预定值;若是,则重新设定所述对称点的位置或所述两操作点的位置;然后执行所述确定以一对称点对称的两操作点彼此远离或接近以执行所述手势与操作系统进行的放大或缩小的交互操作的步骤。
优选地,所述第一鼠标事件为点击按键的操作,所述第二鼠标事件为滑动滚轮的操作。
本发明还提供一种人机交互装置,所述装置包括:第一检测单元,用于检测并获取当前输入的第一鼠标事件;其中,所述第一鼠标事件为预先定义的启动/关闭鼠标事件与触摸手势映射模式的鼠标事件;第二检测单元,用于检测并获取当前输入的第二鼠标事件;以及交互执行单元,根据所述第二鼠标事件以及映射关系得到对应的触摸手势,并根据所述触摸手势与操作系统进行交互;其中,所述映射关系为预先设定的第二鼠标事件与触摸手势的映射关系。
优选地,所述交互执行单元用于根据查找到的触摸手势为放大或缩小时,确定以屏幕中心点为对称点的两操作点彼此远离或接近以执行所述手势与操作系统进行的放大或缩小的交互操作。
优选地,所述对称点为所述鼠标的光标在屏幕上的当前位置。
优选地,所述对称点在屏幕上的位置预先设定。
优选地,所述对称点为所述屏幕的中心点。
优选地,所述装置还包括:判断单元,用于判断两操作点的其中一个或两个是否到达屏幕边界或两操作点之间的距离小于一预定值;设定单元,用于当所述判断单元确定两操作点的其中一个或两个到达屏幕边界或两操作点之间的距离小于一预定值时,重新设置所述对称点的位置或两操作点的位置。
优选地,所述第一鼠标事件为点击按键的操作,所述第二鼠标事件为滑动滚轮的操作。
本发明提供的一种人机交互方法及装置,通过预先建立的触摸手势和鼠标事件映射关系,获取当前输入的鼠标事件时查找映射关系得到对应的触摸手势,并根据查找得到的触摸手势与操作系统进行交互,能够实现基于鼠标交互式应用程序进行多点触摸手势交互,以触摸手势作为中转,间接实现鼠标操作与操作系统的手势交互操作,能够在不对应用程序进行任何修改的前提下,使其支持基于鼠标实现的多点触摸的手势操作,具有兼容性好、使用简单、成本低的优点。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,为本发明一实施方式中的人机交互方法的流程示意图。该方法包括:
步骤S10,检测并获取当前输入的第一鼠标事件。
其中,该第一鼠标事件为预先定义的启动/关闭鼠标事件与触摸手势映射模式的鼠标事件。
步骤S11,检测并获取当前输入的第二鼠标事件。
步骤S12,根据该第二鼠标事件以及映射关系得到对应的触摸手势,并根据该触摸手势与操作系统进行交互。
其中,该映射关系为预先设定的第二鼠标事件与触摸手势的映射关系。
请参阅图2,为本发明另一实施方式中的人机交互方法的流程示意图。
步骤S20,检测并获取当前输入的第一鼠标事件。
其中,该第一鼠标事件为预先定义的启动/关闭鼠标事件与触摸手势映射模式的鼠标事件。
该第一鼠标事件为点击按键的操作,例如,通过鼠标中键作为切换键,快速按2下,切换到映射模式,再快速按2下切换回正常模式。
在其他实施方式中,还可以通过特定的鼠标手势或者系统设置进行启动/关闭鼠标事件与触摸手势映射模式。
步骤S21,检测并获取当前输入的第二鼠标事件。
该第二鼠标事件为滑动滚轮的操作,例如,鼠标滚轮向前滚动,则映射为以屏幕中点为对称点的两触摸点的拉开的触摸手势。鼠标滚轮向后滚动,则映射为以屏幕中点为对称点的两触摸点的捏合触摸手势。
步骤S22,根据该第二鼠标事件以及映射关系得到对应的触摸手势,根据该触摸手势为放大或缩小时,确定以一对称点对称的两操作点彼此远离或接近以执行该手势与操作系统进行的放大或缩小的交互操作。
其中,该映射关系为预先设定的第二鼠标事件与触摸手势的映射关系。
在Android操作系统,该两个操作点为两个触摸点,通过对这两个触摸点进行拖动实现放大或缩小的操作手势。
在本实施方式中,该对称点为该鼠标的光标在屏幕上点击选定的当前位置,或根据鼠标的其他操作确定的该鼠标的光标在屏幕上的位置,例如,根据追踪到的人眼图像确定人眼在屏幕上的焦点,该对称点在屏幕上的位置还可以预先设定,例如,用户在根据屏幕的分辨率、尺寸等信息选择一坐标位置作为该对称点的位置。在其他实施方式中,该对称点还可以为该屏幕的中心点。进一步地,根据该对称点的位置以及预定距离确定该两个操作点的坐标,该预定距离值为操作点坐标位置与该对称点位置之间的距离。
步骤S23,判断两操作点的其中一个或两个是否到达屏幕边界或两操作点之间的距离小于一预定值。若是,则重新设置该对称点的位置或两操作点的位置。然后,返回步骤S22。否则,流程结束。
当选定一对称点的位置后,根据该对称点以及预定距离确定两个操作点的位置,其中一个或两个操作点的位置达到屏幕边界,此时便无法再执行拉开的触摸手势,需要重新选定操作点的位置。因此,执行如上所述的步骤重新选定对称点的位置,例如,若一个操作点达到屏幕左边界,则重新选定的对称点位置相应地较之前的对称点的位置向右移动一定距离,即,根据之前的对称点的位置以及两个操作点之间预定的初始距离重置对称点的位置。同样地,当执行一定程度的拉近的触摸手势时,两个操作点之间的距离过小而无法再次执行拉近的触摸手势,需要重新选定两个操作点的位置。因此,如上所述根据对称点的位置相应地增加预定距离,重置对称点的位置,使重新选定的对称点与对称点之间的距离增大,以方便执行拉近的触摸手势。重新设定对称点的位置或两个操作点的位置的方法并不局限于上述方式,其他可实现同样技术效果的现有技术方案均可以应用于本发明。在其他实施方式中,鼠标事件还可以映射为触摸点操作。
在本发明实施方式中,在系统中加入一层映射,将触摸手势与鼠标动作做对应,但是对用户层而言此映射过程是不可见的,感觉上是应用程序直接响应鼠标事件的操作。
鼠标事件映射的实现方法包括映射法和声明法,映射法是指将具体的鼠标事件,如右击、双击、滚轮前滚等直接映射为多点触摸,应用程序通过响应鼠标事件来实现操作手势;声明法是指将鼠标按键类型,如左键、中键等映射为手势或手指类型等,然后在本次输入鼠标事件之前,应用程序响应操作系统定义的相应触摸手势的相关API函数。例如,如果中键定义为某个手势,那么该中键输入时即映射为该手势。其中,映射法包括三个集合:手势集(Gesture)、鼠标动作集(Mouse_Event)和应用程序功能集(Function)。手势集和鼠标动作集是由操作系统提供的,应用程序功能集即基于鼠标交互式应用程序中包含了用于通过鼠标交互的程序功能集合,它是应用程序本身固有的功能,鼠标动作集和应用程序功能集的映射模型在应用程序中设计并实现。映射法的核心就是在手势集与鼠标动作集之间建立映射模型,从而进一步在鼠标集与应用程序功能集之间建立映射模型。将不同的鼠标动作映射为相应的手势动作以便激活应用程序功能的相应,从而能够无需改动应用程序本身即可实现基于鼠标的交互式应用程序进行多点触摸交互。例如某看图程序的应用程序功能集中包含图片放大的功能,该功能原本是通过放大手势实现的,当我们对一个图片进行操作,双指触摸后远离,根据人们的一般意识感觉,可以设计该手势的功能为图片放大,因此将双指触摸后远离的手势与鼠标滚轮向前滚动动作建立映射模型,当用户输入鼠标滚轮向前滚动动作,触摸鼠标的中间滚轮则根据映射模型发送双指触摸后远离时命令,从而看图程序接收到该命令并执行图像的放大。
请参阅图3,为本发明一实施方式的人机交互装置的结构示意图。该装置30包括:
第一检测单元31,用于检测并获取当前输入的第一鼠标事件。其中,该第一鼠标事件为预先定义的启动/关闭鼠标事件与触摸手势映射模式的鼠标事件。
第二检测单元32,用于检测并获取当前输入的第二鼠标事件。以及
交互执行单元33,根据该第二鼠标事件以及映射关系得到对应的触摸手势,并根据该触摸手势与操作系统进行交互。其中,该映射关系为预先设定的第二鼠标事件与触摸手势的映射关系。
请参阅图4,为本发明另一实施方式的人机交互装置的结构示意图。该装置40包括:
第一检测单元41,用于检测并获取当前输入的第一鼠标事件。其中,该第一鼠标事件为预先定义的启动/关闭鼠标事件与触摸手势映射模式的鼠标事件。
该第一鼠标事件为点击按键的操作,例如,通过鼠标中键作为切换键,快速按2下,切换到映射模式,再快速按2下切换回正常模式。
在其他实施方式中,还可以通过特定的鼠标手势或者系统设置进行启动/关闭鼠标事件与触摸手势映射模式。
第二检测单元42,用于检测并获取当前输入的第二鼠标事件。
该第二鼠标事件为滑动滚轮的操作,例如,鼠标滚轮向前滚动,则映射为以屏幕中心点为对称点的两触摸点的拉开的触摸手势。鼠标滚轮向后滚动,则映射为以屏幕中点为对称点的两触摸点的捏合触摸手势。
交互执行单元43,用于根据该第二鼠标事件以及映射关系得到对应的触摸手势,根据该触摸手势为放大或缩小时,确定以一对称点对称的两操作点彼此远离或接近以执行该手势与操作系统进行的放大或缩小的交互操作。
其中,该映射关系为预先设定的第二鼠标事件与触摸手势的映射关系。
在本实施方式中,该对称点为该鼠标的光标在屏幕上点击选定的当前位置,或根据鼠标的其他操作确定的该鼠标的光标在屏幕上的位置,例如,根据追踪到的人眼图像确定人眼在屏幕上的焦点,该对称点在屏幕上的位置还可以预先设定,例如,用户在根据屏幕的分辨率、尺寸等信息选择一坐标位置作为该对称点的位置。在其他实施方式中,该对称点还可以为该屏幕的中心点。进一步地,根据该对称点的位置以及预定距离确定该两个操作点的坐标,该预定距离值为操作点坐标位置与该对称点位置之间的距离。
判断单元44,用于判断两操作点的其中一个或两个是否到达屏幕边界或两操作点之间的距离小于一预定值。
设定单元45,当该判断单元44确定两操作点的其中一个或两个到达屏幕边界或两操作点之间的距离小于一预定值时,用于重新设置该对称点的位置或两操作点的位置。然后,该交互执行单元44根据该设定单元45设定的两操作点彼此远离或接近以执行该手势与操作系统进行的放大或缩小的交互操作。
当选定一对称点的位置后,根据该对称点以及预定距离确定两个操作点的位置,其中一个或两个操作点的位置达到屏幕边界,此时便无法再执行拉开的触摸手势,需要重新选定操作点的位置。因此,如上所述重新选定对称点的位置,例如,若一个操作点达到屏幕左边界,则重置对称点的位置。同样地,当执行一定程度的拉近的触摸手势时,两个操作点之间的距离过小而无法再次执行拉近的触摸手势,需要重新选定两个操作点的位置。因此,如上所述根据对称点的位置相应地增加预定距离,使重新选定的操作点与对称点之间的距离增大,以方便执行拉近的触摸手势。重新设定对称点的位置或两个操作点的位置的方法并不局限于上述方式,其他可实现同样技术效果的现有技术方案均可以应用于本发明。
在其他实施方式中,鼠标事件还可以映射为触摸点操作。
本发明提供的一种人机交互方法及装置,通过预先建立的触摸手势和鼠标事件映射关系,获取当前输入的鼠标事件时查找映射关系得到对应的触摸手势,并根据查找得到的触摸手势与操作系统进行交互,能够实现基于鼠标交互式应用程序进行多点触摸手势交互,以触摸手势作为中转,间接实现鼠标操作与操作系统的手势交互操作,能够在不对应用程序进行任何修改的前提下,使其支持基于鼠标实现的多点触摸的手势操作,具有兼容性好、使用简单、成本低的优点。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。