# US 7,609,278 B1 · Detecting backward motion represented by a path

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

- Number: US 7,609,278 B1
- Document ID: US7609278B1
- Status: Granted
- Kind: B1
- Application number: 10/633,436
- Filed: 2003-07-31
- Granted: 2009-10-27
- Earliest claimed: 2003-07-31
- Assignees: Adobe Systems Incorporated
- Inventors: Sambit Kumar Dash
- Web page: https://patentgrep.com/patent/US7609278B1

## CPC

- G06F 3/04883: for inputting data by handwriting, e.g. gesture or text
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06T 11/23: using straight lines or curves
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Methods, systems, and apparatus, including computer program products, for processing graphical input. Input that specifies a path is received. The path includes multiple locations ordered along the path. A tracking zone is specified for each of the multiple locations based on the location and a previous location preceding the location along the path, where the tracking zone indicates a direction of the path at the location. A backward motion is detected between a first and a second location in the path if the first location's tracking zone overlaps with the second location's tracking zone. If a backward motion is detected between the first and second locations, a portion of the path connecting the first location to the second location can be replaced.

## Claims

### Claim 1

A method, comprising:
receiving input specifying a path including a plurality of locations ordered along the path;
for each location in the plurality of locations, specifying a tracking zone based on the location and a previous location preceding the location along the path, the tracking zone indicating a direction of the path at the location; and
detecting a backward motion between a first and a second location in the path if the first location's tracking zone overlaps with the second location's tracking zone;
wherein the receiving, the specifying and the detecting are performed by data processing apparatus.

### Claim 2 (depends on 1)

The method of claim 1, wherein the path further includes a starting location, the method further comprising:
specifying a tracking zone for the starting location.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
evaluating the first location's tracking zone and the second location's tracking zone to verify whether the first tracking zone overlaps with the second tracking zone.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
for each location in the plurality of locations, associating the location with a corresponding influence region having a predefined shape.

### Claim 5 (depends on 4)

The method of claim 4, wherein the influence region represents a paintbrush.

### Claim 6 (depends on 4)

The method of claim 4, wherein:
specifying a tracking zone for a location in the plurality of locations based on the location and a previous location in the path comprises specifying a tracking zone that is inside the influence region of the location and outside the influence region of the previous location.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
deleting a portion of the path if a backward motion is detected between the first and second locations, the deleted portion of the path connecting the first location to the second location and including one or more locations in the plurality of locations in the path.

### Claim 8 (depends on 7)

The method of claim 7, wherein receiving input specifying a path includes:
receiving two or more input points; and
specifying the plurality of locations in the path based on the two or more input points.

### Claim 9 (depends on 8)

The method of claim 8, wherein:
specifying the plurality of locations in the path comprises interpolating between two input points.

### Claim 10 (depends on 8)

The method of claim 8, wherein:
receiving two or more input points comprises receiving two or more input points in a two dimensional space.

### Claim 11 (depends on 8)

The method of claim 8, wherein:
receiving two or more input points comprises receiving two or more input points in a three dimensional space.

### Claim 12 (depends on 7)

The method of claim 7, further comprising:
presenting the path on a surface.

### Claim 13 (depends on 7)

The method of claim 7, wherein:
the plurality of locations in the path comprises contiguous raster points.

### Claim 14 (depends on 7)

The method of claim 7, wherein:
the first location precedes the second location along the path; and
deleting a portion of the path includes deleting the first location from the path.

### Claim 15 (depends on 7)

The method of claim 7, further comprising:
defining a new portion of the path, the new portion replacing the deleted portion.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
specifying a tracking zone for each of one or more new locations along the new portion of the path.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
specifying a new tracking zone for the second location.

### Claim 18 (depends on 1)

The method of claim 1, wherein:
receiving input includes receiving user input from a pointing device.

### Claim 19

A system for processing graphical input, the system comprising:
an interface that receives input specifying a path, the path including a plurality of locations; and
a backward motion detector that specifies a tracking zone for each location in the path based on the location and a previous location preceding the location along the path, and detects a backward motion if two of the specified tracking zones overlap.

### Claim 20 (depends on 19)

The system of claim 19, wherein:
the interface comprises a pointing device to generate the input specifying the path.

### Claim 21 (depends on 19)

The system of claim 19, further comprising:
a drawing component that corrects the path if a backward motion is detected.

### Claim 22 (depends on 21)

The system of claim 21, wherein the interface receives two or more input points, and the drawing component specifies the plurality of locations in the path based on the two or more input points.

### Claim 23 (depends on 22)

The system of claim 22, wherein the drawing component interpolates between two input points to specify the plurality of locations in the path.

### Claim 24 (depends on 22)

The system of claim 22, wherein the interface receives two or more input points in a two dimensional space.

### Claim 25 (depends on 22)

The system of claim 22, wherein the interface receives two or more input points in a three dimensional space.

### Claim 26 (depends on 21)

The system of claim 21, wherein the drawing component presents the path on a surface.

### Claim 27 (depends on 21)

The system of claim 21, wherein the plurality of locations in the path comprises contiguous raster points.

### Claim 28 (depends on 21)

The system of claim 21, wherein the path includes a first location and a second location corresponding to the two of the specified zones, the first location precedes the second location along the path, and the drawing component corrects the path by deleting two or more locations along the path, including the first location.

### Claim 29 (depends on 21)

The system of claim 21, wherein the path includes a first location and a second location corresponding to the two of the specified zones, and the drawing component corrects the path by deleting a portion of the path connecting the first location and the second location, and defining a new portion of the path that replaces the deleted portion.

### Claim 30 (depends on 29)

The system of claim 29, wherein the backward motion detector specifies a tracking zone for each of one or more new locations along the new portion of the path.

### Claim 31 (depends on 29)

The system of claim 29, wherein the backward motion detector specifies a new tracking zone for the second location.

### Claim 32 (depends on 19)

The system of claim 19, further comprising:
a non-drawing component receiving a notification from the backward motion detector if a backward motion is detected.

### Claim 33 (depends on 19)

The system of claim 19, wherein the path further includes a starting location, and the backward motion detector specifies a tracking zone for the starting location.

### Claim 34 (depends on 19)

The system of claim 19, wherein the backward motion detector evaluates the specified tracking zones to verify whether the two of the specified tracking zones overlap.

### Claim 35 (depends on 19)

The system of claim 19, wherein each location in the plurality of locations has a corresponding influence region having a predefined shape.

### Claim 36 (depends on 35)

The system of claim 35, wherein the influence region represents a paintbrush.

### Claim 37 (depends on 35)

The system of claim 35, wherein the backward motion detector specifies, for each location in the path, a tracking zone that is inside the influence region of the location and outside the influence region of the previous location.

### Claim 38

A system for processing graphical input, the system comprising:
means for receiving input specifying a path including a plurality of locations ordered along the path;
means for specifying a tracking zone for each location in the plurality of locations based on the location and a previous location preceding the location along the path, the tracking zone indicating a direction of the path at the location; and
means for detecting a backward motion between a first and a second location in the path if the first location's tracking zone overlaps with the second location's tracking zone.

### Claim 39 (depends on 38)

The system of claim 38, further comprising:
means for deleting a portion of the path if a backward motion is detected between the first and second locations, the deleted portion of the path connecting the first location to the second location and including one or more locations in the plurality of locations in the path.

### Claim 40 (depends on 39)

The system of claim 39, further comprising:
means for receiving two or more input points; and
means for specifying the plurality of locations in the path based on the two or more input points.

### Claim 41 (depends on 40)

The system of claim 40, wherein the means for specifying the plurality of locations in the path comprises means for interpolating between two input points.

### Claim 42 (depends on 40)

The system of claim 40, wherein the means for receiving two or more input points comprises means for receiving two or more input points in a two dimensional space.

### Claim 43 (depends on 40)

The system of claim 40, wherein the means for receiving two or more input points comprises means for receiving two or more input points in a three dimensional space.

### Claim 44 (depends on 39)

The system of claim 39, further comprising means for presenting the path on a surface.

### Claim 45 (depends on 39)

The system of claim 39, wherein the plurality of locations in the path comprises contiguous raster points.

### Claim 46 (depends on 39)

The system of claim 39, wherein the first location precedes the second location along the path, and the means for deleting comprises means for deleting the first location from the path.

### Claim 47 (depends on 39)

The system of claim 39, further comprising means for defining a new portion of the path, the new portion replacing the deleted portion.

### Claim 48 (depends on 47)

The system of claim 47, further comprising means for specifying a tracking zone for each of one or more new locations along the new portion of the path.

### Claim 49 (depends on 47)

The system of claim 47, further comprising means for specifying a new tracking zone for the second location.

### Claim 50 (depends on 38)

The system of claim 38, further comprising:
means for generating the input specifying the path.

### Claim 51 (depends on 38)

The system of claim 38, wherein the path further includes a starting location, the system further comprising means for specifying a tracking zone for the starting location.

### Claim 52 (depends on 38)

The system of claim 38, further comprising means for evaluating the first location's tracking zone and the second location's tracking zone to verify whether the first tracking zone overlaps with the second tracking zone.

### Claim 53 (depends on 38)

The system of claim 38, further comprising means for associating, for each location in the plurality of locations, the location with a corresponding influence region having a predefined shape.

### Claim 54 (depends on 53)

The system of claim 53, wherein the influence region represents a paintbrush.

### Claim 55 (depends on 53)

The system of claim 53, wherein the means for specifying a tracking zone comprises means for specifying a tracking zone that is inside the influence region of the location and outside the influence region of the previous location.

### Claim 56

A software product tangibly embodied in a machine-readable storage device, the software product comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
receiving input specifying a path including a plurality of locations ordered along the path;
for each location in the plurality of locations, specifying a tracking zone based on the location and a previous location preceding the location along the path, the tracking zone indicating a direction of the path at the location; and
detecting a backward motion between a first and a second location in the path if the first location's tracking zone overlaps with the second location's tracking zone.

### Claim 57 (depends on 56)

The software product of claim 56, wherein the path further includes a starting location, the software product further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
specifying a tracking zone for the starting location.

### Claim 58 (depends on 56)

The software product of claim 56, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
evaluating the first location's tracking zone and the second location's tracking zone to verify whether the first tracking zone overlaps with the second tracking zone.

### Claim 59 (depends on 56)

The software product of claim 56, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
for each location in the plurality of locations, associating the location with a corresponding influence region having a predefined shape.

### Claim 60 (depends on 59)

The software product of claim 59, wherein the influence region represents a paintbrush.

### Claim 61 (depends on 59)

The software product of claim 59, wherein:
specifying a tracking zone for a location in the plurality of locations based on the location and a previous location in the path comprises specifying a tracking zone that is inside the influence region of the location and outside the influence region of the previous location.

### Claim 62 (depends on 56)

The software product of claim 56, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
deleting a portion of the path if a backward motion is detected between the first and second locations, the deleted portion of the path connecting the first location to the second location and including one or more locations in the plurality of locations in the path.

### Claim 63 (depends on 62)

The software product of claim 62, wherein receiving input specifying a path includes:
receiving two or more input points; and
specifying the plurality of locations in the path based on the two or more input points.

### Claim 64 (depends on 63)

The software product of claim 63, wherein:
specifying the plurality of locations in the path comprises interpolating between two input points.

### Claim 65 (depends on 63)

The software product of claim 63, wherein:
receiving two or more input points comprises receiving two or more input points in a two dimensional space.

### Claim 66 (depends on 63)

The software product of claim 63, wherein:
receiving two or more input points comprises receiving two or more input points in a three dimensional space.

### Claim 67 (depends on 62)

The software product of claim 62, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
presenting the path on a surface.

### Claim 68 (depends on 62)

The software product of claim 62, wherein:
the plurality of locations in the path comprises contiguous raster points.

### Claim 69 (depends on 62)

The software product of claim 62, wherein:
the first location precedes the second location along the path; and
deleting a portion of the path includes deleting the first location from the path.

### Claim 70 (depends on 62)

The software product of claim 62, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
defining a new portion of the path, the new portion replacing the deleted portion.

### Claim 71 (depends on 70)

The software product of claim 70, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
specifying a tracking zone for each of one or more new locations along the new portion of the path.

### Claim 72 (depends on 70)

The software product of claim 70, further comprising instructions operable to cause one or more data processing apparatus to perform operations comprising:
specifying a new tracking zone for the second location.

### Claim 73 (depends on 56)

The software product of claim 56, wherein:
receiving input includes receiving user input from a pointing device.
