leap motion

时间:2022-11-07 18:47:37

体感控制器:

识别:手,手指和工具,获取位置,手势,动作

范围:倒金字塔,塔尖在设备中心,2.5cm~0.6米

坐标系统:采用右手笛卡尔积坐标系,返回的数值:毫米

摆放:绿灯朝向自己,z轴距离屏幕越来越远,z轴的正值不断增加,x,y在器件的水平处,摆放的时候注意

运动追踪数据:由于Leap Motion设备最终在它视野中的手、手指和工具,它提供一组数据集更新,或者是帧,或者是数据。每帧数据包含一个基本追踪数据列表,如手、手指和工具,也包括识别出的手势和描述场景中的运动因素。但检测到手、手指和工具或手势时,Leap Motion'软件为它分配一个唯一的ID指示符。只要这个实体一直存在于设备可视范围内,这个ID指示符就保持不变[和Kinect的骨骼追踪的ID是一致的]。如果追踪目标丢失或者失而复得,Leap Motion软件会分配一个新的ID(软件无法知道手、手指是否和之前看到的一样)

[也就是说,不包含手指识别啦,和Kinect的骨骼追踪在丢失后情况完全一致]。 帧  一个帧对象提供追踪数据、手势和在Leap Motion可视范围内的整体运动因素的列表。

可以通过之前帧中获取的ID来访问单独的手指和工具。使用Hand::finger(),hand::tool(),或者你不需要区分手指和工具,使用Hand::pointable()函数。这些函数返回当前帧中物体的引用。如果手指和工具在此帧中,没有和手关联,那么返回一个无效的对象

重要:在你的应用使用手势之前,你必须把每种所需要识别的手势开启。控制类有一个enableGesture()方法让你开启特定的手势识别。[也就是一开始都是关闭的,不开没法用

  1. 圈Circle----一个手指头画圆。

用任何手指和工具画圈。圈手势是持续的。一旦这个手势开始,Leap Motion就会持续更新状态直到停止。但手指或者工具远离了轨迹或者运动太缓慢,圈手势则终止。

可以从CircleGesture的接口函数参考中看到更多的信息

  1. 挥动Swipe----手的线性运动。

可以用任意手指在任意方向上作挥手手势。挥手手势是持续的。一旦手势开始,Leap Motion机会更新状态直到手势结束。当手指变换了方向或者运动太缓慢时,挥手手势结束。可以参考SwipeGesture的接口函数文档

  1. 按键点击按键Key Tap-----手指点击运动,就像按下键盘一样。

你可以像按下钢琴键那样产生一个按键点击手势。按键点击手势时离散的。只有一个独立的手势对象会被添加到点击手势。  从KeyTapGesture接口函数可以看到更多的信息。

  1. 屏幕点击Screen Tap----对电脑屏幕方向进行垂直点击。 、

可以往前点击或者把手推向前方来产生一个屏幕点击,就像触摸一个与你垂直的屏幕。点击手势是离散的,只有一个独立的手势对象会被添加到点击手势。  可以在ScreenTapGesture的接口函数看到更多的信息

但Leap Motion把一个运动识别测很难过一个手势模式,它把手势对象加入帧中。如果手势重复数次,Leap Motion会把更新手势对象不断添加到随后的帧中。画圈和挥手的手势都是持续的。Leap Motion为程序在每帧中持续更新这些手势。点击时离散的手势。Leap Motion把每次点击作为独立的手势对象报告

Leap Motion可以识别的运动模式:以上

RotationAxis — 旋转轴的方向.

RotationAngle —顺时针旋转的角度

RotationMatrix — 描述旋转的矩阵.

ScaleFactor — 表达碰撞或者收缩的因素

Translation — 线性移动的因素

注意:

对于dblclick设置的js,手势的时候好像不起作用,改为click就可以了

Leap motion定位的是某个id的位置的x,y

下面script里面改的话,尽量不要写成document.getElementById("XX").click();,关闭的话,只有一个id的样式起作用,而

getElementsByClassName就固定不动了

改为$(".window_close").click();  jquery的形式就行了

选择指定的元素进行设置

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

</head>

<body>

<!--JQ代码:JQ选择器$('.ttt p:eq(0)') 表示class="ttt"的子元素中的第一个P元素; $('.ttt p:eq(1)')表示第二个,依此类推。。。-->

<script type="text/javascript">

$(document).ready(function () {

$('.ttt p:eq(1)').css('float', 'left');

$('.ttt p:eq(2)').css('float', 'right');

});

</script>

<!--

如需加触发按钮就把上面的JQ代码换成

$(document).ready(function(){

$(".click").click(function(){

$('.ttt p:eq(1)').css('float', 'left');

$('.ttt p:eq(2)').css('float', 'right');

});

});

-->

<!--触发按钮-->

<div class="click">click</div>

<div class="ttt">

<p>aaa</p>

<p>bbb</p>

<p>ccc</p>

</div>

</body>

</html>