Erkennung von Zeigefinger + Daumen möglich?

  • Java

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Daniel Baumert.

    Erkennung von Zeigefinger + Daumen möglich?

    Hallo.

    Ich habe hier ein Bild (keine gute Qualität, aber ich hoffe man weiß, was gemeint ist).

    Ich habe vor, eine App in Android Studio zu schreiben,
    in der man einen 6cm langen Bleistift hat, wobei an der
    Spitze des Bleistifts im 90° Winkel ein Stabmagnet hängt.

    Diesen Bleistift würde ich gerne (siehe Bild im Anhang)
    mit zwei Fingern bewegen können.

    Man soll den Bleistift nach oben und unten und nach rechts sowie links bewegen können (zweidimensional).

    Meine Frage:

    -Ist die Erkennung von zwei Fingern möglich? (Jeder mensch hat unterschiedlich dicke Finger)
    -Welche Methoden / Funktionen kann man nutzen, um die Bewegung zu erfassen?


    Bin über jegliche Tipps dankbar.
    Bilder
    • Bild0004.jpg

      210,36 kB, 2.127×1.122, 132 mal angesehen
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ersteinmal danke für den Link.

    Die Pointer kann ich jetzt beide abfragen, klappt also soweit.

    Dennoch bleibt das Problem mit der Höhe und der Neigung.


    Die Koordinaten der Höhe vom Bleistift könnte man doch eigentlich per

    X: (Pointer 1.X + Pointer 2.X) / 2
    Y: (Pointer 1.Y + Pointer 2.Y) / 2

    berechnen.

    Jetzt besteht aber immernoch die Frage , wie ich die gesamte Bewegung des Bleistifts hinbekomme,
    denn mir fehlt ja die Neigung.

    Ich hatte vor für den Bleistift ein ImageView zu nutzen und dieses jenach Touchevent Daten
    neu zu positionieren.

    Habt ihr eine Idee, wie man das lösen kann?
    Bilder
    • Nueva.jpg

      323,13 kB, 2.127×1.122, 141 mal angesehen
    Weiß denn jemand, wie man das berechnen kann ? Also die Formel?

    Derzeit habe ich:

    -He ist die Bildschirmhöhe (in Pixeln)
    -xPos und yPos sind die Koordinaten vom zweiten Pointer
    -xPosOne und yPosOne sind die Koordinaten vom ersten Pointer

    int he = sized.y;

    int ycoo = ((he - yPos) + (he - yPosOne ) ) / 2;
    int xcoo = (xPosOne + xPos) / 2;
    double anglee = Math.tanh(xcoo / ycoo) * 180 / Math.PI;