Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我不';别动_Java_Leap Motion - Fatal编程技术网

Java 当我不';别动

Java 当我不';别动,java,leap-motion,Java,Leap Motion,我正在使用JavaLeapMotionSDK2.2。我想检测我的拇指的位置,观察我的拇指是否在移动,但是我有一些污染的信息,我不知道这些信息是从哪里来的 for (Finger f : frame.fingers()) { switch (f.type()) { case TYPE_THUMB : if(f.hand().isRight()) {

我正在使用JavaLeapMotionSDK2.2。我想检测我的拇指的位置,观察我的拇指是否在移动,但是我有一些污染的信息,我不知道这些信息是从哪里来的

    for (Finger f : frame.fingers())
    {
        switch (f.type()) 
        {
        case TYPE_THUMB :
             if(f.hand().isRight())
             {
                 System.out.println(" position : (x:" + f.tipPosition().getX() + " , y:" + f.tipPosition().getY() +")");
             }
        }
    }
我有这样的结果(当我不动我的手和拇指的时候)

有一个bug或者我不明白为什么这些信息会改变

编辑:

FingerID有一个问题,听起来好像在我控制的右手中检测到两个拇指:

frameID: 96859 FingerID: 410 position : (x:-63.791225 , y:171.73073)
frameID: 96859 FingerID: 411 position : (x:10.867295 , y:157.37088)
frameID: 96934 FingerID: 410 position : (x:-63.86908 , y:173.62065)
frameID: 96934 FingerID: 411 position : (x:10.567341 , y:157.86476)

开关箱有问题。。。(我不知道确切原因)但开关箱+f.hand().isRight()工作不正常

switch (f.type()) 
{                
   case TYPE_THUMB : 
        if(f.hand().isRight())
        {
          ...
        }
}
我的解决方案是添加第二个验证:

switch (f.type()) 
{                
   case TYPE_THUMB :
      if(f.type().swigValue() == 0)
      { 
        if(f.hand().isRight())
        {
          ...
        }
      }
}

将frame ID和finger ID添加到打印输出中,以查看在一帧中是否有两个右手拇指,而不是在交替帧中有一个拇指跳到两个不同的位置。另外,看看诊断可视化工具,看看它显示了什么。好主意,它不是同一个fingerID:frameID:38641 fingerID:211位置:(x:47.511364,y:194.00133)frameID:38715 fingerID:210位置:(x:-14.853537,y:202.17497)就像我有两个拇指,但我总是排除一只手,这怎么可能?(我只有一只手在可视化仪上…)解决了:开关盒的问题。。。非常奇怪。您的跟踪输出显示两个手指在同一只手上。手指id的最后一个数字是0-5,表示拇指小指。前面的数字是手的ID。因此,第二个手指是食指。不过,用Thumb case语句打印出来仍然没有意义。事实上,我将您的原始代码复制到了一个处理草图中,效果很好(只打印右拇指信息)。我不明白为什么我的开关盒在我的代码中不起作用,但我已经解决了这个问题。谢谢你的帮助。
switch (f.type()) 
{                
   case TYPE_THUMB :
      if(f.type().swigValue() == 0)
      { 
        if(f.hand().isRight())
        {
          ...
        }
      }
}