Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
for (Finger finger : leap.getFingerList()) {
  PVector fingerPos = leap.getTip(finger);
}

Finger Tracking 2D

4.Finger oder Hand erkennenFinger Tracking 2D

Für das erste Beispiel “LM01_1_Aktive_Finger_2D” benutzen wir nur das einfache Finger Tracking und zeichnen für jeden Finger eine Ellipse:

Code Block
for (Finger finger : leap.getFingerList())

...

 {

...


  PVector fingerPos = leap.getTip(finger);

...


  ellipse(fingerPos.x, fingerPos.y, 10, 10);

...


}

Mit diesem Beispiel lässt sich gut die Genauigkeit und die Limits (Finger eng zusammen) der Library erkennen.

...

Finger Tracking 3D

Das nächste Beispiel “LM01_2_Aktive_Finger_3D” zeigt, wie sich auch die 3D Koordinaten der Finger auslesen lassen. Dazu rufen wir ein translate() auf und zeichnen eine Sphäre an der neuen Position:

Code Block
translate(fingerPos.x, fingerPos.y, fingerPos.z);

So lässt sich erkennen, dass der Nullpunkt der z-Achse sich direkt über dem LeapMotion Controller befindet.

...

Hand Tracking 3D

Im letzten Beispiel “LM01_3_Aktive_Hand_3D” verwenden wir die Lage der Hand um eine virtuelle Box zu steuern. Auch hier lässt sich zum einen direkt die Position der Hand als PVector auslesen:

Code Block
PVector handPosition = leap.getPosition(hand);

Den Roll, Pitch und Yaw der Hand bekommen wir durch:

Code Block
float pitch = leap.getPitch(hand);

...


float roll = leap.getRoll(hand);

...


float yaw = leap.getYaw(hand);

Diese Werte können wir dann verwenden um die virtuelle Box um die gleichen Werte zu rotieren:

Code Block
rotateX(radians(map(pitch, -30, 30, 45, -45)));

...


rotateZ(radians(map(roll, -40, 40, 45, -45)));

LeapMotion_01_3

Aufgaben

  • Schaut euch die Gesture-Regocnition Beispiele der Library an
  • Kreiert eine eigene Geste, welche durch den LeapMotion Controller erkannt werden kann

...