1. Finger:继承Pointable()
跟踪手指,获取有效Pointable手指对象,对应5根手指性能,如速度,连续等,Pointable.valid()属性测试
var hand = frame.hands[0]; var finger = hand.fingers[0];
(1)属性:
Finger.bones:Bone[]--含有手指骨的数组,手指的骨头从手腕到手指尖点(掌骨、近端,中间,和远端)。
Finger.carpPosition:number[]--表示位置向量的3个参数,对手指的掌骨底端的物理位置(靠近手腕)。
Finger.dipPosition:number[]--同上,手指远侧指间关节的物理位置。这一点是远端骨基(接近中间指骨)。
var position = finger.dipPosition; console.table(position);
Finger.distal:Bone(),手指的末节(骨最远处)。
Finger.medial:Bone(),手指中间骨
Finger.extended:boolean,如果手指是指向,或延伸等姿势
var extendedFingers = 0; for(var f = 0; f < hand.fingers.length; f++){ var finger = hand.fingers[f]; if(finger.extended) extendedFingers++;}console.log("Extended fingers: " + extendedFingers);
Finger.mcpPosition:number[]--3个位置参数,掌、指骨间关节。
var position = finger.mcpPosition; console.table(position);
Finger.metacarpal:Bone(),手掌的骨头
Finger.pipPosition:number[]--3个位置参数,近端和中间指骨间关节。
var position = finger.pipPosition; console.table(position);
Finger.proximal:Bone(),手指近节指骨
Finger.type:integer--一个表示手指名的代码,0,1,2,3,4,代表拇指---小指,
var nameMap = ["thumb", "index", "middle", "ring", "pinky"]; var fingerName = nameMap[finger.type];
(2)类属性
Finger.invalid:Finger,一个无效的手指对象。
function findStubbyFinger(frame){ for(var f = 0; f < hand.fingers.length; f++){ var finger = hand.fingers[f]; if(finger.length <= finger.width * 2.5) return finger; } return Leap.Finger.invalid;}