IP Library › Granted Patent US 9,274,642
Granted Patent B2
US 9,274,642 · App. 13/277,222 · Granted Mar 1, 2016

Acceleration-based interaction for multi-pointer indirect input devices

Inventor: Scott Honji (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0416G06F3/04842
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,274,642
App. No.
13/277,222
Granted
Mar 1, 2016
Kind
B2
Abstract

An indirect interaction input device, such as but not limited to a touch sensor, can provide multiple points of input. These multiple points are in turn mapped to multiple positions on an output device such as a display. The multiple points of input, however, make the application of pointer ballistics and resolution differences between the input sensor and target display more difficult to manage. Thus, a characteristic of the set of points is identified and used to adjust the mapping of each of the points. For example, one way to solve this problem is to identify the input point with the least displacement from a prior frame, whether from its prior point or from a reference point. This displacement is used to adjust the mapping of the set of input points from the input device to their corresponding display coordinates.

Claims (62)

1. A computer-implemented process comprising:

receiving information describing input points from a multi-pointer indirect input device for a plurality of frames into memory, each input point having a location in a sensor coordinate system;

mapping the input points for one of the frames from locations in the sensor coordinate system to locations in a display coordinate space for a display in a computer user interface;

determining displacement of each of the input points in the one of the frames with respect to one or more other points in another of the plurality of frames;

modifying the locations of the mapped input points in the one of the frames according to the determined displacement for a selected input point with a lowest magnitude displacement, by determining an offset according to the lowest magnitude displacement, and, for each input point, adding the offset to the mapped location of the input point; and

displaying, in the display, points representing the input points in the computer user interface at the modified locations.

2. A computer-implemented process comprising:

receiving information describing input points from a multi-pointer indirect input device for a plurality of frames into memory, each input point having a location in a sensor coordinate system;

mapping the input points for one of the frames from locations in the sensor coordinate system to locations in a display coordinate space for a display in a computer user interface;

determining displacement of each of the input points in the one of the frames with respect to one or more other points in another of the plurality of frames;

modifying the locations of the mapped input points in the one of the frames according to the determined displacement for a selected input point with a lowest magnitude displacement, by applying an offset to a reference point related to the input points according to the lowest magnitude displacement and for each input point, determining a modified location for the input point according to an offset of the input point from the reference point; and

displaying, in the display, points representing the input points in the computer user interface at the modified locations.

3. The computer-implemented process of claim 1 , wherein the other point in the other frame is a position of the input point in the other frame.

4. The computer-implemented process of claim 1 , wherein the other point in the other frame is a sensor locator for the other frame.

5. The computer implemented process of claim 1 , wherein in response to the determined displacement being a small displacement, modifying the locations of the mapped input points comprises reducing displacement of the input points from one frame to a next frame.

6. The computer-implemented process of claim 1 , wherein in response to the determined displacement being a large displacement modifying the locations of the mapped input points comprises increasing displacement of the input points from one frame to a next frame.

7. The computer-implemented process of claim 1 , wherein the modifying the locations of the mapped input points comprises applying a different acceleration function for each axis.

8. The computer-implemented process of claim 1 , wherein the modifying the locations of the mapped input points comprises applying acceleration according to a magnitude of the displacement.

9. The computer-implemented process of claim 7 wherein the acceleration function is a piecewise linear function of displacement to accelerated displacement.

10. An article of manufacture, comprising:

a computer readable storage medium having computer program instructions encoded thereon that when processed by a computer instruct the computer to perform a process comprising:

receiving information describing input points from a multipointer indirect input device for a plurality of frames into memory, each input point having a location in a sensor coordinate system;

mapping the input points for one of the frames from locations in the sensor coordinate system to locations in a display coordinate space for a display in a computer user interface;

determining displacement of each of the input points in the one of the frames with respect to one or more other points in another of the plurality of frames;

modifying the locations of the mapped input points in the one of the frames according to the determined displacement for a selected input point with a lowest magnitude displacement, by determining an offset according to the lowest magnitude displacement, and, for each input point, adding the offset to its mapped location; and

displaying, in the display, points representing the input points in the computer user interface at the modified locations.

11. An article of manufacture, comprising:

a computer readable storage medium having computer program instructions encoded thereon that when processed by a computer instruct the computer to perform a process comprising:

receiving information describing input points from a multipointer indirect input device for a plurality of frames into memory, each input point having a location in a sensor coordinate system;

mapping the input points for one of the frames from locations in the sensor coordinate system to locations in a display coordinate space for a display in a computer user interface;

determining displacement of each of the input points in the one of the frames with respect to one or more other points in another of the plurality of frames;

modifying the locations of the mapped input points in the one of the frames according to the determined displacement for a selected input point with a lowest magnitude displacement, by applying an offset to a reference point related to the input points according to the lowest magnitude displacement and, for each input point, determining a modified location according to an offset of the input point from the reference point; and

displaying, in the display, points representing the input points in the computer user interface at the modified locations.

12. The article of manufacture of claim 10 , wherein modifying the locations of the mapped input points comprises applying a different acceleration function for each axis.

13. The article of manufacture of claim 12 wherein the acceleration function is a piecewise linear function of displacement to accelerated displacement.

14. A computer comprising:

one or more processors;

a computer readable storage connected to the processor, with computer program instructions stored in the storage, wherein when the processor processes the instructions, the computer is configured to:

receive information describing input points from a multipointer indirect input device for a plurality of frames into memory, each input point having a location in a sensor coordinate system;

map the input points for one of the frames from locations in the sensor coordinate system to locations in a display coordinate space for a display in a computer user interface;

determine displacement of each of the input points in the one of the frames with respect to one or more other points in another of the plurality of frames;

modify the locations of the mapped input points in the one of the frames according to the determined displacement for a selected input point with a lowest magnitude displacement, by determining an offset according to the lowest magnitude displacement, and, for each input point, adding the offset to its mapped location; and

display, in the display, points representing the input points in the computer user interface at the modified locations.

15. A computer comprising:

one or more processors;

a computer readable storage connected to the processor, with computer program instructions stored in the storage, wherein when the processor processes the instructions, the computer is configured to:

receive information describing input points from a multipointer indirect input device for a plurality of frames into memory, each input point having a location in a sensor coordinate system;

map the input points for one of the frames from locations in the sensor coordinate system to locations in a display coordinate space for a display in a computer user interface;

determine displacement of each of the input points in the one of the frames with respect to one or more other points in another of the plurality of frames;

modify the locations of the mapped input points in the one of the frames according to the determined displacement for a selected input point with a lowest magnitude displacement, by applying an offset to a reference point related to the input points according to the lowest magnitude displacement and, for each input point, determining a modified location of the input point according to an offset of the input point from the reference point; and

display, in the display, points representing the input points in the computer user interface at the modified locations.

16. The computer of claim 14 , wherein to modify the locations of the mapped inputs the computer is further configured to apply an acceleration function according to a magnitude of the displacement.

17. The computer of claim 16 wherein the acceleration function is a piecewise linear function of displacement to accelerated displacement.

18. The computer of claim 14 , wherein the other point in the other frame is a sensor locator for the other frame.

19. The computer of claim 14 , wherein in response to a small displacement the computer is configured to modify the mapped locations of the input points by reducing displacement of the input points from one frame to a next frame.

20. The computer of claim 14 , wherein in response to a large displacement the computer is configured to modify the mapped locations of the input points by increasing displacement of the input points from one frame to a next frame.

21. The computer of claim 15 , wherein, to modify the mapped locations of the input points, the computer is further configured to apply a different acceleration function for each axis.

22. The computer of claim 21 , wherein the acceleration function is a piecewise linear function of displacement to accelerated displacement.

23. The computer-implemented process of claim 2 , wherein modifying the mapped locations of the input points comprises applying a different acceleration function for each axis.

24. The computer-implemented process of claim 23 , wherein the acceleration function is a piecewise linear function of displacement to accelerated displacement.

25. The article of manufacture of claim 11 , wherein modifying the mapped locations of the input points comprises applying a different acceleration function for each axis.

26. The article of manufacture of claim 25 , wherein the acceleration function is a piecewise linear function of displacement to accelerated displacement.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2011
From: HONJI, SCOTT
To: MICROSOFT CORPORATION
Reel/Frame 027090/0047 →
Continuity (1)
Related Publication 20130100018A1 · Apr 25, 2013