Chcę sprawdzić, czy dłoń w ramce ruchu skokowego jest obecnie pięścią.Wykrywanie pięści za pomocą Leap Motion SDK V2
Zazwyczaj sugerowaną metodą jest szukanie hand.grabStrength
o wartości 1. Problem polega na tym, że wartość przeskakuje do 1, nawet z ręką "podobną do pazura", lub cokolwiek innego z lekko lekko zwiniętymi palcami.
Innym podejściem byłoby sprawdzenie każdego palca, jeśli jest to extended
. Ale to ma podobny problem, Palce liczą się jako rozszerzone, jeśli są całkowicie proste. Więc nawet jeśli sprawdzę, czy wszystkie palce nie są wysunięte, pojawia się ten sam problem, co powyżej (ręce podobne do pazurów zostają rozpoznane jako chwycone).
Połączenie tych dwóch metod również nie rozwiązuje problemu, co nie jest zaskakujące, biorąc pod uwagę, że obaj cierpią na te same problemy.
Teraz mamy wszystkie kości każdego palca dostępne, z pozycjami i wszystkim. Ale nie mam pojęcia, od czego zacząć od matematyki, aby wykryć, czy palec jest zwinięty.
Zasadniczo mam tej konfiguracji teraz:
var controller = Leap.loop(function(frame){
if(frame.hands.length>0){
//we only look at the first available hand
var hand = frame.hands[0];
//we get the index finger only, but later on we should look at all 5 fingers.
var index = hands.fingers[1];
//after that we get the positions of the joints between the bones in a hand
//the position of the metacarpal bone (i.e. the base of your hand)
var carp = index.carpPosition;
//the position of the joint on the knuckle of your hand
var mcp = index.mcpPosition;
//the position of the following joint, between the proximal and the intermediate bones
var pip = index.pipPosition;
//the position of the distal bone (the very tip of your finger)
var dip = index.dipPosition;
//and now we need the angle between each of those positions, which is where i'm stuck
}
});
Tak, jak mogę uzyskać kąt pomiędzy dwoma z tych stanowisk (karp do MCP, MCP do pip, pip zanurzyć)? Jakieś pomysły?
Czy to nie przebije również złamanych palców w stawie, wskazując kątowy kierunek przeciwny potrzebny zrobić pięść (jak gdyby całkowicie nieograniczona zasięgiem stawu)? :RE. * Cringe * –
Przypuszczam, że tak, ale ta matematyka jest dla mnie zbyt skomplikowana. : P – DodgerThud
Znalazłem dobre rozwiązanie wykorzystując odległość między każdym palcem a dłonią. Oblicz sumę tych odległości i sprawdź, czy jest poniżej pewnego progu. – whoabackoff