Sie müssen Ihre eigenen Methoden erstellen, um den Startpunkt, den Prozess und den Endpunkt einer Geste zu erkennen.
Ausgangspunkt: Wie erkennt Ihr Programm, dass Sie versuchen, etwas zu halten? Eine einfache Geste, die mir einfällt, sind 2 Finger, die mit 1 Handfläche verbunden sind. Wenn Sie also im Rahmen zwei Finger sehen, die mit einer Handfläche verbunden sind und die Finger etwa 10-20 mm voneinander entfernt sind, können Sie dies als Geste erkennen, etwas zu halten. Wenn diese Bedingungen erfüllt sind, erkennt das Programm die Geste und Sie können innerhalb dieser Bedingungen Code schreiben.
Für ein sehr hässliches Beispiel in C#:
Ausgangspunkt: Boolean gesture_detected = false;
Frame frame = controller.Frame();
HandList hands = controller.Hands;
if (hands.Count == 1)
{
foreach (Hand hand in hands)
{
if (hand.fingers.Count == 2)
{
int fingerA_x,fingerB_x;
foreach (Finger finger in hand.fingers)
{
if(fingerA_x == 0)
{
fingerA_x = finger.x;
} else
{
fingerB_x = finger.x;
}
}
}
}
if((fingerA_x - fingerB_x) < 20)
{
//Gesture is detected. Do something...
gesture_detected = true;
}
}
Prozess: Was Ihre Geste zu tun versuchen, ist? Wenn Sie sich bewegen möchten, müssen Sie eine Mausmethode aufrufen, um einen Ziehen auszuführen. Suchen Sie nach der Methode mouse_event() in C++ unter PInvoke mit dem Ereignis MOUSEEVENTF_LEFTDOWN.
Endpunkt: Nachdem Sie den Mauszeiger gezogen haben, müssen Sie ein Mausmethodenereignis wie MOUSEEVENTF_LEFTUP aufrufen, um einen gezogenen Mauswiderstand zu simulieren. Aber wie erkennt Ihr Programm, wann Sie den Widerstand stoppen sollten? Am logischsten ist es, wenn die Geste im Rahmen nicht mehr erkannt wird. Schreiben Sie also eine andere Bedingung, um das alternative Szenario zu verarbeiten.
if (!gesture_detected)
{
// Do something
}
Zuerst: Was ist Ihre Sprache, die Sie verwenden, um zu entwickeln? Sie müssen genau die x/y/z-Achse Ihrer Geste studieren und analysieren. – Larme
Wie Larme sagt, müssen Sie hier ein wenig mehr Informationen bereitstellen, damit wir Ihnen helfen können. Welche API von Leap Motion verwenden Sie (JS, Objective-C usw.)? Wie wollen Sie, dass Menschen dieses Objekt halten (Finger, Hand greifen)? Außerdem sollten Sie den Text lesen, der Ihnen präsentiert wird, anstatt zu versuchen, das System zu spielen, indem Sie in Ihre Frage einfügen. –
OK, ich habe deine Frage umformuliert und den Müll am Ende entfernt.Es ist immer noch ein bisschen breit, aber es ist näher dran, verantwortlich zu sein. Es würde jedoch helfen, ein paar weitere Details zu haben. –