一种基于手势控制3D模型的系统及方法与流程

文档序号:11707286阅读:258来源:国知局
一种基于手势控制3D模型的系统及方法与流程

本发明涉及3d模型控制领域,更具体地说,涉及一种基于手势控制3d模型的系统及方法。



背景技术:

在pc机中的3d模型一般通过鼠标来控制,即鼠标的左按键、右按键以及中间滚轮来分别控制3d模型的平移、旋转以及缩放。随着3d模型在触摸屏的设备中迅速发展,人们希望在触摸屏中能够同样便捷地对3d模型进行操作。由于当前针对触摸屏的3d模型操作引擎只支持两种:一种是单指在屏幕移动,另一种是双指在屏幕上移动;但如果要同时支持平移、旋转、缩放三种常用的操作,仅靠两种手势是做不到的。因此,当前的触摸屏中对3d模型进行操作一般有两类组合:一类是以一种是单指在屏幕移动以控制3d模型平移以及双指在屏幕上移动以控制3d模型缩放,另一类是以一种是单指在屏幕移动以控制3d模型平旋转以及双指在屏幕上移动以控制3d模型缩放。无法同时支持对3d模型的平移、旋转以及缩放三种操作。

中国专利申请,申请号201510063528.8,公开日2016年10月5日,以及申请号201210063146.1,公开日2012年09月12日,公开了一种智能穿戴设备及基于智能穿戴设备实现手势输入的方法,所述智能穿戴设备为视觉类智能穿戴设备,在智能穿戴设备的显示器为透明的情况下,所述方法包括:获取在预置检测区中位移的手相对于智能穿戴设备的第一空间位置信息,若根据所述第一空间位置信息判定符合触发任一预设功能的条件,则触发实现对应的功能,以完成基于智能穿戴设备的手势输入,以此可丰富智能穿戴设备的功能,增加智能穿戴设备的应用场合,更好地实现基于智能穿戴设备与其他设备之间进行交互,且操作方式可以脱离触摸屏对3d模型进行控制。但此方案有如下缺陷:1)此方案需要借助额外的预置传感器以感知具体的手势,此增加了额外的成本;2)此方案需要通过摄像头的不断地截图进行比对以控制手势的精确位移,因图像比较方案会导致精确度以及性能都会大大降低,且需要消耗很大的内存。

中国专利申请,申请号201010257613.5,公开日2012年03月14日,公开了通过电子设备屏幕的手势控制设备操作的方法和装置,所述的方法包括:检测手指在电子设备屏幕上针对多个操作对象其中之一的拖动手势的起始点;跟随该拖动手势,在预设轨迹上移动该多个操作对象;检测该拖动手势的结束点,让该多个操作对象随着该拖动手势的结束停留在当前的预停留位置。此可实现对触摸屏内的对像的平移功能,并形成一定的拖拽效果,但此方案无法满足同时支持对3d模型的平移、旋转以及缩放三种操作。

中国专利申请,申请号201110046519.x,公开日2011年07月13日,公开了用于触摸显示器的边框手势,所述的方法包括:使用设备的边框来扩展可通过使用所谓的边框手势来访问的功能。在至少某些实施例中,可以借助边框使用屏幕外运动来通过边框手势创建屏幕输入。边框手势可以包括单手指边框手势、多手指/同手边框手势、和/或多手指异手边框手势。此方案可以实现基于触摸显器的边框的操作手势以控制图片、游戏物体等从触摸屏移入或移出,但此方案无法满足同时支持对3d模型的平移、旋转以及缩放三种操作。

中国专利申请,申请号201410139930.5,公开日2014年09月24日,公开了一种基于手势控制屏幕画面移动的方法,所述的方法包括:通过触摸屏获取至少一接触式手势;检测并识别所述接触式手势是否与至少一预设条件相符;若相符,则响应于所述预设条件,所述触摸屏的实时画面将以屏幕中点为轴心自动旋转一预设度数转化为至少一预设画面。此方案可以有效解决用户无法自由切换屏幕横竖屏显示模式的问题,实现随时由用户自主切换屏幕横竖屏显示模式的功效,但此方案无法满足同时支持对3d模型的平移、旋转以及缩放三种操作。

中国专利申请,申请号201510731771.2,公开日2016年02月17日,公开了一种采用手势缩放屏幕图像的方法,所述的方法包括::检测手掌形态;当所述手掌形态从第一手型变换为第二手型时,将屏幕图像设置为可缩放状态;若所述手掌形态保持为第二手型,并在预设方向上发生位移,则放大或缩小所述屏幕图像,此方案是通过检测手掌形态控制图像的缩放,但此方案无法满足同时支持对3d模型的平移、旋转以及缩放三种操作。



技术实现要素:

1.要解决的技术问题

针对现有技术中存在的两指间距变化以控制3d模型的缩放;无法同时支持平移、旋转、缩放三种常用操作的问题,本发明提供了一种基于手势控制3d模型的系统及方法。它可以实现只支持两根手指的操作引擎的平移、旋转、缩放三种常用的操作的实现。

2.技术方案

本发明的目的通过以下技术方案实现。

一种基于手势控制3d模型的系统,包括,

屏幕事件捕捉器,实时捕捉触摸屏上手指事件,并实时获取在屏幕上手指的个数及对应手指在屏幕上的坐标;

手势处理器,根据从屏幕事件捕捉器获取的手指个数、事件、屏幕坐标根据计算出的屏幕坐标位移来控制3d模型的具体的变化向量;

3d模型渲染器,根据操作指令及从手势处理器获取的3d模型的变化向量来控制3d模型在屏幕上的展示;

控制指令映射器,记录手势对应的3d模型控制指令;

屏幕事件捕捉器将捕捉到的手指信息传递给手势处理器,手势处理器将计算后的变化向量传输给3d模型渲染器,3d模型渲染器根据控制指令映射器所对应的控制指令,控制屏幕上的显示。

更进一步的,所述的屏幕事件捕捉器的手指事件为手指在触摸屏上操作的事件,包括但不限于手指点击屏幕、手指在屏幕上滑动、以及手指离开屏幕事件。手指支持方式多,更方便识别。

更进一步的,控制指令映射器中记录一个手指静止,另一个手指滑动的手势对应的3d模型控制指令,此控制指令包括:控制3d模型平移、控制3d模型旋转。指令可控制方式多样,方便快捷。

更进一步的,控制指令映射器为3d模型渲染器提供“根据手势查询对应的控制指令”的服务。获取指令直接,获取速度快,处理效率高。

一种基于手势控制3d模型的方法,步骤如下:

步骤1、屏幕事件捕捉器地从触摸屏中获取事件要素;

步骤2、手势处理器检测手指个数,根据手指个数判断触摸在屏上的手指数是否等于2,如果否,则结束流程;如果是,则继续向下处理;

步骤3、手势处理器检测手势,从手指事件以及对应手指的屏幕坐标中分别对其中两个手指进行判断,如果两个手指皆为移动,则结束流程;如果两个手指皆为静止,则返回至步骤1;如果一个手指静止一个手指移动,则继续向下处理;

步骤4、手势处理器计算手指移动后的坐标偏移向量;

步骤5、手势处理器计算3d模型控制值;

步骤6、3d模型渲染器对3d模型进行绘制,从控制指令映射器中获取“一个手指静止,另一个手指滑动”的手势对应的3d模型控制指令,如果控制指令为移动,则对3d模型进行移动操作;如果控制指令为旋转,则对3d模型进行旋转操作。

更进一步的,步骤1中,其事件要素包括手指个数、对应手指事件、对应手指的屏幕坐标。

更进一步的,步骤3中,手指移动判断通过抖动值确定,手指在屏幕上的坐标与前一次坐标相减的位移值小于抖动值即认为此手指为静止,否则认为手指为移动。

更进一步的,步骤4中,将移动手指在屏幕上的本次坐标与前一次坐标相减,得到此手指的在屏幕的坐标偏移向量,即,在x轴上的偏移向量为δx,在y轴上的偏移向量为δy,此向量具有方向性,即正方向和负方向,此向量的方向设为γ。

更进一步的,步骤5,计算3d模型控制具体方法如下,将偏移向量δx乘以一个比值kx,得到控制值vx;将偏移向量δy乘以一个比值ky,得到控制值vy;比值kx、ky为任意实数,根据不同屏幕设定不同。设置方式简单,移动方便。

更进一步的,步骤6,具体控制方式如下,取控制值vx、vy的绝对值,即以控制值vx、vy对应的正实数来控制3d渲染器对3d模型的移动位置或旋转角度,以向量方向γ控制3d渲染器在屏幕中的移动方向,此移动方向控制可以但不限于:正方向为向右或向上平移,负方向为向左或向下平移;以向量方向γ控制3d渲染器在屏幕中旋转方向,此旋转方向控制可以但不限于:正方向为逆时针旋转,负方向为顺时针。设置方式简单,移动方便。

3.有益效果

相比于现有技术,本发明的优点在于:

(1)本发明的一种基于手势控制3d模型的系统及方法,它可以实现一个手指静止,另一个手指滑动的手势操作方法,最多通过2根手指就可以完成对3d模型的平移、旋转和缩放,即三种手势:一根手指滑动、两根手指皆动、一根手指动一根手指不动,分别控制平移、旋转和缩放,突破了现有手势操作方法2根手指不能完成上述功能的缺点,具有了新的效果;

(2)针对只支持两种手势的操作引擎,本方案可以实现平移、旋转、缩放三种常用的操作,利用率高,降低了操作引擎的成本,效率高;

(3)本发明采用了手势处理器全新机制,根据从屏幕事件捕捉器获取的手指个数、事件、屏幕坐标根据计算出的屏幕坐标位移来控制3d模型的具体的变化向量,通过向量的变化判断手指的移动,确定手指的手指变化;

(4)手势处理器检测手势时候加入抖动值的判断,抖动值一般是预先设定的,一般抖动值设置为2毫米,此值可以根据不同的屏而设置不同的值,屏幕大设定值相应的大,屏幕小设定值相应的小,防止手指抖动导致误判;

(5)控制指令映射器不仅仅给出对应指令,在必要时候,为3d模型渲染器提供“根据手势查询对应的控制指令”的服务,查询速度快效果好;

(6)本发明的3d模型控制方法,控制简单,判断速度快,成本低,易于在移动互联网中迅速推广。

附图说明

图1为本发明的手势示意图;

图2为手势操作3d模型系统的模块图;

图3为本发明的控制流程图。

具体实施方式

下面结合说明书附图和具体的实施例,对本发明作详细描述。

实施例1

本发明构建了一种新的手势控制系统,基于一个手指静止,另一个手指滑动的手势方法,以滑动手指的相对坐标来控制3d模型的平移或旋转,如图2所示,一种基于手势控制3d模型的系统,包括屏幕事件捕捉器,实时捕捉触摸屏上手指事件,并实时获取在屏幕上手指的个数,及对应手指在屏幕上的坐标;并将此所捕捉到的手指信息传递给手势处理器;所谓手指事件就是手指在触摸屏上操作的事件,此事件包括但不限于手指点击屏幕、手指在屏幕上滑动、手指离开屏幕等事件;

手势处理器,根据从屏幕事件捕捉器获取的手指个数、事件、屏幕坐标根据计算出的屏幕坐标位移来控制3d模型的具体的变化向量;并将此计算后的变化向量传输给3d模型渲染器;

3d模型渲染器,根据操作指令及从手势处理器获取的3d模型的变化向量来控制3d模型在屏幕上的展示;

控制指令映射器,记录手势对应的3d模型控制指令;控制指令映射器为3d模型渲染器提供“根据手势查询对应的控制指令”的服务,控制指令映射器中记录一个手指静止,另一个手指滑动的手势对应的3d模型控制指令,此控制指令包括:对3d模型平移、对3d模型旋转。

屏幕事件捕捉器将捕捉到的手指信息传递给手势处理器,手势处理器将计算后的变化向量传输给3d模型渲染器,3d模型渲染器控制屏幕上的显示。

通过上述系统,可以实现对3d模型进行手势的直接控制,基于一个手指静止,另一个手指滑动的手势方法,控制3d模型的平移、旋转。

实施例2

如图1、3所示,一种基于手势控制3d模型的方法,步骤如下:

步骤1、屏幕事件捕捉器地从触摸屏中获取事件要素;事件要素包括手指个数、对应手指事件、对应手指的屏幕坐标。

步骤2、手势处理器检测手指个数,根据手指个数判断触摸在屏上的手指数是否等于2,如果否,则结束流程;如果是,则继续向下处理;

步骤3、手势处理器检测手势,从手指事件以及对应手指的屏幕坐标中分别对其中两个手指进行判断,如果两个手指皆为移动,则结束流程;如果两个手指皆为静止,则返回至步骤1;如果一个手指静止一个手指移动,则继续向下处理;手指移动判断通过抖动值确定,手指在屏幕上的坐标与前一次坐标相减的位移值小于抖动值即认为此手指为静止,否则认为手指为移动。抖动值一般是预先设定的,一般抖动值设置为2毫米,此值可以根据不同的屏而设置不同的值,屏幕大设定值相应的大,屏幕小设定值相应的小,防止手指抖动导致误判。

步骤4、手势处理器计算手指移动后的坐标偏移向量;将移动手指在屏幕上的本次坐标与前一次坐标相减,得到此手指的在屏幕的坐标偏移向量,即,在x轴上的偏移向量为δx,在y轴上的偏移向量为δy,此向量具有方向性,即正方向和负方向,此向量的方向设为γ。

步骤5、手势处理器计算3d模型控制值;计算3d模型控制具体方法如下,将偏移向量δx乘以一个比值kx,得到控制值vx;将偏移向量δy乘以一个比值ky,得到控制值vy;比值kx、ky为任意实数,根据不同屏幕设定不同。

步骤6、3d模型渲染器对3d模型进行绘制,从控制指令映射器中获取“一个手指静止,另一个手指滑动”的手势对应的3d模型控制指令,如果控制指令为移动,则对3d模型进行移动操作;如果控制指令为旋转,则对3d模型进行旋转操作。具体控制方式如下,取控制值vx、vy的绝对值,即以控制值vx、vy对应的正实数来控制3d渲染器对3d模型的移动位置或旋转角度,以向量方向γ控制3d渲染器在屏幕中的移动方向,此移动方向控制可以但不限于:正方向为向右或向上平移,负方向为向左或向下平移;以向量方向γ控制3d渲染器在屏幕中旋转方向,此旋转方向控制可以但不限于:正方向为逆时针旋转,负方向为顺时针。

完成对3d模型的相应操作,操作快捷方便,效率高。

实施例3

本3d模型控制系统,还包括一个手指静止一个手指滑动的手势控制3d模型平移,单指移动的手势控制3d模型旋转,双指同时移动的手势控制3d模型缩放,具体实施方式如下:

控制指令映射器:记录手势对应的3d模型控制指令的对应关系,即:“一个手指静止,另一个手指滑动”的手势对应的3d模型控制指令为3d模型平移,“仅有一个手指且此手指滑动”的手势对应的3d模型控制指令为3d模型旋转,“两个手指同时滑动”的手势对应的3d模型控制指令为3d模型缩放;

步骤1、屏幕事件捕捉器地从触摸屏中获取事件要素,其事件要素包括:手指个数、对应手指事件、对应手指的屏幕坐标;

步骤2、手势处理器检测手指个数;根据手指个数判断触摸在屏上的手指数是否等于2,如果手指数为1且手指移动,则执行3d模型的平移逻辑,因为手指数为1且手指移动的手势不是本发明的创新部分,因此此处不作详述;如果手指数为2,则继续执行步骤3;否则结束流程;

步骤3、手势处理器检测手势;从手指事件以及对应手指的屏幕坐标中分别对其中两个手指进行判断:本手指在屏幕上的本次坐标与前一次坐标相减的位移值小于抖动值2毫米,即认为此手指为静止,否则认为手指为移动。如果两个手指皆为移动,则执行3d模型的缩放逻辑;如果两个手指皆为静止,则返回至步骤1;如果一个手指静止一个手指移动,则继续向下处理;

步骤4、手势处理器计算手指移动后的坐标偏移向量,将移动手指在屏幕上的本次坐标与前一次坐标相减,得到此手指的在屏幕的坐标偏移向量,即,在x轴上的偏移向量为δx,在y轴上的偏移向量为δy,此向量都是带方向的,即正方向和负方向,假设此向量的方向为γ;

步骤5、手势处理器计算3d模型控制值,将偏移向量δx乘以一个比值kx,得到控制值vx;将偏移向量δy乘以一个比值ky,得到控制值vy;比值kx、ky可以是任意实数;

步骤6、3d模型渲染器对3d模型进行绘制;取控制值vx、vy的绝对值,即以控制值vx、vy对应的正实数来控制3d渲染器对3d模型的移动位置,以向量方向γ控制3d渲染器在屏幕中的移动方向,此移动方向控制可以但不限于:正方向为向右或向上平移,负方向为向左或向下平移;从控制指令映射器中获取“一个手指静止,另一个手指滑动”的手势对应的3d模型控制指令,此控制指令为移动,则对3d模型进行移动操作。

实施例4

本3d模型控制系统,还包括一个手指静止一个手指滑动的手势控制3d模型旋转,单指移动的手势控制3d模型平移,双指同时移动的手势控制3d模型缩放,具体实施方式如下:

控制指令映射器:记录手势对应的3d模型控制指令的对应关系,即:“一个手指静止,另一个手指滑动”的手势对应的3d模型控制指令为3d模型旋转,“仅有一个手指且此手指滑动”的手势对应的3d模型控制指令为3d模型平移,“两个手指同时滑动”的手势对应的3d模型控制指令为3d模型缩放;

步骤1、屏幕事件捕捉器地从触摸屏中获取事件要素,其事件要素包括:手指个数、对应手指事件、对应手指的屏幕坐标;

步骤2、手势处理器检测手指个数;根据手指个数判断触摸在屏上的手指数是否等于2,如果手指数为1且手指移动,则执行3d模型的旋转逻辑;如果手指数为2,则继续执行步骤3;否则结束流程;

步骤3、手势处理器检测手势;从手指事件以及对应手指的屏幕坐标中分别对其中两个手指进行判断:本手指在屏幕上的本次坐标与前一次坐标相减的位移值小于抖动值2毫米,即认为此手指为静止,否则认为手指为移动;如果两个手指皆为移动,则执行3d模型的缩放逻辑;如果两个手指皆为静止,则返回至步骤1;如果一个手指静止一个手指移动,则继续向下处理;

步骤4、手势处理器计算手指移动后的坐标偏移向量;将移动手指在屏幕上的本次坐标与前一次坐标相减,得到此手指的在屏幕的坐标偏移向量,即,在x轴上的偏移向量为δx,在y轴上的偏移向量为δy,此向量都是带方向的,即正方向和负方向,假设此向量的方向为γ;

步骤5、手势处理器计算3d模型控制值。将偏移向量δx乘以一个比值kx,得到控制值vx;将偏移向量δy乘以一个比值ky,得到控制值vy;比值kx、ky可以是任意实数;

步骤6、3d模型渲染器对3d模型进行绘制;取控制值vx、vy的绝对值,即以控制值vx、vy对应的正实数来控制3d渲染器对3d模型的旋转角度,以向量方向γ控制3d渲染器在屏幕中的旋转方向,此旋转方向控制可以但不限于:正方向为逆时针旋转,负方向为顺时针;从控制指令映射器中获取“一个手指静止,另一个手指滑动”的手势对应的3d模型控制指令,此控制指令为旋转,则对3d模型进行旋转操作。

以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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