IP Library Granted Patent US 9,910,586
Granted Patent B2
US 9,910,586 · App. 15/059,590 · Granted Mar 6, 2018

Apparatus, method, and program product for detecting input gestures

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,910,586
App. No.
15/059,590
Granted
Mar 6, 2018
Kind
B2
Abstract

Apparatuses, methods, and program products are disclosed for detecting input gestures. In one method, an input is detected by use of a processor. Moreover, the method may include determining a centric position of the input. A vertical axis and a horizontal axis of a virtual coordinate plane may extend through the centric position of the input such that an origin of the virtual coordinate plane is positioned within the centric position of the input. The method may also include determining that the input includes a circular gesture if the input intersects at least a positive point on a first axis extending through the origin, a negative point on the first axis, a positive point on a second axis extending through the origin, and a negative point on the second axis.

Claims (44)

1. An apparatus comprising:

an input device;

a processor;

a memory that stores code executable by the processor to:

detect an input to the input device;

determine a centric position of the input, wherein a vertical axis and a horizontal axis of a virtual coordinate plane extend through the centric position of the input such that an origin of the virtual coordinate plane is positioned within the centric position of the input; and

determine that the input is a circular gesture, wherein determining that the input is a circular gesture consists essentially of determining that the input intersects:

a positive point on a first axis extending through the origin;

a negative point on the first axis;

a positive point on a second axis extending through the origin; and

a negative point on the second axis.

2. The apparatus of claim 1 , wherein the code executable by the processor to determine the centric position of the input further comprises code executable by the processor to determine a centroid of the input.

3. The apparatus of claim 1 , wherein the memory further comprises code executable by the processor to determine whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis.

4. The apparatus of claim 3 , wherein the memory further comprises code executable by the processor to determine a plurality of data points positioned on the virtual coordinate plane, wherein each data point of the plurality of data points corresponds to a respective input data sample of the input.

5. The apparatus of claim 4 , wherein the code executable by the processor to determine whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis comprises code executable by the processor to determine whether a line segment formed by connecting two data points of the plurality of data points passes through at least one of the first axis and the second axis, wherein the two data points correspond to two consecutive input data samples of the input.

6. The apparatus of claim 3 , wherein the code executable by the processor to determine whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis comprises code executable by the processor to determine whether the input intersects the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis at least a predetermined distance from the origin.

7. The apparatus of claim 3 , wherein the memory further comprises code executable by the processor to down-sample input data samples of the input to produce a reduced number of input data samples.

8. The apparatus of claim 7 , wherein the memory further comprises code executable by the processor to determine a plurality of data points positioned on the virtual coordinate plane, wherein each data point of the plurality of data points corresponds to a respective input data sample of the reduced number of input data samples.

9. A method comprising:

detecting, by use of a processor, an input;

determining a centric position of the input, wherein a vertical axis and a horizontal axis of a virtual coordinate plane extend through the centric position of the input such that an origin of the virtual coordinate plane is positioned within the centric position of the input; and

determining that the input is a circular gesture, wherein determining that the input is a circular gesture consists essentially of determining that the input intersects:

a positive point on a first axis extending through the origin;

a negative point on the first axis;

a positive point on a second axis extending through the origin; and

a negative point on the second axis.

10. The method of claim 9 , wherein detecting the input comprises detecting a written gesture input.

11. The method of claim 9 , wherein determining the centric position of the input comprises determining a centroid of the input.

12. The method of claim 9 , further comprising determining whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis.

13. The method of claim 12 , further comprising determining a plurality of data points positioned on the virtual coordinate plane, wherein each data point of the plurality of data points corresponds to a respective input data sample of the input.

14. The method of claim 13 , wherein determining whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis comprises determining whether a line segment formed by connecting two data points of the plurality of data points passes through at least one of the first axis and the second axis, wherein the two data points correspond to two consecutive input data samples of the input.

15. The method of claim 12 , further comprising down-sampling input data samples of the input to produce a reduced number of input data samples.

16. The method of claim 15 , further comprising determining a plurality of data points on the virtual coordinate plane, wherein each data point of the plurality of data points corresponds to a respective input data sample of the reduced number of input data samples.

17. A program product comprising a computer readable storage medium that stores code executable by a processor, the executable code comprising code to perform:

detecting an input;

determining a centric position of the input, wherein a vertical axis and a horizontal axis of a virtual coordinate plane extend through the centric position of the input such that an origin of the virtual coordinate plane is positioned within the centric position of the input; and

determining that the input is a circular gesture, wherein determining that the input is a circular gesture consists essentially of determining that the input intersects:

a positive point on a first axis extending through the origin;

a negative point on the first axis;

a positive point on a second axis extending through the origin; and

a negative point on the second axis.

18. The program product of claim 17 , wherein the code further comprises code to perform determining whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis.

19. The program product of claim 18 , wherein the code further comprises code to perform determining a plurality of data points positioned on the virtual coordinate plane, wherein each data point of the plurality of data points corresponds to a respective input data sample of the input.

20. The program product of claim 19 , wherein the code to perform determining whether the input intersects at least the positive point on the first axis, the negative point on the first axis, the positive point on the second axis, and the negative point on the second axis further comprises code to perform determining whether a line segment formed by connecting two data points of the plurality of data points passes through at least one of the first axis and the second axis, wherein the two data points correspond to two consecutive input data samples of the input.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2019
From: LENOVO (SINGAPORE) PTE. LTD.
To: LENOVO PC INTERNATIONAL LIMITED
Reel/Frame 049693/0713 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2016
From: SCHWARZ, DAVID ALEXANDER; KELSO, SCOTT EDWARDS; NICHOLSON, JOHN WELDON; ROPER, MATTHEW PRICE
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 037882/0611 →