zoukankan      html  css  js  c++  java
  • leap motion

    体感控制器:

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

    范围:倒金字塔,塔尖在设备中心,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>

    不会的搜一搜,如果侵犯了您的权益,请见谅,及时联系我哦☺
  • 相关阅读:
    python实例26[查询修改文件的属性]
    [SCM]源码管理 VisualSVN Server+TortoiseSVN
    持续集成之“依赖管理”
    Spoon:在“云”上运行桌面应用程序
    数字签名的验证
    判断Linux/Unix为32位或64位
    持续集成理论和实践的新进展
    [SCM]源码管理 SVN Server
    [BuildRelease Management]Parabuild
    为VM增加磁盘空间
  • 原文地址:https://www.cnblogs.com/hjt-7/p/5599578.html
Copyright © 2011-2022 走看看