2016-10-14 21 views
0

我想用閏秒動作做手語程序。 當我伸展手臂時,它意味着'輸入手語'。 當我用左手向右滑動時,它意味着'空間'。 用右手向左滑動意味着'backspace'。leapmotion手勢投到swipeGesture

我應該認識幀有手勢或沒有。 我通過計數frame.gestures來做到這一點。 是不是?

public void onFrame(Controller controller) { 
      Frame frame = controller.frame(); 
      String sDirection = ""; 
      GestureList gestures = frame.gestures(); 

      if (gestures.count() == 0) { 
       try{ 
        run(controller); 
       }catch(InterruptedException e){ 
        e.printStackTrace(); 
       } 

      } else { 
       sDirection = gesture(gestures); 
      } 
      System.out.println(sDirection); 

     } 

當檢測手勢,功能手勢工作。 我只需要滑動手勢。

 public String gesture(GestureList gestures) { 
       String result = ""; 
       for (int i = 0; i < gestures.count(); i++) { 

     if (gestures.get(i).type() == Gesture.Type.TYPE_SWIPE) { 

      SwipeGesture vSwipe = (SwipeGesture) gestures.get(i);///What's wrong?!!!!!!! 
      System.out.println(gestures.get(i).type()); // 
      // Compare directions and give preference to the greatest linear 
      // movement. 
      float fAbsX = Math.abs(vSwipe.direction().getX()); 
      float fAbsY = Math.abs(vSwipe.direction().getY()); 
      float fAbsZ = Math.abs(vSwipe.direction().getZ()); 

        ..... 
在功能手勢

SwipeGesture vSwipe =(SwipeGesture)gestures.get(ⅰ); - >沒有工作。

我該怎麼辦?

回答

0

不支持投射。您需要從手勢對象創建一個新的SwipeGesture對象:

SwipeGesture vSwipe = SwipeGesture(gestures.get(i));