User interface gestures
Apparatus and methods are disclosed for simultaneously tracking multiple finger and palm contacts as hands approach, touch, and slide across a proximity-sensing, multi-touch surface. Identification and classification of intuitive hand configurations and motions enables unprecedented integration of typing, resting, pointing, scrolling, 3D manipulation, and handwriting into a versatile, ergonomic computer input device.
1. A method for mapping gestures performed on a multi-touch surface to graphical user interface commands, the method comprising:
detecting a plurality of contacts on the multi-touch surface;
matching the detected plurality of contacts to distinct parts of a hand;
determining a whole hand translation by the hand across the multi-touch surface from movement of the detected plurality of contacts; and
generating a pan command in response to the whole hand translation on the multi-touch surface by taking into account movement of the detected plurality of contacts that are not matched to a palm part of the hand and ignoring movement of the detected plurality of contacts that are matched to a palm part of the hand.
2. The method of claim 1 further comprising generating a rotate command in response to detecting a hand rotation on the multi-touch surface.
3. The method of claim 2 wherein the hand rotation is rotation about a wrist.
4. The method of claim 3 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
5. The method of claim 2 wherein the hand rotation is rotation between fingers.
6. The method of claim 5 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
7. The method of claim 2 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
8. The method of claim 1 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
9. The method of claim 1 wherein the detected contacts include finger and palm contacts.
10. A method for mapping gestures performed on a multi-touch surface to graphical user interface commands, the method comprising:
detecting a plurality of contacts on the multi-touch surface;
matching the detected plurality of contacts to distinct parts of a hand;
detecting a hand rotation by the hand from movement of the detected plurality of contacts; and
generating a rotate command in response to the detected hand rotation on the multi-touch surface by taking into account movement of the detected plurality of contacts that are not matched to a palm part of the hand and ignoring movement of the detected plurality of contacts that are matched to a palm part of the hand.
11. The method of claim 10 wherein the hand rotation is rotation about a wrist.
12. The method of claim 11 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
13. The method of claim 10 wherein the hand rotation is rotation between fingers.
14. The method of claim 13 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
15. The method of claim 10 further comprising generating a zoom command in response to detecting hand scaling by uniformly flexing or extending fingers on the multi-touch surface.
16. The method of claim 10 wherein the detected contacts include finger and palm contacts.
17. A method for mapping gestures performed on a multi-touch surface to graphical user interface commands, the method comprising:
detecting a plurality of contacts on the multi-touch surface;
matching the detected plurality of contacts to distinct fingers on a hand;
detecting hand scaling by the hand resulting from the detected plurality of contacts indicating uniformly flexing or extending of the fingers on the multi-touch surface; and
generating a zoom command in response to the detected hand scaling.
18. The method of claim 17 wherein the detected of contacts include finger and palm contacts.
19. A system for mapping gestures performed on a multi-touch surface to graphical user interface commands, the system configured to:
detect a plurality of contacts on the multi-touch surface;
match the detected plurality of contacts to distinct parts of a hand;
determine a whole hand translation by the hand across the multi-touch surface from movement of the detected plurality of contacts; and
generate a pan command in response to the whole hand translation on the multi-touch surface by taking into account movement of the detected plurality of contacts that are not matched to a palm part of the hand and ignoring movement of the detected plurality of contacts that are matched to a palm part of the hand.
20. A system for mapping gestures performed on a multi-touch surface to graphical user interface commands, the system configured to:
detect a plurality of contacts on the multi-touch surface;
match the detected plurality of contacts to distinct parts of a hand;
detect a hand rotation by the hand from movement of the detected plurality of contacts; and
generate a rotate command in response to the detected hand rotation on the multi-touch surface by taking into account movement of the detected plurality of contacts that are not matched to a palm part of the hand and ignoring movement of the detected plurality of contacts that are matched to a palm part of the hand.
21. A system for mapping gestures performed on a multi-touch surface to graphical user interface commands, the system configured to:
detect a plurality of contacts on the multi-touch surface;
match the detected plurality of contacts to distinct fingers on a hand;
detect hand scaling by the hand resulting from the detected plurality of contacts indicating uniformly flexing or extending of the fingers on the multi-touch surface; and
generate a zoom command in response to the detected hand scaling.