掌桥专利:专业的专利平台
掌桥专利
首页

程序、电子装置和方法

文献发布时间:2023-06-19 10:00:31


程序、电子装置和方法

技术领域

本发明涉及程序等。特别地,本发明涉及由具有触摸屏的电子装置执行的程序等。

背景技术

随着触摸屏技术的最近改进,经由触摸屏上的用户界面进行用户输入的类型的电子装置已得到广泛使用。此外,关于在电子装置上执行的游戏,代替经由传统的物理控制器的用户输入,经由电子装置上所设置的触摸屏进行用户输入的形式正得到广泛使用。

特别地,诸如智能电话等的紧凑型便携式电子装置已迅速流行,并且已发布了在这样的便携式电子装置上执行的大量游戏。在这种情况下,提出了与操作触摸屏上所显示的虚拟对象(诸如玩家角色等)的方法有关的各种技术,这些技术例如包括非专利文献1中所公开的与虚拟板(virtual pad)有关的技术。

例如,专利文献1公开了配备有触摸屏的游戏装置以及程序,这两者使得可以根据用户的触摸操作来设置原点,并且使得能够进行模拟操纵杆的操作。游戏装置在触摸屏从未检测到触摸的状态转变为检测到触摸的状态的情况下,基于开始检测时的坐标来设置基准坐标,并且在要继续触摸检测的情况下,基于在该转变之后检测到的坐标来设置指示坐标。然后,游戏装置将从基准坐标向指示坐标的矢量的方向识别为操纵杆倾斜的方向,并且将该矢量的大小识别为操纵杆倾斜的程度,由此实现虚拟操纵杆,从而实现虚拟对象的操作。

专利文献1:日本专利3734820

非专利文献1:Matthias Baldauf,Peter Frohlich,Florence Adegeye,andStefan Suette.2015.Investigating On-Screen Gamepad Designs for Smartphone-Controlled Video Games.ACM Trans.Multimedia Comput.Commun.Appl.12,1s,Article22(October 2015),21pages.DOI:https://doi.org/10.1145/2808202

发明内容

在专利文献1所公开的现有技术中,用户将手指放置在触摸屏上的一个点处以使得游戏装置识别出基准坐标,在维持接触的同时滑动手指,并且使得游戏装置利用滑动之后的手指的接触位置识别出指示坐标。利用如此配置的现有技术,当用户输入方向时,需要生成从基准坐标到指示坐标的显著距离,这使得难以实现高响应性。例如,在用户希望进行大幅倾斜虚拟操纵杆的操作的情况下,需要与大幅倾斜的操纵杆的倾斜程度相对应地生成从基准坐标向指示坐标的矢量的大小。

因而,作为用于控制显示在触摸屏上且布置在虚拟空间中的虚拟对象的操作方法,例如,要求实现更快速且更直观的操作方法。以更一般化的方式来说,作为用于控制布置在虚拟空间中且可以由用户操作的被操作对象的操作方法,要求实现可操作性有所提高的操作方法。

本发明是为了解决上述问题而做出的,并且本发明的主要目的是提供使得可以提高在控制虚拟空间中的被操作对象时的可操作性的程序等。

为了实现上述目的,根据本发明的一方面的程序是一种在配备有触摸屏的电子装置上执行的程序,所述程序使得所述电子装置的特征在于执行以下步骤:保持基于作为用户对所述触摸屏的操作的结果所生成的触摸事件而获得的、由第一轴上的值和第二轴上的值指示的数据点;终止对所保持的数据点中的、预定义的保持时间段已到期的数据点的保持;基于所保持的数据点来确定回归线的斜率;基于所保持的数据点的集合的位移方向,来确定要使所确定的回归线的斜率转动的转动量;以及基于所确定的回归线的斜率和所确定的转动量,来确定用户控制虚拟空间中的被操作对象所采用的角度。

此外,在本发明中,优选地,在确定所述转动量的步骤中,在确定用于控制所述被操作对象的角度时,基于所保持的数据点中的在时间序列中的前后的数据点的位移方向,来确定指示是否要使所确定的回归线的斜率转动180度的转动量。

此外,在本发明中,优选地,所述程序使得所述电子装置还执行以下步骤:基于所保持的数据点中的所述第一轴上的值的位移量和所述第二轴上的值的位移量,来将所述第一轴和第二轴中的一个轴确定为自变量的轴,并且将另一轴确定为因变量的轴,以及在确定所述回归线的斜率的步骤中,进一步基于所确定的自变量的轴和因变量的轴来确定所述回归线的斜率。

此外,在本发明中,优选地,在确定所述第一轴和所述第二轴中的一个轴的步骤中,基于所保持的数据点中的、所述第一轴上的值的最大值和最小值之间的差以及所述第二轴上的值的最大值和最小值之间的差,来将所述第一轴和所述第二轴中的一个轴确定为自变量的轴。

此外,在本发明中,优选地,在确定所述第一轴和所述第二轴中的一个轴的步骤中,通过将所保持的数据点中的、所述第一轴上的值的最大值和最小值之间的差被应用了权重的结果的大小与所述第二轴上的值的最大值和最小值之间的差的大小进行比较,来将所述第一轴和所述第二轴中的一个轴确定为自变量的轴。

此外,在本发明中,优选地,在确定所述转动量的步骤中,在确定用于控制所述被操作对象的角度时,通过将所保持的数据点中的在时间序列中的前后的、所确定的自变量的轴上的值之间的差中的正值的数量和负值的数量进行比较,来确定指示是否要使所确定的回归线的斜率转动180度的转动量。

此外,在本发明中,优选地,确定所述回归线的斜率的步骤包括以下步骤:确定所保持的数据点中的自变量的平均值和因变量的平均值;通过使用所确定的平均值来确定所保持的数据点中的自变量的偏差和因变量的偏差;通过使用所确定的自变量的偏差来确定所保持的数据点中的自变量的方差;通过使用所确定的自变量的偏差和因变量的偏差来确定所保持的数据点中的协方差;以及通过将所确定的协方差除以所确定的自变量的方差来确定所述回归线的斜率。

此外,在本发明中,优选地,所述第一轴是指示所述触摸屏的传感器排列的方向中的短边方向的X轴,所述第二轴是指示所述触摸屏的传感器排列的方向中的长边方向的Y轴,所述第二轴垂直于所述第一轴,以及在确定所述回归线的斜率的步骤中,在所确定的自变量的轴是所述第二轴的情况下,从90度中减去与通过将所确定的协方差除以所确定的自变量的方差而确定的回归线的斜率相对应的角度,来确定所述回归线的斜率。

此外,在本发明中,优选地,所述第一轴是指示所述触摸屏的传感器排列的方向中的短边方向的X轴,以及所述第二轴是指示所述触摸屏的传感器排列的方向中的长边方向的Y轴,所述第二轴垂直于所述第一轴。

此外,在本发明中,优选地,在确定所述角度的步骤中,按每个预定义的处理时间段来确定角度。

此外,为了实现上述目的,根据本发明的一方面的程序是一种用于游戏的程序组,所述游戏在配备有触摸屏的电子装置上执行,所述程序组包括上述的程序,所述程序组的特征在于,所述预定义的处理时间段是与用于执行所述游戏的帧速率相对应的时间段,所述程序组使得执行以下步骤:基于按每个所述预定义的处理时间段所确定的角度来按每个所述预定义的处理时间段确定角度和大小;以及基于按每个所述预定义的处理时间段所确定的角度和大小来控制所述触摸屏上所显示的所述被操作对象。

此外,为了实现上述目的,根据本发明的一方面的程序组是一种用于游戏的程序组,所述游戏在配备有触摸屏的电子装置上执行,所述程序组包括上述的程序,所述程序组的特征在于,所述预定义的处理时间段是与用于执行所述游戏的帧速率相对应的时间段,所述程序组使得执行以下步骤:基于按每个所述预定义的处理时间段所确定的角度来按每个所述预定义的处理时间段确定角度和大小;以及基于按每个所述预定义的处理时间段所确定的角度和大小来控制用于拍摄游戏图像的虚拟照相机,所述虚拟照相机用作所述触摸屏上所显示的所述被操作对象。

此外,为了实现上述目的,根据本发明的一方面的电子装置是一种电子装置,其配备有触摸屏,所述电子装置的特征在于,保持基于作为用户对所述触摸屏的操作的结果所生成的触摸事件而获得的、由第一轴上的值和第二轴上的值指示的数据点;终止对所保持的数据点中的、预定义的保持时间段已到期的数据点的保持;基于所保持的数据点来确定回归线的斜率;基于所保持的数据点的集合的位移方向,来确定要使所确定的回归线的斜率转动的转动量;以及基于所确定的回归线的斜率和所确定的转动量,来确定用户控制虚拟空间中的被操作对象所采用的角度。

此外,为了实现上述目的,根据本发明的一方面的方法是一种在配备有触摸屏的电子装置上执行的方法,所述方法的特征在于包括以下步骤:保持基于作为用户对所述触摸屏的操作的结果所生成的触摸事件而获得的、由第一轴上的值和第二轴上的值指示的数据点;终止对所保持的数据点中的、预定义的保持时间段已到期的数据点的保持;基于所保持的数据点来确定回归线的斜率;基于所保持的数据点的集合的位移方向,来确定要使所确定的回归线的斜率转动的转动量;以及基于所确定的回归线的斜率和所确定的转动量,来确定用户控制虚拟空间中的被操作对象所采用的角度。

本发明使得可以提高在控制虚拟空间中的被操作对象时的可操作性。

附图说明

图1是示出根据本发明实施例的电子装置的硬件结构的框图。

图2是根据本发明实施例的电子装置的功能框图。

图3是示出本实施例中的由第一轴和第二轴构成的坐标轴的图。

图4是用于说明由角度确定单元确定的角度和与该角度相对应的方向的示例的图。

图5是示出在时间t1在数据点缓冲器中保持的数据点的示例的图。

图6是示出在时间t1在数据点缓冲器中保持的数据点的示例的图。

图7是示出从图5所示的数据点的集合获得的回归线的图。

图8是示出通过使用图7所示的回归线的斜率利用函数aop(x,y)所计算出的角度的图。

图9是示出在时间t2在数据点缓冲器中保持的数据点的示例的图。

图10是示出通过使用图9所示的回归线的斜率利用函数aop(x,y)所计算出的角度的图。

图11是示出在时间t3在数据点缓冲器中保持的数据点的示例的图。

图12是示出在时间t3在数据点缓冲器中保持的数据点的示例的图。

图13是示出通过使用从图11所示的数据点的集合获得的回归线以及该回归线的斜率利用函数aop(x,y)所计算出的角度的图。

图14是示出在时间t4在数据点缓冲器中保持的数据点的示例的图。

图15是示出在时间t4在数据点缓冲器中保持的数据点的示例的图。

图16是示出从图14所示的数据点的集合获得的回归线的图。

图17是示出通过使用图16所示的回归线的斜率利用函数aop(x,y)所计算出的角度的图。

图18是示出根据本发明实施例的电子装置如何基于数据点的集合来控制虚拟角色的图。

图19是根据本发明实施例的利用角度确定单元的信息处理的流程图。

图20是示出拍摄根据本发明实施例的电子装置所显示的图像的、布置在虚拟空间中的虚拟照相机的图。

具体实施方式

以下将参考附图来说明本发明的实施例。除非另外具体陈述,否则在各图中,相同的附图标记表示相同或相应的部分,并且为了便于说明,存在纵横比例被示出为不同于真实比例的情况。此外,为了便于说明,存在省略了比所需更详细的说明的情况。例如,存在省略了对已经众所周知的事项的详细说明和对基本上相同的结构的重复说明的情况。

在根据本发明实施例的电子装置10中安装有游戏应用,该游戏应用在使得游戏进行的同时,向用户呈现虚拟空间中所布置的虚拟对象。当执行游戏应用时,根据本实施例的电子装置10提供虚拟的控制器(虚拟控制器),该虚拟控制器用于响应于用户的操作,来控制作为虚拟空间中的用户正操作的虚拟对象的被操作对象。虚拟空间由游戏应用定义,并且可以是二维空间或三维空间。例如,虚拟对象是虚拟空间中所布置的角色或物品。例如,控制被操作对象意味着控制虚拟空间中所布置的角色或物品。

为了便于说明,在本实施例中,假定在电子装置10中安装有上述游戏应用;然而,对上述游戏应用没有限制。在电子装置10中安装有可以响应于用户的操作来控制被操作对象的游戏应用就足够了。例如,代替游戏应用或者除游戏应用之外,在电子装置10中还可以安装有响应于用户的操作而引起被操作对象的动作的输入支持应用或模拟应用。本实施例中的电子装置10所提供的虚拟控制器可用于需要方向和大小的用户输入类型。在以下的说明中,术语“应用”通常是指应用程序,并且可以指安装在智能电话或平板电脑上的App。

图1是示出根据本发明实施例的电子装置10的硬件结构的框图。电子装置10包括处理器11、输入装置12、显示装置13、存储装置14和通信装置15。这些构成装置经由总线16连接。假定在总线16和各个构成装置之间根据需要插入接口。在本实施例中,电子装置10是智能电话。可选地,电子装置10可以是如平板计算机或触摸板那样的、诸如配备有接触型输入装置的计算机等的终端,只要该终端包括上述结构即可。

处理器11控制电子装置10的整体操作。例如,处理器11是CPU。可选地,可以使用诸如MPU等的电子电路作为处理器11。处理器11通过加载存储装置14中所存储的程序和数据并执行这些程序来执行各种处理。在一个示例中,处理器11由多个处理器构成。

输入装置12是用于接受从用户对电子装置10的输入的用户界面;例如,输入装置12是触摸屏、触摸板、键盘或鼠标。显示装置(显示器)13在处理器11的控制下向电子装置10的用户显示应用画面等。在本实施例中,由于电子装置10是智能电话,因此电子装置10包括触摸屏17作为输入装置12,并且触摸屏17也用作显示装置13;也就是说,输入装置12和显示装置13具有一体结构。尽管本实施例中的触摸屏17是投影型电容触摸屏,但可以采用具有等同功能的装置(如果有的话)。

存储装置14是普通智能电话中所包括的存储装置,其包括作为易失性存储器的RAM和作为非易失性存储器的ROM。存储装置14还可以包括外部存储器。存储装置14存储包括游戏应用的各种程序。例如,存储单元14存储操作系统(OS)、中间件、应用程序、在执行这些程序时可以参考的各种数据、等等。

在一个示例中,存储装置14包括主存储装置和辅助存储装置。主存储装置是允许信息的高速读取和写入的易失性存储介质,并且用作在处理器11处理信息时的存储区域和工作区域。辅助存储装置存储处理器11在执行各个程序时使用的各种程序和数据。辅助存储装置例如是硬盘装置;然而,辅助存储装置可以是能够存储信息的任何类型的非易失性存储部或非易失性存储器,其可以是可移除型的。

通信装置15经由网络相对于诸如服务器等的其它计算机发送数据和接收数据。例如,通信装置15进行诸如移动通信或无线LAN通信等的无线通信,以连接至网络2。在一个示例中,电子装置10通过通信装置15从服务器下载程序并将该程序存储在存储装置14中。可选地,通信装置15可以进行已知的有线通信。在数据既未被发送至其它计算机也未从其它计算机接收到的情况下,电子装置10无需包括通信装置15。

图2是根据本发明实施例的电子装置10的功能框图。电子装置10包括输入单元21、显示单元22和控制单元23。控制单元23包括角度确定单元24、状态确定单元25和应用单元26。在本实施例中,这些功能通过处理器11执行程序来实现。例如,所执行的程序是存储装置14中所存储的或经由通信装置15接收到的程序。由于如上所述、各种功能通过加载程序来实现,因此一个部件(功能)的一部分或全部可以设置在另一部件中。可选地,这些功能可以通过配置用于实现各个功能的一部分或全部的电子电路等通过硬件来实现。

输入单元21是通过使用输入装置12来配置的,并且接受从用户对电子装置10的输入。在本实施例中,输入单元21接受用户对触摸屏17进行的触摸操作并且生成触摸事件,对于这些触摸事件,可以使用具有触摸屏17的智能电话中通常设置的触摸检测功能。

显示单元22将游戏应用画面显示在显示装置13上,以显示与用户操作相对应的画面。

控制单元23实现虚拟控制器。在本实施例中,对控制单元23采用具有三层结构的架构,并且角度确定单元24、状态确定单元25和应用单元26对应于各个层。例如,控制单元23通过处理器11执行由与各个层相对应的程序构成的程序组来实现。

由控制单元23实现的虚拟控制器中的角度确定单元24的角色对应于在物理控制器的情况下的控制器内部的传感器IC芯片。角度确定单元24通过主要使用由用户对触摸屏17的触摸操作产生的触摸事件来确定用户控制虚拟空间中的被操作对象的角度,并将该角度转发至状态确定单元25。

状态确定单元25的角色对应于在物理控制器的情况下操作的整个控制器。状态确定单元25通过主要使用从角度确定单元24转发来的角度来确定与用户在触摸屏17上进行的触摸操作相对应的矢量(角度和大小)。

应用单元26对应于实现游戏中的动作等的具体游戏应用。在该游戏应用中,类似于一般的游戏应用,定义帧速率,并且例如,按每个与帧速率相对应的时间段,执行主程序的主循环。通常,帧速率是30fps(帧/秒)或60fps。

角度确定单元24确定在用户控制虚拟空间中的被操作对象时所需的角度。在一个优选示例中,角度确定单元24是用于实时地计算角度的数学函数库,并且是实现用于从短时间段期间的触摸事件的序列计算角度的统计处理算法的软件模块。触摸事件的序列对应于触摸屏17上的手指运动。

存储装置14包括数据点缓冲器。数据点缓冲器是使得角度确定单元24能够保持基于触摸事件所获得的并且由第一轴上的值和第二轴上的值指示的数据点的缓冲器。

角度确定单元将如下的数据点保持在数据点缓冲器中,这些数据点是基于由触摸屏17上的用户操作生成的触摸事件所获得的、并且由第一轴上的值和第二轴上的值来指示。这里,当用户将手指放置成接触触摸屏17(触摸开始(touchstart))时、当用户在保持手指接触触摸屏17的同时移动手指(触摸移动(touchmove))时、当用户将手指从触摸屏17移开(触摸结束(touchend))时、等等,发生触摸事件。角度确定单元24在发生触摸事件时获得触摸事件。当获得触摸事件时,角度确定单元24获得由两个变量构成且与触摸屏17上的静电电容已改变的位置相对应的数值组(x,y),还获得(x,y)的获得时间t,并且将由三个变量构成的数值组(x,y,t)存储在数据点缓冲器中。由两个变量构成的数值组的数据是由角度确定单元24与触摸事件相关联地获得的,并且对应于由第一轴上的值和第二轴上的值指示的数据点。t是表示作为获得(x,y)的时间的数据点获得时间的值,并且如上所述与(x,y)相关联地存储在数据点缓冲器中。在一个示例中,t是被称为UNIX(注册商标)时间的整数值或者诸如“2017/07/14 15:48:43.444”等的字符序列。在下文,除非另外具体说明,否则角度确定单元24对数据点的保持(或保持终止)包括与该数据点相关联的数据点获得时间t的保持(或保持终止)。

在本实施例中,为了便于说明,如下定义第一轴和第二轴。图3是示出本实施例中的由第一轴和第二轴构成的坐标轴的图。第一轴是指示与触摸屏17的传感器排列的方向基本上平行的方向中的短边方向的轴;即,第一轴是与触摸屏17的较短边基本上平行的横轴(x轴)。第二轴是与第一轴垂直并且指示与触摸屏17的传感器排列的方向基本上平行的方向中的长边方向的轴;即,第二轴是与触摸屏17的较长边基本上平行的纵轴(y轴)。如上所述,第一轴和第二轴基本上平行于触摸屏17的传感器排列的方向,并且触摸屏17上的位置以沿着两个轴的坐标(x,y)的形式表示。因而,在本实施例中,数据点的坐标(x,y)对应于触摸屏17上的位置。在本实施例中,角度确定单元24将坐标(x,y)作为数据点保持在数据点缓冲器中。图3所示的坐标设置仅仅是示例,并且可以根据触摸屏17的传感器阵列或由电子装置10实现的程序而以与上述示例不同的方式设置坐标。传感器例如是电极。

图4是用于说明在如图3所示定义坐标轴的情况下的由角度确定单元24确定的角度和与该角度相对应的方向的示例的图。第一象限中的角度31对应于方向32,第二象限中的角度33对应于方向34,并且第四象限中的角度35对应于方向36。这里,尽管方向34和方向36具有相同的斜率,但由于方向34和方向36彼此相反,因此可以确认角度33和角度35相差180度。

角度确定单元24终止数据点缓冲器内所保持的数据点中的、预定义的保持时间段已到期的数据点的保持。例如,当终止数据点的保持时,角度确定单元24可以删除该数据、使该数据无效、或者通过将指示保持已终止的标志与该数据相关联来适当地删除该数据。角度确定单元24定义以毫秒为单位指定数据点缓冲器中所存储的数据点的寿命的变量D。由变量D指定的时间段与预定义的保持时间段相对应。然而,变量D的值不限于毫秒。

例如,在将一个数据点存储在数据点缓冲器中之后,角度确定单元24监视自该数据点的存储起所经过的时间,并且连续地将经过时间与变量D进行比较。当针对该数据点所监视的经过时间超过变量D时,角度确定单元24终止该数据点在数据点缓冲器中的保持。以这种方式,角度确定单元24管理数据点缓冲器中所保持的每个数据点的寿命。此时,角度确定单元24可以通过使用数据点获得时间t来计算经过时间。假定判断为经过时间超过变量D的情况可以意味着判断为经过时间大于或等于变量D的情况。此外,由角度确定单元24管理的数据点的经过时间的单位应优选与变量D的单位相同。

例如,当在变量D中设置165时,角度确定单元24保持数据点缓冲器中所存储的数据点并持续165毫秒,并且在经过了165毫秒之后,终止该数据点在数据点缓冲器中的保持。

角度确定单元24周期性地判断是否可以计算角度。在可以计算角度的情况下,角度确定单元24通过使用数据点来计算由数据点缓冲器中所保持的数据点的集合指示的角度,并将该角度确定为用户控制虚拟空间中的被操作对象的角度。通过如上所述获得由数据点的集合指示的角度,角度确定单元24可以获得对触摸屏17进行了触摸操作的用户所意图的方向的角度。

角度确定单元24将所确定的角度输出至状态确定单元25。当将所确定的角度输出至状态确定单元25时,例如,角度确定单元24将所确定的角度连同指示角度事件的信息一起输出。代替直接输出至状态确定单元25,角度确定单元24可以将所确定的角度和指示角度事件的信息存储在由状态确定单元25参考的存储单元14内的存储区域中。

当所获得的触摸事件是触摸开始时,角度确定单元24将开始事件输出至状态确定单元25,并且不计算角度。当所获得的触摸事件是触摸结束时,角度确定单元24将停止事件输出至状态确定单元25,并且不计算角度。

角度确定单元24定义变量B,并且在数据点缓冲器中所保持的数据点的数量大于或等于变量B的值的情况下,通过使用这些数据点来计算和确定角度。在数据点缓冲器中所保持的数据点的数量小于变量B的值的情况下(在这种情况中,不能以至少一定水平的精度计算由数据点的集合指示的角度),角度确定单元24将保持事件输出至状态确定单元25,并且不计算角度。由于通常优选在获得回归线的斜率时可利用三个或更多个数据点,因此变量B应优选被设置为3或更大。在本实施例中,变量B被设置为3。

角度确定单元24定义变量I,该变量I以毫秒为单位指定用于判断角度确定单元24是否可以计算角度的时间间隔。在如连续发生触摸事件的情形那样的、角度确定单元24不能计算角度的情形继续的情况下,该间隔用作角度确定单元24计算角度的时间间隔。然而,变量I的值不限于毫秒。

角度确定单元24通过如上所述判断是否可以按每个预定义的处理时间段计算角度,来按每个预定义的处理时间段确定角度。在一个优选示例中,预定义的处理时间段是与执行游戏的帧速率相对应的时间段。在帧速率为30fps(30Hz)的情况下,变量I被设置为33。当在变量1中设置33时,角度确定单元24判断是否可以按每33毫秒计算角度。在可以计算角度的情况下,角度确定单元24确定所计算出的角度,并且将所确定的角度连同角度事件一起输出至状态确定单元25。在不能计算角度的情况下,角度确定单元24将开始事件、停止事件和保持事件其中之一输出至状态确定单元25。角度事件可以包括指示角度的信息,并且在这种情况下,角度确定单元24在可以计算角度的情况下将角度事件输出至状态确定单元25。

在计算由数据点缓冲器中所保持的数据点的集合指示的角度时,角度确定单元24基于数据点缓冲器中所保持的数据点来确定回归线的斜率。这里,角度确定单元24所参考的数据点的数量大于或等于3。在确定回归线的斜率时,角度确定单元24基于数据点缓冲器中所保持的数据点中的x轴上的值的位移量和y轴上的值的位移量,来将x轴和y轴中的一个轴确定为自变量的轴。同时,角度确定单元24将另一轴确定为因变量的轴。

在本实施例中,角度确定单元24通过使用最小二乘法来计算回归线的斜率。通过使用最小二乘法来获得回归线的斜率的方法是已知的;在该方法中,自变量和因变量之间的相关程度是以斜率的形式获得的。最小二乘法通常是通过将x轴视为自变量的轴并将y轴视为因变量的轴来应用的。然而,在x轴上的值固定、并且仅y轴上的值改变的情况下,因变量不依赖于自变量。此外,在确定沿着y轴的斜率的情况下,所确定的斜率有时跨y轴从大的负值改变为大的正值,这使得难以稳定地求出斜率。因而,角度确定单元24确定x轴上的值和y轴上的值中的哪个适合作为自变量,并且基于如此确定的自变量的轴和因变量的轴来通过使用最小二乘法确定回归线的斜率。

角度确定单元24在自变量的轴为x轴时确定回归线y=ax+b的斜率a,并且在自变量轴为y轴时确定回归线x=cy+d的斜率c。具体地,角度确定单元24通过以下的(a)至(e)来获得回归线的斜率。

(a)角度确定单元24计算(确定)数据点缓冲器中所保持的数据点中的自变量的平均值和因变量的平均值。

(b)通过使用在(a)中计算出的平均值,角度确定单元24计算(确定)数据点缓冲器中所保持的数据点中的自变量的偏差和因变量的偏差。

(c)通过使用在(b)中确定的自变量的偏差,角度确定单元24计算(确定)数据点缓冲器中所保持的数据点中的自变量的方差。

(d)角度确定单元24通过使用在(b)中确定的自变量的偏差和因变量的偏差,计算(确定)数据点缓冲器中所保持的数据点的协方差。

(e)角度确定单元24通过将在(d)中确定的协方差除以在(c)中确定的自变量的方差来计算(确定)回归线的斜率。

在一个示例中,角度确定单元24基于数据点缓冲器中所保持的数据点中的、x轴上的值的最大值和最小值之间的差以及y轴上的值的最大值和最小值之间的差,来将x轴和y轴中的一个轴确定为自变量的轴,并且将另一轴确定为因变量的轴。优选地,角度确定单元24基于通过使用加权系数对数据点缓冲器中所保持的数据点中的x轴上的值的最大值和最小值之间的差进行加权所得到的值、以及y轴上的值的最大值和最小值之间的差,来将x轴和y轴中的一个轴确定为自变量的轴,并且将另一轴确定为因变量的轴。

角度确定单元24如上所述通过使用最小二乘法来计算(确定)回归线的斜率。优选地,角度确定单元24计算回归线的斜率意味着角度确定单元24计算回归线的斜率的角度。这里,由于所计算出的回归线的斜率不具有正或负方向,因此当通过使用最小二乘法来计算回归线的斜率时,角度确定单元24例如在0至90度和270至360度的范围内计算斜率。因而,例如,不论由数据点的集合指示的角度是45度还是225度,回归线的斜率都被计算为45度。因而,在确定回归线的斜率之后,基于数据点缓冲器中所保持的数据点的集合的位移方向,角度确定单元24确定要使所确定的回归线的斜率转动的转动量。具体地,在确定回归线的斜率之后,当确定用户控制被操作对象的角度时,角度确定单元24确定指示是否要使所确定的回归线的斜率(的角度)转动180度的转动量。这里,数据点的集合的位移方向指示数据点变得随着时间而位移的方向,并且例如对应于用户在触摸屏17上移动手指的粗略方向。

在一个示例中,角度确定单元24基于数据点缓冲器中所保持的数据点中的在时间序列中的前后的数据点的位移方向来确定转动量。优选地,角度确定单元24通过将数据点缓冲器中所保持的数据点中的在时间序列中的前后的、在所确定的自变量的轴上的值之间的正差的数量和负差的数量进行比较,来确定转动量。所确定的转动量是指示是否要使所确定的回归线的斜率转动180度的转动量。

角度确定单元24存储数据点,以从数据点缓冲器中较早存储的数据点起顺次保持数据点。可选地,当将数据点存储在数据点缓冲器中时,角度确定单元24将使得能够识别存储的顺序的识别信息与数据点相关联地存储。如上所述,角度确定单元24以可以识别存储的顺序的方式(即,以可以识别所存储的数据点的时间顺序的方式)将数据点保持在数据点缓冲器中。此时,角度确定单元24可以使用数据点获得时间t的值。

角度确定单元24基于所确定的回归线的斜率和所确定的转动量来计算由数据点的集合指示的角度,并且将该角度确定为用户控制虚拟空间中的被操作对象的角度。

在本实施例中,通过使用在式(1)中表示的aop(x,y)函数来实现由上述的角度确定单元24进行的回归线的斜率的确定、转动量的确定和角度的确定。函数aop(x,y)以在0到360度的范围内的实值的形式计算角度。假定当函数aop(x,y)计算角度时,数据点缓冲器保持n个数据点P(x,y)。此外,n个数据点P

为了情况分类的目的,函数aop(x,y)使用函数rotate(x,y)、函数left(x)和函数down(y)。首先,函数aop(x,y)通过使用函数rotate(x,y)来将x和y中的任一个确定为自变量。

通过式(2)来定义函数rotate(x,y)。

rotate(x,y)=w·(max(x)-min(x))<(max(y)-min(y)) (2)

函数rotate(x,y)确定n个数据点P(x,y)是否主要在y轴方向上移位,并且例如返回真值或假值。n个数据点P(x,y)主要在y轴方向上移位的情况例如是指用户的手指已主要沿垂直方向在触摸屏17上移动的情况。以这种方式,函数rotate(x,y)确定n个数据点P(x,y)是主要在x轴(水平)方向上移位、还是主要在y轴(垂直)方向上移位,由此确定x轴上的值和y轴上的值中的哪个适合作为自变量。

在式(2)中,(max(x)–min(x))表示n个数据点P的x值(x

函数rotate(x,y)在(max(y)–min(y))大于(max(y)–min(y))与变量w的乘积时,满足不等式,其中在这种情况下,函数aop(x,y)进行坐标变换。在这种情况下,函数aop(x,y)通过将y轴视为自变量的轴、将x轴为因变量的轴、并且进一步使用函数down(y),来确定转动量。另一方面,函数rotate(x,y)在(max(y)–min(y))小于或等于(max(x)–min(x))与变量w的乘积时,不满足不等式,其中在这种情况下,函数aop(x,y)不进行坐标变换。在这种情况下,函数aop(x,y)通过将x轴视为自变量的轴、将y轴视为因变量的轴、并且进一步使用函数left(x),来确定转动量。

在未利用变量w对函数rotate(x,y)进行加权的情况下,如果y轴方向上的位移量略大于x轴方向上的位移量,则函数aop(x,y)使得进行坐标变换。通过利用变量w应用权重,在n个数据点P(x,y)的斜率更接近于y轴的情况下,函数aop(x,y)可以进行坐标变换。

例如,由于智能电话通常以纵向使用,因此图17所示的触摸屏17的y轴通常变得基本上平行于重力方向。考虑到触摸屏17在y轴方向上的尺寸大于x轴方向上的尺寸,应优选将变量w设置为大于1的值。作为示例,变量w应优选被设置为2。在另一示例中,在智能电话保持于横向、并且游戏App中所设置的游戏引擎不进行垂直坐标和水平坐标之间的变换的情况下,角度确定单元24将w设置为诸如0.5等的小于1的值。

通过式(3)来表示函数left(x)。

left(x)=|{x′|x′

在函数rotate(x,y)不满足不等式的情况下,函数left(x)判断n个数据点P(x,y)的位移方向是否是-x轴方向(左方向),并且例如返回真值或假值。具体地,函数left(x)计算n个数据点P的x值(x

通过式(4)来表示函数down(y)。

down(y)=|{y′|y′

在函数rotate(x,y)满足不等式的情况下,函数down(y)判断n个数据点P(x,y)的位移方向是否是-y轴方向(向下方向),并且例如返回真值或假值。具体地,函数down(y)计算n个数据点P的y值(y

在以上述方式确定了自变量(自变量的轴)和转动量之后,函数aop(x,y)通过使用最小二乘法来计算斜率。在x被视为自变量且y被视为因变量的情况下,函数aop(x,y)根据式(5)来计算回归线y=ax+b的斜率a。

这里,

在y被视为自变量并且x被视为因变量的情况下,函数aop(x,y)根据式(6)来计算回归线x=cy+d的斜率c。

这里,

角度确定单元24定义变量V,并且在自变量的方差大于或等于V的情况下,通过使用函数aop(x,y)计算并确定角度。在自变量的方差小于V的情况下,角度确定单元24将保持事件输出至状态确定单元25,并且不计算角度。自变量的方差小于V的情况表示n个数据点P(x,y)局部集中。因而,通过定义变量V,角度确定单元24可以在无视过小的手指运动的情况下稳定地计算角度。变量V优选被设置为0.7

在函数rotate(x,y)为假并且函数left(x)为假的情况下,函数aop(x,y)直接计算从回归线的斜率获得的角度。在函数rotate(x,y)为假并且函数left(x)为真的情况下,函数aop(x,y)计算通过向从回归线的斜率获得的角度加上180度而获得的角度。在函数rotate(x,y)为真并且函数down(y)为假的情况下,函数aop(x,y)通过从90度中减去从回归线的斜率获得的角度来计算角度。在函数rotate(x,y)为真并且函数down(y)为真的情况下,函数aop(x,y)通过向如下的角度加上180度来计算角度,该角度是通过从90度中减去从回归线的斜率获得的角度而获得的。

状态确定单元25基于由角度确定单元24按每个预定义的处理时间段所定义的角度,来按每个预定义的处理时间段确定角度和大小。状态确定单元25将所确定的角度和大小输出至应用单元26。代替向应用单元26的直接输出,状态确定单元25可以将指示所确定的角度和大小的信息存储在应用单元26所参考的存储区域中。在一个优选示例中,状态确定单元25是将连续计算出的角度的序列转换成控制器的功能的软件模块。该模块实现为使用角度和时间而根本不使用触摸坐标的状态管理模型(状态机)。

在接收到按每个预定义的处理时间段从角度确定单元24输出的信息时,状态确定单元25根据所接收到的事件来按每个预定义的处理时间段输出虚拟控制器的斜率的状态。虚拟控制器通过软件来实现物理模拟控制器,并且虚拟控制器的斜率对应于物理控制器的操纵杆或控制杆的斜率。状态确定单元25将虚拟控制器的斜率的状态以矢量的形式(即,作为方向(角度)和大小)输出。大小可以是加速信息或速度信息。虚拟控制器的斜率的状态对应于输入至物理模拟控制器的量。

如上所述,状态确定单元25可被视为提供用于解释所生成的触摸事件的含义的状态转变模型。状态确定单元25将虚拟控制器的斜率作为状态进行管理,并且在按每个预定义的处理时间段接收到从角度确定单元24输出的信息时,使得按每个预定义的处理时间段发生状态转变。

在一个示例中,状态确定单元25累积与从角度确定单元24输出的角度有关的信息,并且根据时间来计算向应用单元26的输出。例如,在角度确定单元24按每33ms输出45度持续超过165ms的情况下,状态确定单元25在45度的方向上确定165ms的加速度信息。例如,在从角度确定单元24连续输出相同角度的情况下,状态确定单元25输出指示在该角度的方向上的加速的信息,并且在随后从角度确定单元24输入与上述角度相反180度的角度的情况下,状态确定单元25输出指示减速的信息。利用该结构,可以在不必直接使用实际触摸坐标的情况下,以与状态转变次数相对应的时间段的形式获得向控制器的输入量。

在一个示例中,在接收到从角度确定单元24输出的信息时,状态确定单元25根据所接收到的事件来设置虚拟控制器的斜率的状态,并且将移动事件或加速事件连同指示角度和大小的信息一起输出至游戏应用。具体地,状态确定单元25可以通过使用预定的编程语言来实现模拟物理模拟控制器的加速度处理。

在一个优选示例中,状态确定单元25以矢量的形式保持虚拟控制器的斜率的状态,并且按每个预定义的处理时间段输出所保持的矢量。在从角度确定单元24接收到开始事件的情况下,状态确定单元25开始状态管理。在最初从角度确定单元24接收到角度事件的情况下,状态确定单元25开始保持由所接收到的角度和单个状态转变的大小构成的矢量,并且输出该矢量。在从角度确定单元24又接收到另一角度事件的情况下,状态确定单元25将由所接收到的角度和单次状态转变的大小构成的矢量与内部保持的矢量相加,并且保持并输出如此得到的矢量。状态确定单元25在所输出的矢量的长度超过1.0的情况下,将该矢量的长度归一化为1.0。

例如,当一次从角度确定单元24接收到指示45度的角度信息时,状态确定单元25输出并保持由45度的角度和0.2的大小构成的矢量。当又四次从角度确定单元24接收到指示45度的角度信息时,状态确定单元25保持并输出由45度的角度和1.0的大小的角度构成的矢量。此外,当又一次从角度确定单元24接收到指示45度的角度信息时,状态确定单元25保持并输出由45度的角度和1.0的大小构成的矢量。当接收到指示30度的角度信息时,状态确定单元25将由30度的角度和0.2的大小构成的矢量与由45度的角度和1.0的大小构成的矢量相加到一起,并且保持并输出由如此得到的角度和1.0的大小构成的矢量。此外在这种情况下,由于矢量的大小超过1.0,因此状态确定单元25在输出该矢量时将大小归一化为1.0。

当从角度确定单元24接收保持事件时,状态确定单元25继续保持内部保持的矢量并输出该矢量。当从角度确定单元24接收到停止事件时,状态确定单元25放弃保持内部保持矢量,并且输出零矢量或输出停止事件。

利用该配置,可以在智能电话上实现与经由物理模拟控制器的操作类似的操作。

应用单元26具有在电子装置10上激活的App的功能,并且提供利用该App的服务。在一个优选示例中,应用单元26将从状态确定单元25输出的矢量转换成具体虚拟角色的运动等,这是在普通的游戏App中实现的函数。在App是Web App的情况下,与电子装置10进行通信的服务器具有应用单元26的一部分或全部,并且App相对于该服务器发送数据和接收数据。

以下将说明角度确定单元24使用式(1)中所示的函数aop(x,y)的角度计算的示例。在以下的示例中,假定变量w为2并且自变量的方差大于或等于V,并且假定t1至t4各自表示角度确定单元24计算角度的任意时间。

图5是示出在时间t1在数据点缓冲器中保持的数据点的示例的图。数据点缓冲器中所保持的数据点的集合40由6个数据点P41至P46构成。此外,P41至P46的x坐标值和y坐标值的坐标(x,y)分别是P41(x

最初,函数aop(x,y)通过使用函数rotate(x,y)来将abs(max(x)–min(x))和abs(max(y)–min(y))彼此比较。从图6理解,P46和P41的x坐标值之间的差x

然后,函数aop(x,y)通过使用函数left(x)来计算在时间序列中的前后的值之间的差(x

在上述示例中,函数rotate(x,y)为假,并且函数left(x)为假。因而,函数aop(x,y)从数据点的集合40获得图7所示的回归线81,并且如图8所示从回归线81的斜率计算角度91。

图9是示出在时间t2在数据点缓冲器中保持的数据点的示例的图。数据点缓冲器中所保持的数据点的集合60由六个数据点P61至P66构成。P61、P62、…、P66的x坐标值和y坐标值分别与P46、P45、…、P41的x坐标值和y坐标值相同,并且假定这些数据点是按P61、P62、…、P66的顺序存储的。

类似于图5中的示例的情况,函数rotate(x,y)不满足不等式,因而返回假值。然后,函数aop(x,y)通过使用函数left(x)来计算在时间序列中的前后的值之间的差。根据图9,所有的差都为负。因而,函数left(x)满足不等式并且返回真值。

在上述示例中,函数rotate(x,y)为假,并且函数left(x)为真。因而,函数aop(x,y)从数据点的集合60获得图9所示的回归线82,并且如图10所示计算通过向从回归线82的斜率计算出的角度92a加上180度而获得的角度92b。这里,尽管回归线82的斜率与回归线81的斜率相同、并且角度91与角度92a相同,但由于数据点缓冲器存储数据点的顺序相反,因此可以确认函数aop(x,y)所计算出的角度相差180度。

图11是示出在时间t3在数据点缓冲器中保持的数据点的示例的图。数据点缓冲器中所保持的数据点的集合70由六个数据点P71至P76构成。此外,P71至P76的x坐标值和y坐标值分别为P71(x

从图12可以理解,P75和P71的x坐标值之间的差x

然后,函数aop(x,y)通过使用函数down(y)来计算在时间序列中的前后的值之间的差(y

在上述示例中,函数rotate(x,y)为真,并且函数down(y)为假。因而,函数aop(x,y)从数据点的集合70获得图13所示的回归线83,并且如图13所示计算通过从90度中减去从回归线83的斜率计算出的角度93a而获得的角度93b。这里,图13所示的角度93a被示出为对应于如下情况下的位置:将从在y被视为自变量且x被视为因变量的情况下的回归线83的斜率计算出的角度变换回到x被视为自变量且y被视为因变量的坐标。

图14是示出在时间t4在数据点缓冲器中保持的数据点的示例的图。时间t4是在从时间t1起经过了时间Δt之后的时间。数据点缓冲器中所保持的数据点的集合40'由八个数据点P45至P52构成。此外,P45至P52的x坐标值和y坐标值分别为P45(x

从图15可以理解,P52和P45的x坐标值之间的差x

然后,函数aop(x,y)通过使用函数down(y)来计算出在时间序列中的前后的值之间的差(y

在上述示例中,函数rotate(x,y)为真,并且函数down(y)为真。因而,函数aop(x,y)从数据点的集合40'获得图16所示的回归线84,并且如图17所示计算通过向角度94b加上180度而获得的角度94c,其中角度94b是从90度中减去从回归线83的斜率计算出的角度94a所计算出的。

图18是示出根据本发明实施例的电子装置10如何基于数据点的集合120来控制虚拟角色121的图。图18示出使与由对触摸屏17的用户操作所产生的触摸事件相对应的数据点可视化的数据点的集合120。电子装置10基于由数据点的集合120指示的角度122来控制作为被操作对象的虚拟角色121的诸如步行、跑步和切换方向等的运动。

图19是根据本发明实施例的利用角度确定单元24的信息处理的流程图。当生成触摸事件并且角度确定单元24从该触摸事件获取数据点时,该流程图开始。

在步骤101中,角度确定单元24将所获得的数据点存储在数据点缓冲器中。此时,角度确定单元24将如下的T和D与正存储的数据点相关联,其中:T以毫秒为单位指示在数据点的存储之后所经过的时间,并且D以毫秒为单位指示数据点可以存储在数据点缓冲器中的时间段(保持寿命)。

然后,在步骤102中,角度确定单元24向状态确定单元25输出开始事件。

然后,在步骤103中,角度确定单元24判断是否生成了触摸事件。步骤103是在从该流程图开始起的I ms之后执行的。在生成了触摸事件的情况下,流程图进入步骤104,并且在未生成触摸事件的情况下,流程图进入步骤106。

在步骤104中,角度确定单元24判断所生成的触摸事件是否是触摸结束。在所获得的触摸事件是触摸结束的情况下,终止该流程图。在所获得的触摸事件不是触摸结束的情况下,该流程图进入步骤105。

在步骤105中,角度确定单元24从所生成的触摸事件获得数据点,并且将该数据点存储在数据点缓冲器中。此时,角度确定单元24将如下的T和D与正存储的数据点相关联,其中:T以毫秒为单位指示在数据点的存储之后所经过的时间,并且D以毫秒为单位指示数据点可以存储在数据点缓冲器中的时间段。

然后,在步骤106中,角度确定单元24终止数据点缓冲器中所保持的数据点中的、经过时间段T大于或等于变量D的数据点的保持。角度确定单元24针对数据点缓冲器中所存储的各个数据点将经过时间T与变量D进行比较,并且终止经过时间大于或等于变量D的各数据点的保持。

然后,在步骤107中,角度确定单元24判断数据点缓冲器中所保持的数据点的数量n是否大于或等于变量B的值。在数量n大于或等于变量B的情况下,该流程图进入步骤108,并且在数量n小于变量B的情况下,该流程图进入步骤113。

在步骤108中,角度确定单元24基于数据点缓冲器中所保持的数据点中的x轴上的值的位移量和y轴上的值的位移量,来将x轴和y轴中的一个轴确定为自变量的轴。同时,角度确定单元24将另一轴确定为因变量的轴。

然后,在步骤109中,在步骤108中将x轴确定为自变量的轴的情况下,角度确定单元24通过使用式(5)计算斜率的角度来确定回归线的斜率的角度。在一个示例中,当通过使用式(5)计算斜率的角度时,角度确定单元24在0到90度和270到360度的范围内计算该角度。在步骤108中将y轴确定为自变量的轴的情况下,角度确定单元24通过使用式(6)计算斜率的角度,并且从90度中减去所计算出的角度,由此确定回归线的斜率的角度。在一个示例中,当通过使用式(6)计算斜率的角度时,角度确定单元24在0到90度和270到360度的范围内计算该角度。

然后,在步骤110中,角度确定单元24基于数据点缓冲器中所保持的数据点的集合的位移方向,来确定指示是否要使所确定的回归线的斜率转动180度的转动量。在一个示例中,在步骤108中将x轴确定为自变量的轴的情况下,角度确定单元24计算x轴上的在时间序列中的前后的值之间的各个差。角度确定单元24在所计算出的负差的数量大于所计算出的正差的数量的情况下,将转动量确定为180度,并且在前者小于后者的情况下,将转动量确定为0度。在一个示例中,在步骤108中将y轴确定为自变量的轴的情况下,角度确定单元24计算y轴上的在时间序列中的前后的值之间的各个差。角度确定单元24在所计算出的负差的数量大于所计算出的正差的数量的情况下,将转动量确定为180度,并且在前者小于后者的情况下,将转动量确定为0度。

然后,在步骤111中,角度确定单元24基于所确定的回归线的斜率和所确定的转动量来确定角度。具体地,角度确定单元24通过将所确定的转动量相加至与所确定的回归线的斜率相对应的角度来确定角度。例如,在转动量为0度的情况下,角度确定单元24所确定的角度是与所确定的回归线的斜率相对应的角度。角度确定单元24将角度事件连同所确定的角度一起输出至状态确定单元25,并且进入步骤112。

在步骤107中数量n小于变量B的情况下,在步骤113中,角度确定单元24向状态确定单元25输出保持事件,并且进入步骤112。

在步骤112中,该流程图除非例如由于游戏应用的终止而终止,否则返回到步骤103。角度确定单元24按每I ms执行步骤103至112的处理。

当流程图终止时,角度确定单元24删除数据点缓冲器中所保持的所有数据点。

接着,将说明根据本发明实施例的电子装置10的主要操作和优点。本实施例利用投影型静电电容触摸屏的特征,其中当用手指滑动触摸屏17时,在诸如100ms等的极短时间段内生成六个或更多个触摸事件。由电子装置10实现的软件的系统架构具有角度确定单元24、状态确定单元25和应用单元26分别对应于第一层、第二层和第三层的三层结构,其中第三层对应于游戏应用。第一层以360度的线性角度的形式针对所生成的多个触摸事件的集合(数据点的集合)计算滑动方向。由于可以使用在极短时间段内生成的触摸事件,因此第一层可以继续高速计算角度。此外,通过获得由数据点缓冲器中仅在预定义的极短保持时间段(例如,165ms)内保持的数据点的集合所指示的角度,第一层可以在不必使用基准点的情况下获得由对触摸屏17进行了触摸操作的用户所意图的方向的角度。

本实施例中的电子装置10是基于如下的概念设计的:即使诸如滑动等的用户操作复杂,也在诸如100ms等的极短时间段内,也可以在具有恒定速度的线性运动上对用户操作进行建模,因而可以通过连续地计算具有恒定速度的运动的角度的值来预测和近似任意非线性功能(≈人类操作)。

第一层在变量I的值被设置为比较大的情况下,以比较低的频率计算角度。在这种情况下,即使紧接在开始触摸事件的生成之后(例如,即使紧接在用户开始了操作之后),第一层也在数据点缓冲器中保持了比较大数量的数据点的状态下计算角度。如上所述,通过将变量I的值设置为比较大,可以计算比较宽松地反映出用户操作的角度。另一方面,第一层在变量I的值被设置为比较小的情况下,以比较高的频率计算角度。在这种情况下,紧接在开始触摸事件的生成之后(例如,紧接在用户开始了操作之后),第一层在数据点缓冲器中保持比较少数量的数据点的状态下计算角度。如上所述,通过将变量I的值设置为比较小,可以计算比较立即反映出用户操作的角度。

第一层在计算由数据点的集合指示的角度时,通过使用最小二乘法来计算回归线的斜率。在x被固定为自变量并且y被固定为因变量的情况下,例如,在斜率在沿着y轴的方向上的情况下难以计算斜率。因而,第一层在计算回归线的斜率之前,根据数据点的位移量来确定自变量和因变量。利用该结构,第一层可以稳定地计算回归线的斜率。

在计算由数据点的集合指示的角度时,第一层基于与用户在触摸屏17上移动手指的大致方向相对应的数据点的集合的位移方向,来确定指示是否要使所确定的回归线的斜率转动180度的转动量。通过确定通过使用最小二乘法所计算出的、根据回归线的斜率不能把握的转动量,可以获得对触摸屏17进行了触摸操作的用户所意图的角度。

第一层按每个预定义的处理时间段(例如,按作为预定义的处理时间段的与游戏应用的帧速率相对应的每个时间段),针对数据量的集合来计算与滑动方向相对应的角度。第二层通过使用连续输出的角度信息来按每个预定义的处理时间段确定指示虚拟控制器的倾斜的状态的矢量的量(角度和大小),并将该矢量的量输出到游戏应用。利用该结构,在本实施例中,可以基于按每个预定义的处理时间段所计算出的角度来向游戏应用提供输入。此外,利用该结构,在不要求任何层使用过去触摸的坐标作为参考点的情况下,可以按由第一层计算出的帧速率以高频率基于准确的移动角度来提供输入。如上所述,在本实施例中,电子装置10在不使用在现有技术中的虚拟控制器中已使用的诸如开始点(开始坐标)和结束点(结束坐标)等的点的空间概念的情况下,计算角度。

此外,在本实施例中,与现有技术中的虚拟控制器(即,使用基于基准坐标和当前指示坐标之间的位置关系所获得的矢量的虚拟控制器)相反,不涉及基准坐标的概念,这使得与定义了基准坐标的虚拟控制器相比可以提供更高的响应性。特别地,在用于切换虚拟角色等的方向的操作的情况下,即使用户在与切换之前的方向大不相同的方向上对触摸屏进行操作,由于不缺乏当前指示坐标接近基准坐标的概念,因此也可以通过快速响应于用户操作的意图来切换方向,这是相当有利的。此外,利用上述结构,允许操作智能电话的用户单手进行操作。这使得可以解决如下的问题:用户在利用现有技术中的虚拟操纵杆进行操作时,需要始终知晓基准坐标,因而存在难以单手进行操作的情况。如上所述,在本实施例中,实现了能够进行更快且更直观的操作的虚拟控制器。

此外,在本实施例中,与现有技术中的虚拟控制器相反,由于输入不是基于从基准坐标起的手指的移动距离,因此电子装置10可以经由手指的移动量较少的操作来实现用户预期的操作。因而,与现有技术相比,可以实现更小的安装面积。例如,不论触摸屏17的大小如何,都可以实现相同的可操作性。

此外,由于由本实施例中的电子装置10提供的虚拟控制器技术基于从滑动操作的角度识别的数学模型,因此该技术可应用于各种类型,诸如360度的方向的移动、加速和减速、以及战斗游戏等中的命令的输入等。

除非另外具体陈述,否则上述的操作和优点也同样适用于其它实施例和其它示例。

本发明的另一实施例可以是用于实现上述本发明实施例的功能或在流程图中示出的信息处理的程序、或者存储有该程序的计算机可读存储介质。此外,本发明的另一实施例可以是用于实现上述本发明实施例的功能或在流程图中示出的信息处理的方法。此外,本发明的另一实施例可以是能够向计算机提供用于实现上述本发明实施例的功能或在流程图中示出的信息处理的程序的服务器。此外,本发明的另一实施例可以是用于实现上述本发明实施例的功能或在流程图中示出的信息处理的虚拟机。

现在将说明本发明的实施例的变形例。只要没有发生矛盾,就可以将以下所述的变形例适当地组合并应用于本发明的任何实施例。

在一个变形例中,在电子装置10中安装有游戏应用,该游戏应用在虚拟空间中布置虚拟对象,并且在使得游戏进行的同时,向用户呈现由布置在虚拟空间中的虚拟照相机所拍摄到的游戏图像。当执行游戏应用时,电子装置10在触摸屏17上显示通过利用布置在虚拟空间中的虚拟照相机拍摄虚拟空间中所布置的虚拟对象等所获得的游戏图像,并且根据用户操作来控制虚拟照相机。如上所述,当执行游戏应用时,电子装置10根据用户操作来提供用于控制作为被操作对象的虚拟照相机的虚拟控制器。虚拟照相机的控制是指控制虚拟空间中所布置的虚拟照相机的运动或视野区域。

图20是示出拍摄根据本发明实施例的电子装置10所显示的图像的、虚拟空间中所布置的虚拟照相机131的图。图20示出虚拟照相机131的位置和虚拟照相机132的观看方向132。观看方向132是以视点设置在虚拟照相机131的位置处的三维矢量的形式定义的。利用从虚拟照相机131朝向观看方向132的一定视角来定义视野区域,并且在该视野区域中定义构成垂直于观看方向132的平面的二维画面133。虚拟空间中的虚拟对象被投影到二维画面133上,由此形成二维图像。

在一个变形例中,输入装置12和显示装置13具有布置在不同位置的单独形式。在这种情况下,输入装置12是触摸屏或者具有与投影型静电电容触摸屏的功能等同的功能的装置。显示装置13是在处理器11的控制下向电子装置10的用户显示应用画面等的装置,这就足够了。例如,显示装置13是液晶显示器、使用有机EL的显示器或等离子体显示器。

在一个变形例中,角度确定单元24通过使用除最小二乘法以外的已知方法来计算回归线的斜率。在这种情况下,角度确定单元24不确定指示是否要使所确定的回归线的斜率转动180度的转动量,因而不确定自变量的轴和因变量的轴。例如,可以使用诸如卡尔曼滤波器或粒子滤波器等的算法。

在一个变形例中,角度确定单元24不定义变量D,并且不终止数据点缓冲器中所保持的数据点中的被判断为预定义保持时间段已到期的数据点的保持。在这种情况下,角度确定单元24按由变量I定义的每个时间,在参考特定时间带中所存储的数据点的同时确定角度。

在一个变形例中,角度确定单元24不定义变量V。在这种情况下,不论自变量的方差的值如何,角度确定单元24都通过使用函数aop(x,y)来计算并确定角度。

在一个变形例中,电子装置10配备有能够确定重力方向的加速度传感器。角度确定单元24通过使用从加速度传感器获得的信息来确定权重系数。例如,在智能电话保持于纵向、并由此触摸屏17的y轴是重力方向的情况下,角度确定单元24将w确定为2。另一方面,在智能电话保持于横向、并由此触摸屏17的x轴是重力方向、并且游戏应用中所设置的游戏引擎不进行垂直坐标和水平坐标之间的变换的情况下,角度确定单元24将w确定为诸如0.5等的小于1的值。

在一个变形例中,当获得触摸事件时,角度确定单元24获得由两个变量构成的数值的集合(x,y),并且在不与数据点获得时间t相关联的情况下,将由两个变量构成的数值的集合(x,y)存储在数据点缓冲器中。例如,角度确定单元24可以将与数据点获得时间t相对应的信息存储在除数据点缓冲器以外的存储装置14内的存储区域等中,并且可以将该信息与数据点缓冲器中所存储的数据相关联地进行管理。

在上述的处理或操作中,只要在处理或操作中没有出现矛盾(诸如某步骤利用在该步骤中尚不可用的数据的矛盾等),就可以自由地修改处理或操作。此外,上述的示例是用于说明本发明的示例,并且本发明不限于这些示例。本发明可以以各种形式体现,只要没有背离本发明的主旨即可。

10 电子装置

11 处理器

12 输入装置

13 显示装置

14 存储装置

15 通信装置

16 总线

17 触摸屏

21 输入单元

22 显示单元

23 控制单元

24 角度确定单元

25 状态确定单元

26 应用单元

31、33、35 角度

32、34、36 方向

81、82、83、84 回归线

91、92a、92b、93a、93b、94a、94b、94c 角度

120 集合

121 虚拟角色

122 角度

131 虚拟照相机

132 观看方向

133 二维画面

相关技术
  • 电子装置的运行状态估计设备、电子装置的运行状态估计方法、程序、电子装置的特征向量登记设备、电子装置的特征向量登记方法、服务器装置和电子装置的运行状态估计系统
  • 影像处理方法、电子装置、电子装置可读取的储存媒体与应用于电子装置的程序
技术分类

06120112381707