我使用的是 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/