# US 7,612,776 B2 · Functions acting on arbitrary geometric paths

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

- Number: US 7,612,776 B2
- Document ID: US7612776B2
- Status: Granted
- Kind: B2
- Application number: 10/940,445
- Filed: 2004-09-14
- Published: 2005-02-10
- Granted: 2009-11-03
- Earliest claimed: 2004-09-14
- Assignees: Microsoft Corporation
- Inventors: Craig A. Hobbs
- Web page: https://patentgrep.com/patent/US7612776B2

## CPC

- G06F 40/18: of spreadsheets (form-filling G06F40/174)
- G06F 16/58: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A facility for evaluating a spreadsheet cell is described. The facility reads a function call stored in a spreadsheet cell. The function call specifies an arbitrary geometric path and an operation to be performed on the specified path. The facility performs the specified operation on the specified path, and attributes one or more values produced thereby as the evaluated value of the spreadsheet cell.

## Claims

### Claim 1

A computer-readable medium storing contents that cause a computing system to perform a method for evaluating a spreadsheet cell, comprising:
reading a function call stored in the spreadsheet cell, the function call specifying (1) an arbitrary geometric path, and (2) an operation to be performed on the specified path;
performing the specified operation on the specified path; and
attributing one or more values produced by performing the specified operation on the specified path as the evaluated value of the spreadsheet cell.

### Claim 2 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies a point in path coordinates, comprising a first path coordinate that specifies a position of an intermediate point on the path and second path coordinate that specifies a directed distance from the intermediate point to the specified point.

### Claim 3 (depends on 2)

The computer-readable medium of claim 2 wherein the path has a first end and a second end, and wherein the first path coordinate specifies the position of the intermediate point on the path by specifying an absolute distance from the first end of the path.

### Claim 4 (depends on 2)

The computer-readable medium of claim 2 wherein the path has a first end and a second end, and wherein the first path coordinate specifies the position of the intermediate point on the path by specifying a percentage of the total distance from the first end of the path to the second end of the path.

### Claim 5 (depends on 2)

The computer-readable medium of claim 2 wherein the path has a first end and a second end, and wherein the read function call further specifies whether the first path coordinate specifies the position of the intermediate point on the path relative to the first end or the second end.

### Claim 6 (depends on 1)

The computer-readable medium of claim 1 wherein the path is comprised of a series of segments, and wherein the read function call further specifies one of the series of segments on which the specified operation is to be performed.

### Claim 7 (depends on 6)

The computer-readable medium of claim 6 wherein the path has a first end and a second end, and wherein the read function call further specifies one of the series of segments by specifying (1) either the first end or the second end of the path; and (2) the number of segments away from the specified end the specified segment is.

### Claim 8 (depends on 1)

The computer-readable medium of claim 1, the method further comprising, before performing the specified operation on the specified path, normalizing the specified path.

### Claim 9 (depends on 8)

The computer-readable medium of claim 8 wherein the specified path is comprised of a series of segments, each segment of the series being either a substantive segment of the path or a superficial segment added to the path to adapt the path to its visual environment, and wherein normalizing the specified path comprises generating a normalized path corresponding to the specified path that omits any superficial segments present in the series of the specified path.

### Claim 10 (depends on 1)

The computer-readable medium of claim 1 wherein the specified path is defined in a set of path definition spreadsheet cells, the method further comprising reevaluating the spreadsheet cell containing the function call in response to determining that the value of one of the path definition spreadsheet cells of the set has changed.

### Claim 11 (depends on 1)

The computer-readable medium of claim 1 wherein the function call specifies the path by containing a reference to a path spreadsheet cell representing the path.

### Claim 12 (depends on 11)

The computer-readable medium of claim 11 wherein the reference to the path spreadsheet cell identifies the path spreadsheet cell by name.

### Claim 13 (depends on 11)

The computer-readable medium of claim 11 wherein the reference to the path spreadsheet cell identifies the path spreadsheet cell by location.

### Claim 14 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies a point in path coordinates, comprising a first path coordinate that specifies a position of an intermediate point on the path and second path coordinate that specifies a directed distance from the intermediate point to the specified point,
and wherein the operation specified by the function call is converting the path coordinates for the specified point to Cartesian coordinates.

### Claim 15 (depends on 14)

The computer-readable medium of claim 14 wherein the read function call specifies the specified operation by containing the function name PATHPOINT.

### Claim 16 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies a point in Cartesian coordinates, and wherein the operation specified by the function call is identifying a point on the specified path that is nearest the point specified in Cartesian coordinates.

### Claim 17 (depends on 16)

The computer-readable medium of claim 16 wherein the identified point is identified in path coordinates, comprising a first path coordinate that specifies a position of an intermediate point on the path and second path coordinate that specifies a directed distance from the intermediate point to the identified point.

### Claim 18 (depends on 17)

The computer-readable medium of claim 17 wherein the read function call specifies the specified operation by containing the function name PATHPARAB.

### Claim 19 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies a point on the path, and wherein the operation specified by the function call is determining an angle that is tangent to the path at the specified point.

### Claim 20 (depends on 17)

The computer-readable medium of claim 17 wherein the read function call specifies the specified operation by containing the function name PATHTAN.

### Claim 21 (depends on 14, 16)

The computer-readable medium of claim 14, 16, or 19 wherein the specified path is displayable, the method further comprising using the result of the performing the operation to display the path together with text that is tangent to the path.

### Claim 22 (depends on 1)

The computer-readable medium of claim 1 wherein the operation specified by the function call is determining the length of the path.

### Claim 23 (depends on 22)

The computer-readable medium of claim 22 wherein the read function call specifies the specified operation by containing the function name PATHLEN.

### Claim 24 (depends on 23)

The computer-readable medium of claim 23, the method further comprising using the result of the performing the operation to display the path together with the path's length.

### Claim 25 (depends on 1)

The computer-readable medium of claim 1 wherein the operation specified by the function call is determining the area of a region enclosed by the path.

### Claim 26 (depends on 25)

The computer-readable medium of claim 25 wherein the read function call specifies the specified operation by containing the function name PATHAREA.

### Claim 27 (depends on 25)

The computer-readable medium of claim 25, the method further comprising using the result of the performing the operation to display the path together with the area of a region enclosed by the path.

### Claim 28 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies (1) a second path, and (2) a point in Cartesian coordinates, and wherein the operation specified by the function call is identifying the intersection of the two specified paths that is nearest the point specified in Cartesian coordinates.

### Claim 29 (depends on 28)

The computer-readable medium of claim 28 wherein the read function call specifies the specified operation by containing the function name PATHINT.

### Claim 30 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies (1) a line, and (2) a point in Cartesian coordinates, and wherein the operation specified by the function call is identifying the intersection of the specified line with the specified path that is nearest the point specified in Cartesian coordinates.

### Claim 31 (depends on 30)

The computer-readable medium of claim 30 wherein the read function call specifies the specified operation by containing the function name PATHRAYINT.

### Claim 32 (depends on 1)

The computer-readable medium of claim 1 wherein the path is comprised of a series of segments, and wherein the read function call further specifies a coordinate identifying a position of an intermediate point on the path, and wherein the operation specified by the function call is identifying the segment of the series in which the intermediate point occurs.

### Claim 33 (depends on 32)

The computer-readable medium of claim 32 wherein the read function call specifies the specified operation by containing the function name PATHSEGMENT.

### Claim 34 (depends on 1)

The computer-readable medium of claim 1 wherein the path is comprised of a series of segments, and wherein the operation specified by the function call is determining the number of segments in the series.

### Claim 35 (depends on 34)

The computer-readable medium of claim 34 wherein the read function call specifies the specified operation by containing the function name PATHSIZE.

### Claim 36 (depends on 1)

The computer-readable medium of claim 1 wherein the read function call further specifies (1) a directed distance, and (2) a first point in Cartesian coordinates, and wherein the operation specified by the function call is identifying a second point that is the specified distance from the specified path that is nearest the first point.

### Claim 37 (depends on 36)

The computer-readable medium of claim 36 wherein the read function call specifies the specified operation by containing the function name POINTINPATH.

### Claim 38 (depends on 1)

The computer-readable medium of claim 1 wherein the operation specified by the function call is identifying a result point bound to the specified path.

### Claim 39 (depends on 38)

The computer-readable medium of claim 38 wherein the read function call specifies the specified operation by containing the function name POINTONPATH.

### Claim 40

A method performed by a computing system to evaluate a spreadsheet cell, the method comprising:
reading a function call stored in the spreadsheet cell, the function call specifying (1) an arbitrary geometric path, and (2) an operation to be performed on the specified path;
performing the specified operation on the specified path; and
attributing one or more values produced by performing the specified operation on the specified path as the evaluated value of the spreadsheet cell,
wherein code implementing the method is stored in memory of the computing system for execution by a processor of the computing system.

### Claim 41

A computing system for evaluating a spreadsheet cell, comprising:
means for reading a function call stored in the spreadsheet cell, the function call specifying (1) an arbitrary geometric path, and (2) an operation to be performed on the specified path;
means for performing the specified operation on the specified path; and
means for attributing one or more values produced by performing the specified operation on the specified path as the evaluated value of the spreadsheet cell.

### Claim 42

A computing system for evaluating a spreadsheet cell, comprising:
a memory that stores contents of the spreadsheet cell, the contents of the spreadsheet cell including a function call, the function call specifying (1) an arbitrary geometric path, and (2) an operation to be performed on the specified path; and
a processor that (1) performs the specified operation on the specified path, and attributes one or more values produced by performing the specified operation on the specified path as the evaluated value of the spreadsheet cell.
