LeapMotion概述
LeapMotion系统可以检测并跟踪手、手指和类似手指的工具。这个器件可
以在高精确度和高跟踪帧率下工作。
LeapMotion软件分析在器件可视范围内的物体。它识别手、手指和工具,可以
实时获取它们的位置、手势和动作。LeapMotion的可视范围是一个倒金字塔,
塔尖在设备中心。[这个很好理解,传感器一般都这样]LeapMotion的可工作范围
大约在设备前方的从25到600毫米,也就是1英寸到2英尺。[2.5厘米到0.6
米,果然弥补了Kinect近距离的不足啊,十分适坐在电脑前操作]
坐标系统
LeapMotion的系统采用了右手笛卡尔坐标系。返回的数值都是以真实世界
的毫米为单位[和Kinect的深度数据一样一样的]。原点在LeapMotion控制器的
中心。x轴和z轴在器件的水平面上,x轴和设备的长边平行[z轴和短边平行,
挺好记]。y轴是垂直的,以正值增加形式朝上(与朝向下的计算机图形学的坐标
系相反)。距离计算机屏幕越远,z轴正值不断增加。[看到那个小绿灯吧,得确
保让它朝着我们这个坐标系才对,摆放时得注意!]
上图:LeapMotion的右手坐标系统
运动追踪数据
由于LeapMotion设备最终在它视野中的手、手指和工具,它提供一组数据
集更新,或者是帧,或者是数据。每帧数据包含一个基本追踪数据列表,如手、
手指和工具,也包括识别出的手势和描述场景中的运动因素。
但检测到手、手指和工具或手势时,LeapMotion'软件为它分配一个唯一的
ID指示符。只要这个实体一直存在于设备可视范围内,这个ID指示符就保持不
变[和Kinect的骨骼追踪的ID是一致的]。如果追踪目标丢失或者失而复得,Leap
Motion软件会分配一个新的ID(软件无法知道手、手指是否和之前看到的一样)
[也就是说,不包含手指识别啦,和Kinect的骨骼追踪在丢失后情况完全一致]。
帧
一个帧对象提供追踪数据、手势和在LeapMotion可视范围内的整体运动因
素的列表。
追踪数据列表
Hands手---所有的手。
Pointables有端点的---手指和有段点的工具。
手指---所有的手指。
工具----所有的工具。
手势---所有手势的开始、结束或者哪个进行了更新。
这三个具有端点的列表(Pointables,Fingers,Tools)包含了任何在数据帧检
测出的有端点的对象。你可以通过访问手的列表,来获取手中物体的信息。需要
注意的是,如果用户的手只在LeapMotion的视野中出现一部分,那么手指或者
工具都无法与手关联。[也就说,注意的手的摆放,确保手和工具同事都在可视
范围内]
如果你正在通过一帧又一帧的来追踪一个单一的物体,例如手指,你可以使
用与物体关联的ID,在新的帧中查询它。通过ID,你可以查询手、手指、工具、
端点物体和手势。如果这个物体在当前帧存在,那么查询函数返回一个关于物体
的引用。如果物体不存在了,那么返回一个特别的无效对象。无效对象被很好定
义,但不包含任何有效的追踪数据。这个技术使得我们在使用LeapMotion追踪
数据时,简化了大量的对于空指针的检测。
帧运动
LeapMotion软件分析总体运动,只要之前帧数据发生了位移、旋转、尺度
变化等。例如,如果你把双手同时移动到LeapMotion的左侧视野,帧就包含了
位移变化。如果你扭动你的双手,好像旋转一个球,帧就包含旋转。如果你将双
手靠近或者远离,帧就包含缩放信息。LeapMotion软件会使用视野范围内的物
体,只要分析到发生了运动。如果它只检测到一只手,那么LeapMotion程序就
会基于那只手的运动,给出帧运动因素。如果它检测出一双手,它就将双手的运
动趋势结合起来,给出运动因素。通过每只手对应的手对象,你也可以获取单独
运动参数。
帧运动信息的产生是通过比较当前帧与之前一个特别的帧。描述合成运动的
属性包含:
1.旋转坐标RotationAxis----一个方向向量来描述坐标的旋转。
2.旋转角度RotationAngle----相对于旋转坐标(笛卡尔坐标系)的顺时针方向的
旋转角度。
3.旋转矩阵RotationMatrix-----一个旋转的矩阵变换。
4.缩放因子ScaleFactor------一个因子来描述膨胀和收缩。
5.位移Translation-----------一个向量来描述线性运动。
你可以通过运动因子来操控在你应用场景中的物体,而不必在多帧数据中跟
踪单独的手和手指。[也就是factors可以手动修改]
帧结构包含一个估计某个方向上的特定运动。例如,如果缩放因子很大,难
么你可以忽略在帧中的旋转、或位移(如果这可以让你的应用更实际)。通过概
率方法滤去除掉不想要的运动信息可以使你的程序更容易被使用。[也就是说,
只关注最主要的运动,忽视那些次要的变化,毕竟人不是机器,例如做旋转可定
发生一定位移]
手模型
手模型提供关于手,或者其它被检测出来的手指、工具的坐标、特征和运动。
LeapMotion的接口函数尽可能多的提供关于一个手的信息。当时,Leap
Motion程序可能无法计算出在每个帧下的手部信息。例如,当一个手攥成一个
拳头,它的手指则无法被LeapMotion看到,所以手指的信息就是空。你的应用
应该能处理到这些模型消失的状态。
LeapMotion程序也不判定一只手到底是左手还是右手[Kinect判断~]。在手的
列表中,可以出现多余2只手的信息,因为可以不止一个人也可以出现一个类似
手的物体在LeapMotion的视野范围里。但是,我们建议最多让两只手同时出现
在LeapMotion控制器的视野里,这样可以确保最佳追踪质量。
手属性
手对象提供一些属性来反映一只被检测到手的物理特征。
1.手掌坐标PalmPosition-------------在LeapMotion的坐标系下,手掌中心的坐标
以毫米为单位被衡量。
2.手掌速率PalmVelocity-------------手掌毫米/每秒的运动的速度。
3.手掌标准PalmNormal--------------与手掌所形成的平面的垂直向量,向量方向指
向手掌内侧。
4.方向Direction-------------------由手掌中心指向手指的向量。
5.球心SphereCenter------------可以适合手掌内侧弧面的一个球心。(假设握着一个
球)
6.球半径SphereRadius------------同上,这个是球半径。当手形状变化,半径跟着
变化。
方向和手掌标准是在LeapMotion坐标系下,描述手的方向的向量。
上图:手掌标准垂直于手掌往外,方向朝着手指方向。
上图:当手卷曲,球变小
球心和球半径描述了一个球,这个球满足手掌的曲率,正好可以被手掌的握
着。
手运动
手对象还提供了一些用于描述手运动的属性。LeapMotion程序分析手的运
动,包括那些与手关联的手指、工具的位移、旋转和缩放。将你的手绕着Leap
Motion的运动,会产生位移。张开、扭曲和倾斜你的手,可以产生旋转。将你
的手势或者工具对着LeapMotion靠近或远离,可以产生缩放。
手的运动是通过当前帧与之前特定帧对比得到的。描述手运动的属性有和
FrameMotion一样。
1.旋转坐标RotationAxis
2.旋转角度RotationAngle
3.旋转矩阵RotationMatrix
4.缩放因子ScaleFactor
5.位移Translation
手对象同样包含了对于手运动最重要的估计。[后面一样了,不说了]
手指和工具列表
你可以通过下面三个中的一个,访问与手联系的手指和工具:
1.端点Pointables------手指和工具都是端点物体。
2.手指Fingers----------仅仅手指。
3.工具Tools-------------仅仅工具。
你还可以通过之前帧中获取的ID来访问单独的手指和工具。使用
Hand::finger(),hand::tool(),或者你不需要区分手指和工具,使用Hand::pointable()
函数。这些函数返回当前帧中物体的引用。如果手指和工具在此帧中,没有和手
关联,那么返回一个无效的对象。
手指和工具模型
LeapMotion设备不但检测和追踪在视野范围里的手指还追踪工具。Leap
Motion程序通过形状对手指类似物体进行分类。一个工具相对于手指来说是更
长、更瘦还是更直。
在LeapMotion模型里,手指和工具的物理特征被抽象到一个端点对象中。
手指和工具是一类端点对象,端点对象的物理特征包括:
1.长度Length-------物体的可视长度(从手长出来的部分)。
2.宽度Width-------物体的平均宽度。[注意平均哦]
3.方向Direction---一个单位朝向向量,方向与物体指向相同。(例如从底座到尖
端)
4.尖坐标TipPosition----在LeapMotion坐标系下,尖的位置。
5.尖点速率TipVelocity-----尖的运动毫米/秒。
上图:红点还是尖坐标,指针式尖方向。
LeapMotion程序把检测到的端点物体识别为手指或者是工具。使用
Pointable::isTool()函数来确定是哪一类端点对象。
这个工具,比手指更长、更细和更直。
手势
LeapMotion程序把特定的运动模式识别为手势,可以猜测用户的意图或指
令。LeapMotion对于一帧数据中的手势访问方法和其它的手指和手势一致的。
对于每个被检测到的手势,LeapMotion都将一个手势对象Gestureobject添加到
帧数据中。你可以通过帧手势列表来获取手势对象。
以下是LeapMotion可以识别的运动模式。[重点来了啊,看不懂下面会有图
像示意~]
1.圈Circle----一个手指头画圆。
2.挥动Swipe----手的线性运动。
3.按键点击按键KeyTap-----手指点击运动,就像按下键盘一样。
4.屏幕点击ScreenTap----对电脑屏幕方向进行垂直点击。
但LeapMotion把一个运动识别测很难过一个手势模式,它把手势对象加入
帧中。如果手势重复数次,LeapMotion会把更新手势对象不断添加到随后的帧
中。画圈和挥手的手势都是持续的。LeapMotion为程序在每帧中持续更新这些
手势。点击时离散的手势。LeapMotion把每次点击作为独立的手势对象报告。
重要:在你的应用使用手势之前,你必须把每种所需要识别的手势开启。控制类
有一个enableGesture()方法让你开启特定的手势识别。[也就是一开始都是关闭
的,不开没法用]
画圈
LeapMotion可以识别手指在空中以圆的方式运动,返回一个圈手势Circle
gesture。
上图:食指的圈手势
你可以用任何手指和工具画圈。圈手势是持续的。一旦这个手势开始,Leap
Motion就会持续更新状态直到停止。但手指或者工具远离了轨迹或者运动太缓
慢,圈手势则终止。
可以从CircleGesture的接口函数参考中看到更多的信息。
挥手
LeapMotion把手指的线性运动识别为挥手手势。
上图:一个水平挥手的手势。
你可以用任意手指在任意方向上作挥手手势。挥手手势是持续的。一旦手势
开始,LeapMotion机会更新状态直到手势结束。当手指变换了方向或者运动太
缓慢时,挥手手势结束。
更多信息可以参考SwipeGesture的接口函数文档。
点击
LeapMotion可以识别2种点击,按键点击KeyTap和向前的屏幕点击Screen
Tap。
按键点击
LeapMotion把一个快速的、往下一根手指或工具的运动识别为一个按键手
势KeyTap。
上图:食指的按键手势
你可以像按下钢琴键那样产生一个按键点击手势。按键点击手势时离散的。
只有一个独立的手势对象会被添加到点击手势。
从KeyTapGesture接口函数可以看到更多的信息。
屏幕点击
LeapMotion可以把一个手指或者工具做一个快速的、朝前的点击识别为一
个屏幕点击手势。
上图:食指的屏幕点击手势
你可以往前点击或者把手推向前方来产生一个屏幕点击,就像触摸一个与你
垂直的屏幕。点击手势是离散的,只有一个独立的手势对象会被添加到点击手势。
可以在ScreenTapGesture的接口函数看到更多的信息。
原理:
LeapMotion原理
LeapMotion傳感器的結構:
大體上,Leap傳感器根據內置的兩個攝像頭從不同角度捕捉的畫面,重建出手
掌在真實世界三維空間的運動信息。檢測的範圍大體在傳感器上方25毫米到
600毫米之間,檢測的空間大體是一個倒四棱錐體。
首先,LeapMotion傳感器會建立一個直角座標系,座標的原點是傳感器的中心,
座標的X軸平行於傳感器,指向屏幕右方。Y軸指向上方。Z軸指向背離屏幕
的方向。單位爲真實世界的毫米。如圖:
在使用過程中,LeapMotion傳感器會定期的發送關於手的運動信息,每份這樣
的信息稱爲「幀」(frame)。每一個這樣的幀包含檢測到的:
所有手掌的列表及信息;
所有手指的列表及信息;
手持工具(細的、筆直的、比手指長的東西,例如一枝筆)的列表及信息;
所有可指向對象(PointableObject),即所有手指和工具的列表及信息;
Leap傳感器會給所有這些分配一個唯一標識(ID),在手掌、手指、工具保持
在視野範圍內時,是不會改變的。根據這些ID,可以通過Frame::hand(),
Frame::finger()等函數來查詢每個運動對象的信息。
Leap可以根據每幀和前幀檢測到的數據,生成運動信息。例如,若檢測到兩隻
手,並且兩隻手都超一個方向移動,就認爲是平移;若是像握着球一樣轉動,則
記爲旋轉。若兩隻手靠近或分開,則記爲縮放。所生成的數據包含:
旋轉的軸向向量;
旋轉的角度(順時針爲正);
描述旋轉的矩陣;
縮放因子;
平移向量;
對於每隻手,可以檢測到如下信息:
手掌中心的位置(三維向量,相對於傳感器座標原點,毫米爲單位);
手掌移動的速度(毫米每秒);
手掌的法向量(垂直於手掌平面,從手心指向外);
手掌朝向的方向;
根據手掌彎曲的弧度確定的虛擬球體的中心;
根據手掌彎曲的弧度確定的虛擬球體的半徑;
其中,手掌的法向量和方向如下圖所示:
「手掌球」的圓心和半徑:
對於每個手掌,亦可檢測出平移、旋轉(如轉動手腕帶動手掌轉動)、縮放(如
手指分開、聚合)的信息。檢測的數據如全局變換一樣,包括:
旋轉的軸向向量;
旋轉的角度(順時針爲正);
描述旋轉的矩陣;
縮放因子;
平移向量;
Leap除了可以檢測手指外,也可以檢測手持的工具。像上文所說的,就是細的、
筆直的、比手指長的物件:
對於手指和工具,會統一地稱爲可指向對象(PointableObject,抱歉不太會翻譯),
每個PointableObject包含了這些信息:
長度;
寬度;
方向;
指尖位置;
指尖速度;
方向和指尖位置如下圖:
根據全局的信息、運動變換,手掌、手指和工具的信息和變換,開發者就可以靠
這些來製作遊戲、程序了。
预览:
关于LeapMotion的预览
Leap识别并绑定手,手指或者类似手指的工具,这款设备能够在毫米级别的前
提下实现操作和帧率的绑定。基于Leap的SDK的软件能够分析在设备视野能的
物体,并对手,手指和工具的位置,手势和动作做出反应!
Leap的视野范围是一个以设备为中心的倒状金字塔,有效的范围是从设备纸上
26㎜到600㎜!
概括预览:
坐标系统
动作捕捉数据
帧
绑定数据列表
帧动画
手模型
手属性
手的动画
手指和工具列表
手指和工具模型
手势
花圈
划过
点击
按键类型点击
屏幕类型点击
Coordinatesystem
1.坐标系统
Leap遵循右手坐标系,坐标系中单位与世界中一毫米相对应,坐标原点是设备
的中心。
XZ轴组成水平的一个平面,X轴指向设备的长边,Y轴竖直,向上为正方向!Z
轴相对屏幕向外是正方向!
2.动作绑定数据
Leap通过绑定视野范围能的手,手指或者工具来提供实时数据,这些数据多数
是通过集合或者圳数据提供!每一帧都包含了一系列的基本绑定数据,比如手,
手指或者工具的数据,当然,他也能实时的识别场景中的手势和自定义数据!
当设备检测到手、手指、工具或者是手势的话,设备会赋予它一个唯一的ID号
码作为标记,只要这个实体不出设备的可视区域,这个ID号就会一直不变,如
果设备丢失这个实体之后又出现了,Leap就会赋予它一个新的ID号码,但是软
件不会知道这个和以前的那个实体有什么关系。
注意:我们计划在发布给消费者能够提高为你程序提供的动画步骤的数据。在将
来发布的SDK中,我们计划使用骨骼手指模型来提供更加详细的数据绑定和连续
性的实时数据。
2.1帧
AFrameobjectprovideslistsofthetrackingdata,gestures,andfactorsdescribing
theoverallmotionobrvedintheLeapfieldofview.
一个Frame的对象提供了绑定数据,手势和元素的列表,这些数据用来描述设备
视野内观察到整体的动作。
2.2数据绑定的列表
Hands——所有的手
Pointables——所有作为Pointables的手指和工具
Fingers——所有的手指
Tools——所有的工具
Gestures——所有的手势包括开始、结束或者在进行中的
这三个可指向物体的列表(可指向物体、手指、工具)包含每一个在每一种里
被检测到的可指向的物体。你可以使用一个手来访问这些可指向的物体,这个手
对象是通过Hands在手列表中的对象。需要注意的是:手指或者工具可能不会被
手对象所关联,愿意是这些可指向的物体只有一部分在Leap的可视区域里面。
Ifyouaretrackinganindividualobject,suchasafinger,fromframetoframe,you
followingfunctionstolookupspecificobjecttypesbyID:
如果你绑定了一个单独的物体,比如一个手指头,每一帧中,你都可以通过ID
和那个物体关联起来,并在新的帧里面找到它。使用以下的方法来找到相应的类
型物体。
()
()
()
ble()
e()
这些方法函数返回相应的对象的引用,如果在当前的帧里面存在的话。如果这个
对象不再存在了,一个特殊的无效对象就会被返回。无效对象被很好的定义供你
使用,但是不存在有效的绑定数据。这项技术帮助我们减少了空对象检测的工作。
2.3帧动画
Leap能够分析在场景中较早的帧中的整体的动画,并且综合典型的移动旋转和
缩放因素。比如,如果你将两只手同时向左移动,并保证在Leap的视野里面,
在帧中包含了移动的信息。如果你弯曲你的手就像旋转一个球,在帧里面就包含
旋转的信息。如果你移动两只手相对或者相向移动,那么在帧中就包含了缩放的
信息。Leap设备对于动画的分析基于在视野中的所有物体,如果有一个手在其
中的话,那么就会基于这一个手的因素来分析,如果两个手的话,分析动画就会
基于两个手的因素。你也可以为每一个手获得独立的动画因素,需要从Hand对
象里面获得。
帧动画的产生是通过当前的帧与更早的帧的比较获得的。描述动画合成的属性包
括以下:
RotationAxis—旋转轴的方向.
RotationAngle—顺时针旋转的角度
RotationMatrix—描述旋转的矩阵.
ScaleFactor—表达碰撞或者收缩的因素
Translation—线性移动的因素
你可以直接添加动画因素来操作这些物体,而不需要绑定个人的数据。
3.手模型
这个手模型提供了被绑定的手的位置信息、特点以及运动方式。并且还包括了
手指或者手上的工具的所有和手关联的东西的信息。
LeapAPI尽可能多的提供关于手的信息。但是,Leap不能够确定每一帧所有属性。
比如当你的手突然攥成了拳头,这个时候,它上面的所有的手指是不能用了,手
指的list就成了空。所以你的程序需要对这种情况最一个检测。
Leap设备不能确定某一个手是左手还是右手,多于两个手出现都可以放到list里
面去,如果不止一个人将手放进来,或者有一个像手的物体。然而还是建议最多
两个手来保证动作步骤的质量。
更多教程请关注:乐之者体感开发
3.1Handattributes
TheHandobjectprovidesveralattributesreportingthephysicalcharacteristicsof
adetectedhand:
PalmPosition—ThecenterofthepalmmeasuredinmillimetersfromtheLeaporigin.
PalmVelocity—Thespeedofthepalminmillimeterspercond.
PalmNormal—Avectorperpendiculartotheplaneformedbythepalmofthehand.
Thevectorpointsdownwardoutofthepalm.
Direction—Avectorpointingfromthecenterofthepalmtowardthefingers.
SphereCenter—Thecenterofaspherefittothecurvatureofthehand(asifitwere
holdingaball).
SphereRadius—ius
changeswiththeshapeofthehand.
ThedirectionandpalmNormalareunitdirectionvectorsdescribingtheorientation
ofthehandwithrespecttotheLeapcoordinatesystem.
ThePalmNormalvectorpointsperpendicularlyoutofthehand;theDirectionvector
pointsforward.
TheSphereCenterandSphereRadiusdescribeaspherethatisplacedandsizedtofit
intothecurvatureofthehand:
Thesizeofthespheredecreasasthefingersarecurled.
3.2Handmotion
TheHandobjectalsoprovidesveralattributesreportingthemotionofadetected
panalyzesthemotionofthehand,aswellasits
associatedfingersandtoolsandreportsreprentativetranslation,rotation,and
yourhandaroundtheLeapfieldofviewproducestranslation.
Turning,twisting,fingersortools
towardorawayfromeachotherproducesscaling.
Handmotionsarederivedbycomparingthecharacteristicsofthehandinthe
ributesdescribingthe
synthesizedmotioninclude:
RotationAxis—Adirectionvectorexpressingtheaxisofrotation.
RotationAngle—Theangleofrotationclockwiaroundtherotationaxis(usingthe
right-handrule).
RotationMatrix—Atransformmatrixexpressingtherotation.
ScaleFactor—Afactorexpressingexpansionorcontraction.
Translation—Avectorexpressingthelinearmovement.
3.3FingerandToollists
Youcanaccessthefingersandtoolsassociatedwithahandusingoneofthreelists:
Pointables—BothfingersandtoolsasPointableobjects.
Fingers—Justthefingers.
Tools—Justthetools.
YoucanalsofindanindividualfingerortoolusinganIDvalueobtainedinaprevious
(),(),or,ifyoudon'tneedtodistinguishbetween
fingersandtools,ble()unctionsreturnareference
gerortoolisnot
associatedwiththehandinthisframe,thenaninvalidobjectisreturned.
andToolmodels
p
slonger,thinner,and
straighterthanafinger.
IntheLeapmodel,thephysicalcharacteristicsoffingersandtoolsareabstracted
sical
characteristicsofpointableobjectsinclude:
Length—Thelengthofthevisibleportionoftheobject(fromwhereitextendsout
ofthehandtothetip).
Width—Theaveragewidthofthevisibleportionoftheobject.
Direction—Aunitdirectionvectorpointinginthesamedirectionastheobject(i.e.
frombatotip).
TipPosition—ThepositionofthetipinmillimetersfromtheLeaporigin.
TipVelocity—Thespeedofthetipinmillimeterspercond.
FingerTipPositionandDirectionvectorsprovidethepositionsofthefingertipsand
thedirectionsinwhichthefingersarepointing.
propertytodeterminewhichoneaPointableobjectreprents.
Atoolislonger,thinner,andstraighterthanafinger.
Gestures
TheLeaprecognizescertainmovementpatternsasgestureswhichcouldindicatea
preportsgesturesobrvedinaframetheinthe
h
gestureobrved,getthe
GestureobjectsfromtheFramegestureslist.
ThefollowingmovementpatternsarerecognizedbytheLeap:
Circle—Asinglefingertracingacircle.
Swipe—Alinearmovementofthehand.
KeyTap—Atappingmovementbyafingerasiftappingakeyboardkey.
ScreenTap—Atappingmovementbythefingerasiftappingaverticalcomputer
screen.
WhentheLeapfirstclassifiesamovementpatternasagesture,itaddsaGesture
esturecontinuesovertime,theLeapaddsupdated
turesCircleandSwipearecontinuous.
ediscrete
preportachtapwithasingleGestureobject.
Important:beforeusinggesturesinyourapplication,youmustenablerecognition
trollerclasshasanEnableGesture()
methodthatyoucanutoenablerecognitionforthetypesofgesturesyouu.
Circle
TheLeaprecognizesthemotionofafingertracingacircleinspaceasaCircle
gesture.
Acirclegesturewiththeforefinger.
thegesturestarts,e
gestureendswhenthecirclingfingerortooldepartsfromthecirclelocusormoves
tooslow.
SeeCircleGestureintheAPIreferenceformoreinformation.
Swipe
TheLeaprecognizesalinearmovementofafingerasaSwipegesture.
Ahorizontalswipegesture.
estures
egesturestarts,theLeapwillupdatetheprogressuntilthe
gestureendswhenthefingerchangesdirectionsormovestoo
slow.
SeeSwipeGestureintheAPIreferenceformoreinformation.
Taps
TheLeaprecognizestwotypesoftaps:thedownwardKeyTapandtheforward
ScreenTap.
KeyTaps
TheLeaprecognizesaquick,downwardtappingmovementbyafingerortoolasa
KeyTapgesture.
Akeytapgesturewiththeforefinger.
ingleGestureobjectisaddedpertapgesture.
SeeKeyTapGestureintheAPIreferenceformoreinformation.
ScreenTaps
TheLeaprecognizesaquick,forwardtappingmovementbyafingerortoolasa
ScreenTapgesture.
Ascreentapgesturewiththeforefinger.
Youcanmakeakeytapgesturebytappingorpushingfowardinspaceasiftouching
ingleGestureobjectis
addedpertapgesture.
本文发布于:2023-01-01 12:18:51,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/71922.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |