I currently work for a software company, and one of my tasks was to implement mouse gesture recognition. One of the senior developers helped me get started and provided code / projects that use Unistroke Recognizer $ 1 http://depts.washington.edu/aimgroup/proj/dollar/ . I get in broad what Unistroke Recognizer $ 1 does and how it works, but I'm a little overloaded with trying to figure out all the internal details / finer details.
My problem is that I am trying to recognize the gesture of moving the mouse, then up. The Unistroke Recognizer $ 1 recognizes that the gesture I created was a down gesture, and that is what it should do. What I really would like to do is say: "I acknowledge the fingerprint gesture AND THEN the upward gesture."
I don’t know if it’s completely incomprehensible how to recognize Unistroke Recognizer by making me scratch my head, but does anyone have any ideas on how to recognize two different gestures when moving the mouse down and then up?
Here is my idea that I thought might help me, but I would like someone to be an expert or even know a little more than me to tell me what you think. Any help or resources that you know will be greatly appreciated.
How does my application work:
The way my current application works is that I take the points from which the mouse pointer is located when the user holds the left mouse button. Then the list of points receives a feed to the gesture recognizer, and then splashes out what it considers to be the best shape / gesture that coordinates the captured points.
My idea:
What I wanted to do was before I feed the points in the gesture recognizer in order to somehow go through all the points and split them into separate lines or curves. Thus, I could feed each line / curve one at a time and from the main movements down, up, left, right, diagonals and curves, which I could determine the final shape / gesture.
One way that I thought would be good at determining if there are separate lines in my list of items is by selecting groups of points and viewing their slope. If the slope of the sample group of points was X% different from some other group of sample points, then it would be safe to assume that there is indeed a separate line.
What I think about possible problems in my thinking:
Where can I determine the end of a line and the beginning of a single line? If I used the idea of checking the slope of a group of points, then I decided that there is a separate line, which does not mean that I definitely found the slope of a single line. For example, if you were to draw a straight left "L" at a right angle and try to tilt the points around the "L" corner, you will see that the tilt will give a clear indication of the existence of a separate line, but these points do not correspond to the beginning of a separate line.
How to deal with the ever-changing slope of the curve? The initial sign that I use, processes the curves already the way I want it. But I don’t want my method, which I used to define individual lines, to continue to search for these so-called individual lines on the curve, because its slope changes all the time when I select groups of points. Would I just stop the sample points as soon as the slope changes by more than X% so many times in a row?
I do not use the correct “type” of mathematics to define single lines. Math is not my strongest topic, but I did some research. I tried to look at Dot Products and see if it would point me in a certain direction, but I don't know if that would be so. Has anyone used Dot Prodcuts to do something similar or some other method?
Final thoughts, comments and thanks:
Part of my problem that I feel about is that I don’t know how to arrange my question. I would not be surprised if this problem has already been asked (one way or another), and there is a solution that could be Googled. But my Google search results didn’t provide any solutions, since I don’t know exactly how to ask my question. If you feel this is confusing, please let me know where and why, and I will help clarify this. In this case, perhaps my searches on Google will become more accurate, and I can find a solution.
I just want to thank you again for reading my post. I know him for a long time, but I did not know where else to ask about it. Imma talks to some other people around the office, but all of my best solutions that I used at school came from the StackOverflow community, so I am very grateful to you.
Editing this entry:
(7/6 4:00 PM) Another idea that I was thinking about was to compare all the points in front of the Min / Max point. For example, if I move the mouse down, then up, the starting point would be the current Max point, and the point at which I start moving the mouse back will be my minute. I could go further and see if there are any points after the minimum point, and if they say so, a new potential line may arise. I don’t know how well this will work on other forms such as stars, but this is another thing that I am going to learn. Has anyone done something like this?