Sarà necessario creare i propri metodi per riconoscere il punto di partenza, il processo e il punto finale di un gesto.
Punto di partenza: In che modo il programma riconosce che stai cercando di tenere qualcosa? Un semplice gesto che posso pensare è di 2 dita collegate con 1 palma. Quindi, nell'inquadratura, se vedi 2 dita collegate con 1 palmo e le dita sono forse distanti 10-20 mm, puoi riconoscerlo come un gesto per tenere qualcosa. Quando queste condizioni sono soddisfatte, il programma riconoscerà il gesto e potrai scrivere del codice all'interno di queste condizioni.
Per un bruttissimo esempio in C#:
Punto di partenza: booleano 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;
}
}
processo: Qual è il tuo gesto cercando di fare? Se vuoi muoverti, dovrai chiamare un metodo del mouse per fare un trascinamento. Cerca il metodo mouse_event() in C++ in PInvoke usando l'evento MOUSEEVENTF_LEFTDOWN.
Punto finale: Al termine del trascinamento, è necessario chiamare un evento del metodo del mouse come MOUSEEVENTF_LEFTUP per simulare il trascinamento del mouse terminato. Ma come verrà rilevato il tuo programma quando dovresti interrompere la resistenza? Il modo più logico è se il gesto non viene più rilevato nel frame. Quindi scrivi un'altra condizione per elaborare lo scenario alternativo.
if (!gesture_detected)
{
// Do something
}
fonte
2013-12-16 14:18:29
Primo: qual è il tuo linguaggio che stai utilizzando per sviluppare? Devi studiare esattamente l'asse x/y/z del tuo gesto e analizzarli. – Larme
Come dice Larme, avremo bisogno di fornire un po 'più di informazioni qui per noi per aiutarti. Quale API di Leap Motion usi (JS, Objective-C, ecc.)? Come vuoi che la gente tenga questo oggetto (dito, mano che stringe)? Inoltre, dovresti leggere il testo che ti viene presentato, piuttosto che provare a giocare al sistema incollandolo nella tua domanda. –
OK, ho riformulato la tua domanda e rimosso la spazzatura alla fine.È ancora un po 'ampio, ma è più vicino all'essere responsabile. Sarebbe comunque utile avere qualche dettaglio in più. –