ジェスチャーの開始点、処理、終了点を認識する独自のメソッドを作成する必要があります。
開始地点: あなたのプログラムはあなたが何かを保持しようとしていると認識しますか?私が考えることができる簡単なジェスチャーは、2本の指が1本の手のひらにリンクされていることです。フレームの中で、2本の指が1本の手のひらにつながっていて、指が10〜20mm離れていれば、それを把握するジェスチャーとして認識できます。これらの条件が満たされると、プログラムはジェスチャを認識し、これらの条件の中にコードを書くことができます。 C#で非常に醜い例えば
:
開始点: ブール= falseをgesture_detected。
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;
}
}
プロセス: あなたのジェスチャーが何をしようとしていますか?移動したい場合は、ドラッグを行うためにマウスメソッドを呼び出す必要があります。 MOUSEEVENTF_LEFTDOWNイベントを使用して、PInvokeのC++でメソッドmouse_event()を検索します。
終了点: ドラッグが終了したら、終了したマウスドラッグをシミュレートするには、MOUSEEVENTF_LEFTUPのようなマウスメソッドイベントを呼び出す必要があります。しかし、ドラッグを止めるべきときに、あなたのプログラムはどのように検出しますか?最も論理的な方法は、フレーム内でジェスチャが検出されなくなった場合です。代わりのシナリオを処理するelse条件を記述します。
if (!gesture_detected)
{
// Do something
}
最初に、開発に使用しているラゲージは何ですか?ジェスチャーのx/y/z軸合わせを正確に勉強し、分析する必要があります。 – Larme
Larmeは言うとおり、ここでは、あなたに手伝ってくれる情報をもう少し提供する必要があります。どのLeap Motion APIを使用していますか(JS、Objective-Cなど)?どのように人々はこのオブジェクト(指、手をつかむ)を保持するには?また、あなたの質問に貼り付けることによってシステムを試してみるのではなく、あなたが提示したテキストを読むべきです。 –
OK、あなたの質問に言い換えて、最後にゴミを取り除いた。まだまだ広範なものですが、答えることは可能です。しかし、それはまだいくつかの詳細を持っているのに役立ちます。 –