# US 10,872,454 B2 · Panning animations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,872,454 B2
- Document ID: US10872454B2
- Status: Granted
- Kind: B2
- Application number: 13/345,073
- Filed: 2012-01-06
- Published: 2013-07-11
- Granted: 2020-12-22
- Earliest claimed: 2012-01-06
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Megan A. Bates; Song Zou; Shaojie Zhang; Ross N. Luengen
- Inventors: Megan A. Bates; Song Zou; Shaojie Zhang; Ross N. Luengen
- Web page: https://patentgrep.com/patent/US10872454B2

## CPC

- G06T 13/80: Two-dimensional [2D] animation, e.g. using sprites
- G06F 3/0485: Scrolling or panning
- G06F 3/04883: for inputting data by handwriting, e.g. gesture or text
- G06T 13/20: Three-dimensional [3D] animation
- H04M 2250/12: including a sensor for measuring a physical value, e.g. temperature or motion
- H04W 52/027: {by controlling a display operation or backlight unit}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Panning animation techniques are described. In one or more implementations, an input is recognized by a computing device as corresponding to a panning animation. A distance is calculated that is to be traveled by the panning animation in a user interface output by computing device, the distance limited by a predefined maximum distance. The panning animation is output by the computing device to travel the calculated distance.

## Claims

### Claim 1

A method comprising:
recognizing, by a computing device, a first input corresponding to a first panning animation displayable in a displayed window on a user interface of the computing device;
calculating a first panning distance of the first panning animation based on the first input;
calculating a first limit on the first panning distance as a multiple of an amount of a display environment currently consumed by the displayed window;
limiting the first panning distance of the first panning animation by the first limit;
calculating an amount of time that is to be used to output the first panning animation, wherein the amount of time is limited by a predefined maximum time;
outputting the first panning animation by the computing device on the user interface, wherein the outputting comprises performing the first panning animation based on the first panning distance and the amount of time;
recognizing a second input received during the outputting of the first panning animation;
calculating a second panning distance of a second panning animation based on the second input;
calculating a second limit on the second panning distance, the second limit extending the first limit responsive to the second input being recognized as corresponding to continuing a movement of the first panning animation faster or further in the user interface by the second panning animation in a same direction as the first panning animation;
limiting the second panning distance of the second panning animation by the second limit; and
interrupting the outputting of the first panning animation when the second input corresponding to the second panning animation is received, to output the second panning animation by the computing device to travel the second panning distance, wherein the amount of time that is to be used to output the second panning animation remains limited by the predefined maximum time.

### Claim 2 (depends on 1)

The method as described in claim 1, wherein the first input is a touch input detected using touch functionality of the computing device.

### Claim 3 (depends on 1)

The method as described in claim 1, wherein the first panning distance indicated by the first input is calculated based on a velocity associated with the first input.

### Claim 4 (depends on 1)

The method as described in claim 1, wherein the outputting of the first panning animation includes applying a deceleration rate to a velocity associated with the first input to travel the first panning distance.

### Claim 5 (depends on 1)

The method as described in claim 1, further comprising calculating a time that is to be used to perform the outputting of the first panning animation, the time limited by the predefined maximum time.

### Claim 6 (depends on 5)

The method as described in claim 5, wherein the time is based on a velocity associated with the first input.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
applying an animation curve to perform the first panning animation based on the first panning distance and the amount of time.

### Claim 8 (depends on 7)

The method of claim 7, wherein the animation curve is a cubic Bezier animation curve.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first panning animation continues after a provision of the first input stops.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first limit is calculated irrespective of a size of a window that is not currently displayed on the user interface.

### Claim 11

One or more non-transitory computer-readable storage media maintaining instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
recognizing, by a computing device, a first input corresponding to a first panning animation displayable in a displayed window on a user interface of the computing device;
calculating a first panning distance of the first panning animation based on the first input;
calculating a first limit on the first panning distance as a multiple of an amount of a display environment currently consumed by the displayed window;
limiting the first panning distance of the first panning animation by the first limit;
calculating an amount of time that is to be used to output the first panning animation, wherein the amount of time is limited by a predefined maximum time;
outputting the first panning animation by the computing device on the user interface, wherein the outputting comprises performing the first panning animation based on the first panning distance and the amount of time;
recognizing a second input received during the outputting of the first panning animation;
calculating a second panning distance of a second panning animation based on the second input;
calculating a second limit on the second panning distance, the second limit extending the first limit responsive to the second input being recognized as corresponding to continuing a movement of the first panning animation faster or further in the user interface by the second panning animation in a same direction as the first panning animation;
limiting the second panning distance of the second panning animation by the second limit; and
interrupting the outputting of the first panning animation when the second input corresponding to the second panning animation is received, to output the second panning animation by the computing device to travel the second panning distance, wherein the amount of time that is to be used to output the second panning animation remains limited by the predefined maximum time.

### Claim 12 (depends on 11)

The one or more non-transitory computer-readable storage media of claim 11, wherein the operations further comprise:
applying an animation curve to perform the first panning animation based on the first panning distance and the amount of time.

### Claim 13 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, wherein the animation curve is a cubic Bezier animation curve.

### Claim 14

A system comprising:
one or more processors; and
one or more computer-readable storage media maintaining instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
recognizing, by a computing device, a first input corresponding to a first panning animation displayable in a displayed window on a user interface of the computing device;
calculating a first panning distance of the first panning animation based on the first input;
calculating a first limit on the first panning distance as a multiple of an amount of a display environment currently consumed by the displayed window;
limiting the first panning distance of the first panning animation by the first limit;
calculating an amount of time that is to be used to output the first panning animation, wherein the amount of time is limited by a predefined maximum time;
outputting the first panning animation by the computing device on the user interface, wherein the outputting comprises performing the first panning animation based on the first panning distance and the amount of time;
recognizing a second input received during the outputting of the first panning animation;
calculating a second panning distance of the second panning animation based on the second input;
calculating a second limit on the second panning distance, the second limit extending the first limit responsive to the second input being recognized as corresponding to continuing a movement of the first panning animation faster or further in the user interface by the second panning animation in a same direction as the first panning animation;
limiting the second panning distance of a second panning animation by the second limit; and
interrupting the outputting of the first panning animation when the second input corresponding to the second panning animation is received, to output the second panning animation by the computing device to travel the second panning distance, wherein the amount of time that is to be used to output the second panning animation remains limited by the predefined maximum time.

### Claim 15 (depends on 14)

The system as described in claim 14, wherein the first panning distance is based on a velocity of the first input.

### Claim 16 (depends on 15)

The system as described in claim 15, the operations further comprising:
applying the velocity and a constant deceleration rate to the first panning animation such that the first panning animation approximates the velocity of the first input initially and then decelerates according to the constant deceleration rate.

### Claim 17 (depends on 15)

The system as described in claim 15, wherein the amount of time is based on the velocity of the first input.

### Claim 18 (depends on 17)

The system as described in claim 17, the operations further comprising:
applying an animation curve to perform the first panning animation based on the first panning distance and the amount of time.

### Claim 19 (depends on 18)

The system as described in claim 18, wherein the animation curve is a cubic Bezier animation curve.

### Claim 20 (depends on 14)

The system of claim 14, wherein the first input is a touch input detected using touch functionality of the computing device.
