跳跃运动中的捏手势(javaScript)

时间:2015-03-09 19:08:41

标签: javascript leap-motion

我试图在拇指和索引之间发生捏合时编写手势来打印东西。我有问题因为代码是打印的,尽管拇指和索引之间没有夹点。

任何帮助:(



<!DOCTYPE html>
<html>
 <script src="//cdnjs.cloudflare.com/ajax/libs/three.js/r67/three.js"></script>
    <script src="//js.leapmotion.com/leap-0.6.2.js"></script>
    <script src="//js.leapmotion.com/leap-plugins-0.1.6.1.js"></script>
    <script src="//js.leapmotion.com/leap.rigged-hand-0.1.4.min.js"></script>

<body>


<script>


Leap.loop({ 
    hand: function(hand){
 //if(hand.pinchStrength == 1&&hand.grabStrength!==1){
    var pincher;
    var closest = 800;
   for(var f = 1; f <= 5; f++){
       if(hand.pinchStrength == 1 && hand.grabStrength!==1){
        current = hand.fingers[f];
        distance = Leap.vec3.distance(hand.thumb.pipPosition,current.pipPosition);
        if(current !== hand.thumb && current == hand.indexFinger && distance < closest  ){ 
            closest = distance;
            pincher = current;  
            document.write("the finger is " + pincher.type +"<br />");
           
            } 
   } break;}
         //document.write("<br />"+"the distance is "closest "<br />");
          
 //}
    }});  
</script>

</body>
</html> 
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

在完成所有手指的检查后,您需要确定食指是否是pincher。就目前而言,当current == indexFinger运行时,if语句将始终评估为true - 这是您检查的第一根手指。

您可以在运行整个循环后检查设定的手指电流,或者向后运行循环,这样食指就是您检查的最后一根手指。

答案 1 :(得分:0)

我正在回答这个问题,因为如果有人仍在寻找捏合操作。我的回答会帮助他们。

const PINCH_MIN = 0.5;
let pinchPoint, pinchStrength , oPinchStrength;

 oPinchStrength = pinchStrength;
 pinchStrength = hand.pinchStrength;

  if( oPinchStrength < PINCH_MIN && pinchStrength >= PINCH_MIN)
                {
                  // Pinch Start action
 
                }else if(oPinchStrength > PINCH_MIN && pinchStrength <= PINCH_MIN){
                  // Pinch Stop action

                }