我试图在拇指和索引之间发生捏合时编写手势来打印东西。我有问题因为代码是打印的,尽管拇指和索引之间没有夹点。
任何帮助:(
<!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;
答案 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
}