java - 当我不动时,LeapMotion tipPosition 正在改变(很多)

标签 java leap-motion

我使用的是 Java LeapMotion SDK 2.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() +")");
             }
        }
    }

我有这种结果(当我的手和拇指不动时)...

 position : (x:-42.98356 , y:180.52577)
 position : (x:5.58893 , y:198.87451)
 position : (x:-43.21261 , y:182.6366)
 position : (x:5.885054 , y:199.23691)
 position : (x:-42.86318 , y:182.91586)
 position : (x:6.4043913 , y:199.99516)
 position : (x:-42.419323 , y:180.8524)
 position : (x:6.086983 , y:199.51636)
 position : (x:-42.896065 , y:184.15248)

有错误或我不明白为什么要更改此信息?

编辑:

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)

最佳答案

Switch Case 有问题...(我不知 Prop 体原因)但 Switch Case + 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())
        {
          ...
        }
      }
}

关于java - 当我不动时,LeapMotion tipPosition 正在改变(很多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968011/

相关文章:

java - 即使触发了正确的事件,GUI 也不会更新当前信息

java - 如何避免finally block 不执行的情况

java - 分析 GC 之间由 Java 应用程序生成的对象

java - Play Framework : merge action only works in the Controller that triggered it

c++ - LeapMotion、Qt 和信号

javascript - 如何使用 Node.js 将 JSON 流写入文件?

unity3d - SetTransform导致Unity LeapMotion对象旋转过快

java - 如何实现工厂方法模式的灵活性

android - 如何将 leap-motion 直接连接到 android

c++ - 偏航、俯仰和滚动到 glm::rotate