Switching input rails without a release command in a natural user interface
First Claim
1. A system for transitioning from one gesture to another in a natural user interface without an explicit termination therebetween, said system comprising:
- a memory area associated with a computing device, the memory area storing image data corresponding to user input received from a user via a natural user input interface, the memory area further storing rail data describing a first virtual rail and a second virtual rail; and
a processor programmed to;
calculate a vector difference between an adjustment start position and a current position of the user input, the calculated vector difference having a vector position and a vector length, the adjustment start position representing an initial position at which the user input begins, the first virtual rail corresponding to the adjustment start position and a first command in an application, the second virtual rail corresponding to the current position and a second command in the application;
determine an angle of the vector relative to the first virtual rail;
compare the vector length to a threshold length and the angle of the vector to an angle threshold;
if the vector length and the angle of the vector indicate a transition from the first virtual rail to the second virtual rail, compare the vector length to a rail adjustment threshold;
based on the comparisons of the vector length to the threshold length, the angle of the vector to the angle threshold, and the vector length to the rail adjustment threshold, match the user input to the second virtual rail; and
identify to the application the second virtual rail such that the application performs the second command.
2 Assignments
0 Petitions
Accused Products
Abstract
User input in the form of image data is received from a user via a natural user interface. A vector difference between an adjustment start position and a current position of the user input is calculated. The vector difference includes a vector position and a vector length. The vector position is compared to stored rail data, and the vector length is compared to a stored threshold length. The rail data describes a plurality of virtual rails associated with an application. Based on the comparisons, the user input is matched to one of the plurality of virtual rails and a notification describing the matching is provided to the application. The application, thereupon, transitions from a first command to a second command corresponding to the matching virtual rail without receiving any explicit termination gesture for the first command from the user.
33 Citations
20 Claims
-
1. A system for transitioning from one gesture to another in a natural user interface without an explicit termination therebetween, said system comprising:
-
a memory area associated with a computing device, the memory area storing image data corresponding to user input received from a user via a natural user input interface, the memory area further storing rail data describing a first virtual rail and a second virtual rail; and a processor programmed to; calculate a vector difference between an adjustment start position and a current position of the user input, the calculated vector difference having a vector position and a vector length, the adjustment start position representing an initial position at which the user input begins, the first virtual rail corresponding to the adjustment start position and a first command in an application, the second virtual rail corresponding to the current position and a second command in the application; determine an angle of the vector relative to the first virtual rail; compare the vector length to a threshold length and the angle of the vector to an angle threshold; if the vector length and the angle of the vector indicate a transition from the first virtual rail to the second virtual rail, compare the vector length to a rail adjustment threshold; based on the comparisons of the vector length to the threshold length, the angle of the vector to the angle threshold, and the vector length to the rail adjustment threshold, match the user input to the second virtual rail; and identify to the application the second virtual rail such that the application performs the second command. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
accessing, by a computing device, image data corresponding to user input received from a user via a natural user interface; calculating a vector difference between an adjustment start position and a current position of the user input, the calculated vector difference having a vector position and a vector length, the adjustment start position representing an initial position at which the user input begins; determining an angle of the vector relative to the first virtual rail; comparing the vector position to rail data and the angle of the vector to an angle threshold, the rail data describing a first virtual rail and a second virtual rail, the first virtual rail corresponding to the adjustment start position and a first command in an application, the second virtual rail corresponding to the current position and a second command in the application; if the vector position and the angle of the vector indicate a transition from the first virtual rail to the second virtual rail, compare the vector length to a rail adjustment threshold; matching the user input to the second virtual rail based, at least in part, on the comparisons of the vector position, the angle of the vector, and the vector length; and providing notification to the application of the second virtual rail, wherein the application automatically transitions from the first command to the second command. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. One or more computer storage media embodying computer-executable components, said components comprising:
-
a user interface component executable to cause at least one processor to access image data corresponding to user input received from a user via a natural user interface; a motion tracking component executable to cause at least one processor to calculate a vector difference between an adjustment start position and a current position of the user input, the calculated vector difference having a vector position a vector length, and an angle of the vector relative to a first virtual rail, the adjustment start position representing an initial position at which the user input begins; a rail adjustment component executable to cause at least one processor to compare the vector position to rail data and compare the angle of the vector to an angle threshold, the rail data describing a first virtual rail and a second virtual rail, the first virtual rail corresponding to the adjustment start position and a first command in an application, the second virtual rail corresponding to the current position and a second command in the application, and if the vector position and the angle of the vector indicate a transition from the first virtual rail to the second virtual rail, compare the vector length to a rail adjustment threshold, wherein the rail adjustment component matches the user input to the second virtual rail based, at least in part, on the comparison of the vector position to the data, the angle of the vector to the angle threshold, and the vector length to the rail adjustment threshold; and a control component executable to cause at least one processor to identify, to the application, the second virtual rail, wherein the application automatically transitions from the first command to the second command. - View Dependent Claims (17, 18, 19, 20)
-
Specification