IP Library › Granted Patent US 8,957,918
Granted Patent B2
US 8,957,918 · App. 12/611,549 · Granted Feb 17, 2015

Methods for implementing multi-touch gestures on a single-touch touch surface

Inventor: Sri Venkatesh Godavari (Hyderabad, IN)
Assignee: QUALCOMM Incorporated
G06F3/0416G06F3/04883G06F2203/04104
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 8,957,918
App. No.
12/611,549
Granted
Feb 17, 2015
Kind
B2
Abstract

Methods for activating multi-touch functionality by recognizing and processing multi-touch interactions on a touch surface of non-multi-touch computing devices. The computing device may detect a jump from the location of the first touch event to determine that a multiple touch gesture is being traced. Virtual touch events are detected and stored. Using mathematical formulae, parameters are calculated based on initial and subsequent virtual touch event locations. Based on these parameters the multi-touch functionality is determined, such as a zooming or rotating function. A transform factor may be determined and applied to the image display.

Claims (122)

1. A method for implementing a multi-touch gesture on a computing device having a non-multi-touch touch surface user input device, comprising:

detecting a first location P 1 of a touch event on the non-multi-touch touch surface user input device;

storing coordinates X1, Y1 of the first location P 1 of the touch event on the non-multi-touch touch surface user input device;

detecting a jump in location of the touch event to a second virtual location P 3 on the non-multi-touch touch surface user input device without detecting a touch-up event;

activating multi-touch functionality when the jump in location determined as a distance c between locations P 1 and P 3 exceeds a predetermined threshold distance;

storing the distance c and coordinates X3, Y3 of the second virtual location P 3 of the touch event following the detected jump;

determining a third virtual location P 3 ′ of the touch event upon input of a multi-touch gesture without detecting a touch-up event;

storing coordinates X3′, Y3′ of the third virtual location P 3 ′;

determining and storing a distance c′ between locations P 1 and P 3 ′, an angle D between lines P 1 P 3 and P 1 P 3 ′, a distance C along an X-axis between P 1 and P 3 , and a distance C′ along the X-axis between P 3 and P 3 ′;

determining a graphical user interface function to be implemented based on applying the stored parameters of c, c′, D, C, and C′ to a gestures data table; and

implementing the determined graphical user interface function.

2. The method of claim 1 , wherein the determined graphical user interface function is a transform function, the method further comprising determining a transform factor based on the stored parameters of c, c′, D, C, and C′.

3. The method of claim 1 , wherein the determined graphical user interface function is an image zoom transform function,

further comprising determining a magnification transform factor based on the stored parameters of c and c′,

wherein implementing the determined graphical user interface function comprises applying a zoom magnification to a displayed image based upon the determined magnification transform factor.

4. The method of claim 1 , wherein the determined graphical user interface function is an image rotation transform function,

further comprising determining a rotation transform factor based on the stored parameters of D, C, and C′,

wherein implementing the determined graphical user interface function comprises rotating a displayed image based upon the determined rotation transform factor.

5. The method of claim 4 , wherein the rotation transform factor non-linearly increases as an angle spanned by the multi-touch gesture increases.

6. The method of claim 1 , wherein determining a graphical user interface function comprises:

determining a magnification transform factor based on the stored parameters of c and c′, and

determining a rotation transform factor based on the stored parameters of D, C, and C′,

wherein implementing the determined graphical user interface function comprises:

applying a zoom magnification to a displayed image based upon the determined magnification transform factor; and

rotating the displayed image based upon the determined rotation transform factor.

7. The method of claim 1 , wherein determining a graphical user interface function to be implemented is performed by an operating system.

8. The method of claim 1 , wherein determining a graphical user interface function to be implemented is performed by an application programming interface (API).

9. A computing device, comprising:

a processor;

a non-multi-touch touch surface user interface device coupled to the processor

a memory coupled to the processor; and

a display coupled to the processor,

wherein the processor is configured with processor-executable instructions to perform processes comprising:

detecting a first location P 1 of a touch event on the non-multi-touch touch surface user interface device;

storing coordinates X1, Y1 of the first location P 1 of the touch event on the non-multi-touch touch surface user interface device;

detecting a jump in location of the touch event to a second virtual location P 3 on the non-multi-touch touch surface user interface device without detecting a touch-up event;

activating multi-touch functionality when the jump in location determined as a distance c between locations P 1 and P 3 exceeds a predetermined threshold distance;

storing the distance c and coordinates X3, Y3 of the second virtual location P 3 of the touch event following the detected jump;

determining a third virtual location P 3 ′ of the touch event upon input of a multi-touch gesture on the non-multi-touch touch surface without detecting a touch-up event;

storing coordinates X3′, Y3′ of the third virtual location P 3 ′;

determining and storing a distance c′ between locations P 1 and P 3 ′, an angle D between lines P 1 P 3 and P 1 P 3 ′, a distance C along an X-axis between P 1 and P 3 , and a distance C′ along the X-axis between P 3 and P 3 ′;

determining a graphical user interface function to be implemented based on applying the stored parameters of c, c′, D, C, and C′ to a gestures data table; and

implementing the determined graphical user interface function.

10. The computing device of claim 9 , wherein:

the determined graphical user interface function is a transform function; and

the processor is configured with processor-executable instructions to perform processes further comprising determining a transform factor based on the stored parameters of c, c′ ,D, C, and C′.

11. The computing device of claim 9 , wherein:

the determined graphical user interface function is an image zoom transform function;

the processor is configured with processor-executable instructions to perform processes further comprising determining a magnification transform factor based on the stored parameters of c and c′; and

the processor is configured with processor-executable instructions to perform processes for implementing the determined graphical user interface function comprising applying a zoom magnification to a displayed image based upon the determined magnification transform factor.

12. The computing device of claim 9 , wherein:

the determined graphical user interface function is an image rotation transform function;

the processor is configured with processor-executable instructions to perform processes further comprising determining a rotation transform factor based on the stored parameters of D, C, and C′; and

the processor is configured with processor-executable instructions such that the determined graphical user interface function comprises rotating a displayed image based upon the determined rotation transform factor.

13. The computing device of claim 12 , wherein the processor is configured with processor-executable instructions to perform processes such that the rotation transform factor non-linearly increases as an angle spanned by the multi-touch gesture increases.

14. The computing device of claim 9 , wherein:

the processor is configured with processor-executable instructions to perform processes such that determining a graphical user interface function comprises:

determining a magnification transform factor based on the stored parameters of c and c′; and

determining a rotation transform factor based on the stored parameters of D, C, and C′; and

the processor is configured with processor-executable instructions to perform processes such that implementing the determined graphical user interface function comprises:

applying a zoom magnification to a displayed image based upon the determined magnification transform factor; and

rotating the displayed image based upon the determined rotation transform factor.

15. The computing device of claim 9 , wherein the processor is configured with processor-executable instructions to perform processes such that determining a graphical user interface function to be implemented is performed by an operating system.

16. The computing device of claim 9 , wherein the processor is configured with processor-executable instructions to perform processes such that determining a graphical user interface function to be implemented is performed by an application programming interface (API).

17. A computing device, comprising:

means for detecting a first location P 1 of a touch event on a non-multi-touch touch surface;

means for storing coordinates X1, Y1 of the first location P 1 of the touch event on the non-multi-touch touch surface;

means for detecting a jump in location of the touch event to a second virtual location P 3 on the non-multi-touch touch surface without detecting a touch-up event;

means for activating multi-touch functionality when the jump in location determined as a distance c between locations P 1 and P 3 exceeds a predetermined threshold distance;

means for storing the distance c and coordinates X3, Y3 of the second virtual location P 3 of the touch event following the detected jump;

means for determining a third virtual location P 3 ′ of the touch event upon input of a multi-touch gesture without detecting a touch-up event;

means for storing coordinates X3′, Y3′ of the third virtual location P 3 ′;

means for determining a distance c′ between locations P 1 and P 3 ′, an angle D between lines P 1 P 3 and P 1 P 3 ′, a distance C along an X-axis between P 1 and P 3 , and a distance C′ along the X-axis between P 3 and P 3 ′;

means for storing parameters c′, D , C, and C′;

means for determining a graphical user interface function to be implemented based on applying the stored parameters of c, c′, D, C, and C′ to a gestures data table; and

means for implementing the determined graphical user interface function.

18. The computing device of claim 17 , wherein the determined graphical user interface function is a transform function, the computing device further comprising means for determining a transform factor based on the stored parameters of c, c′, D, C, and C′.

19. The computing device of claim 17 , wherein:

the determined graphical user interface function is an image zoom transform function;

the computing device further comprises means for determining a magnification transform factor based on the stored parameters of c and c′; and

means for implementing the determined graphical user interface function comprises means for applying a zoom magnification to a displayed image based upon the determined magnification transform factor.

20. The computing device of claim 17 , wherein:

the determined graphical user interface function is an image rotation transform function;

the computing device further comprises means for determining a rotation transform factor based on the stored parameters of D, C, and C′; and

means for implementing the determined graphical user interface function comprises means for rotating a displayed image based upon the determined rotation transform factor.

21. The computing device of claim 20 , wherein the means for determining the rotation transform factor non-linearly increases the rotation transform factor as an angle spanned by the multi-touch gesture increases.

22. The computing device of claim 17 , wherein means for determining a graphical user interface function to be implemented comprises:

means for determining a magnification transform factor based on the stored parameters of c and c′; and

means for determining a rotation transform factor based on the stored parameters of D, C, and C′,

wherein the means for implementing the determined graphical user interface function comprises:

means for applying a zoom magnification to a displayed image based upon the determined magnification transform factor; and

means for rotating the displayed image based upon the determined rotation transform factor.

23. The computing device of claim 17 , wherein means for determining a graphical user interface function to be implemented is a processor executing part of an operating system.

24. The computing device of claim 17 , wherein means for determining a graphical user interface function to be implemented is a processor executing an application programming interface (API).

25. A non-transitory computer-readable storage medium having stored thereon processor-executable instructions configured to cause a processor to perform operations comprising:

detecting a first location P 1 of a touch event on a non-multi-touch touch surface;

storing coordinates X1, Y1 of the first location P 1 of the touch event on the non-multi-touch touch surface;

detecting a jump in location of the touch event to a second virtual location P 3 on the non-multi-touch touch surface without detecting a touch-up event;

activating multi-touch functionality when the jump in location determined as a distance c between locations P 1 and P 3 exceeds a predetermined threshold distance;

storing the distance c and coordinates X3, Y3 of the second virtual location P 3 of the touch event following the detected jump;

determining a third virtual location P 3 ′ of the touch event upon input of a multi-touch gesture without detecting a touch-up event;

storing coordinates X3′, Y3′ of the third virtual location P 3 ′;

determining and storing a distance c′ between locations P 1 and P 3 ′, an angle D between lines P 1 P 3 and P 1 P 3 ′, a distance C along an X-axis between P 1 and P 3 , and a distance C′ along the X-axis between P 3 and P 3 ′;

determining a graphical user interface function to be implemented based on applying the stored parameters of c, c′, D, C, and C′ to a gestures data table; and

implementing the determined graphical user interface function.

26. The non-transitory computer-readable storage medium of claim 25 , wherein the determined graphical user interface function is a transform function, further comprising stored processor-executable instructions configured to cause a processor to perform operations comprising determining a transform factor based on the stored parameters of c, c′ ,D, C, and C′.

27. The non-transitory computer-readable storage medium of claim 25 , wherein the determined graphical user interface function is a image zoom transform function,

wherein the stored processor-executable instructions are configured to cause a processor to perform operations further comprising determining a magnification transform factor based on the stored parameters of c and c′, and

wherein the stored processor-executable instructions are configured to cause a processor to perform operations such that implementing the determined graphical user interface function comprises instructions configured to cause a processor to perform operations comprising applying a zoom magnification to a displayed image based upon the determined magnification transform factor.

28. The non-transitory computer-readable storage medium of claim 25 , wherein the determined graphical user interface function is an image rotation transform function,

wherein the stored processor-executable instructions are configured to cause a processor to perform operations further comprising determining a rotation transform factor based on the stored parameters of D, C, and C′, and

wherein the stored processor-executable instructions are configured to cause a processor to perform operations such that implementing the determined graphical user interface function comprises rotating a displayed image based upon the determined rotation transform factor.

29. The non-transitory computer-readable storage medium of claim 28 , wherein the stored processor-executable instructions are configured to cause a processor to perform operations such that the rotation transform factor non-linearly increases as an angle spanned by the multi-touch gesture increases.

30. The non-transitory computer-readable storage medium of claim 25 , wherein:

the stored processor-executable instructions are configured to cause a processor to perform operations such that determining a graphical user interface function to be implemented comprises:

determining a magnification transform factor based on the stored parameters of c and c′; and

determining a rotation transform factor based on the stored parameters of D, C, and C′; and

the stored processor-executable instructions are configured to cause a processor to perform operations for implementing the determined graphical user interface function by:

applying a zoom magnification to a displayed image based upon the determined magnification transform factor; and

rotating the displayed image based upon the determined rotation transform factor.

31. The non-transitory computer-readable storage medium of claim 25 , wherein the stored processor-executable instructions are configured to cause a processor to perform operations such that determining a graphical user interface function to be implemented is implemented in an operating system.

32. The non-transitory computer-readable storage medium of claim 25 , wherein the stored processor-executable instructions are configured to cause a processor to perform operations such that determining a graphical user interface function to be implemented is implemented as an application programming interface (API).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2009
From: GODAVARI, SRI VENKATESH
To: QUALCOMM INCORPORATED
Reel/Frame 023467/0661 →
Continuity (1)
Related Publication 20110102464A1 · May 5, 2011