Curve contour smoothing
First Claim
1. A computer system having one or more central process units, one or more memories, and one or more graphical user interfaces, the system further comprising:
- a representation of one or more curves in one or more of the memories, each of the curves being represented by a set of vertices;
a smoothing process for reducing memory needed for smoothed said curves, said smoothing process comprising the steps of;
a. selecting from a vertex set representing an unsmoothed curve, a first vertex, a third vertex, and a second middle vertex, the first, second middle, and third vertices being on a sequence of traversal of the curve;
b. determining the area of a triangle formed by the first, second, and third vertices;
c. comparing the area to a threshold;
d. discarding the second middle vertex if the area is less than the threshold, and selecting a next vertex as the third vertex, and redetermining a new second middle vertex;
e. marking the second middle vertex as an important vertex if the area of the triangle is greater than or equal to the threshold, and replacing the first vertex with the second middle vertex, the third vertex with the next vertex, and redetermining a new second middle vertex;
f. repeating steps b through e until a stop criteria is reached; and
g. replacing in memory said vertex set for said unsmoothed curve with a set of important vertices for a smoothed said curve.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for dramatically reducing the number of vertices defining a polygon on a grid, without significantly changing its effective enclosed area is disclosed. A smoothing process is executed on any general purpose computer system to operate on one or more representations of one or more curves. Each of the curves has a set of a plurality of vertices. The smoothing process first selects a first vertex, a third vertex, and a second middle vertex, the first, second, and third vertices being sequential but not necessarily consecutive on the curve. Then the smoothing process determines the area of a triangle formed by the first, second, and third vertices. This triangular area is compared to a threshold area. If the area is less than the threshold, new vertices are selected along the curve and the process is repeated. However if the area of the triangle is greater than or equal to the threshold, the second (middle) vertex is marked as an important vertex before a new set of vertices is selected. The reduced set of only the important vertices needed may effectively substitute for the complete set when processing the vertices and/or when rendering the curve. This is repeated along the curve until a stop criteria is reached.
-
Citations
21 Claims
-
1. A computer system having one or more central process units, one or more memories, and one or more graphical user interfaces, the system further comprising:
-
a representation of one or more curves in one or more of the memories, each of the curves being represented by a set of vertices;
a smoothing process for reducing memory needed for smoothed said curves, said smoothing process comprising the steps of;
a. selecting from a vertex set representing an unsmoothed curve, a first vertex, a third vertex, and a second middle vertex, the first, second middle, and third vertices being on a sequence of traversal of the curve;
b. determining the area of a triangle formed by the first, second, and third vertices;
c. comparing the area to a threshold;
d. discarding the second middle vertex if the area is less than the threshold, and selecting a next vertex as the third vertex, and redetermining a new second middle vertex;
e. marking the second middle vertex as an important vertex if the area of the triangle is greater than or equal to the threshold, and replacing the first vertex with the second middle vertex, the third vertex with the next vertex, and redetermining a new second middle vertex;
f. repeating steps b through e until a stop criteria is reached; and
g. replacing in memory said vertex set for said unsmoothed curve with a set of important vertices for a smoothed said curve. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A smoothing process for smoothing a curve represented as a set of vertices, a smoothed said curve being represented by a subset of said set of vertices, said smoothing process comprising the steps of:
-
a. selecting a first vertex, a third vertex, and a second middle vertex from a vertex set representing a curve, the first, second middle, and third vertices being on a sequence of traversal of the curve;
b. determining the area of a triangle formed by the first, second middle, and third vertices;
c. comparing the area to a threshold;
d. discarding the second middle vertex if the area is less than the threshold, selecting a next vertex as the third vertex, and redetermining a new second middle vertex;
e. marking the second middle vertex as an important vertex if the area of the triangle is greater than or equal to the threshold, and replacing the first vertex with the second middle vertex, the third vertex with the next vertex, and redetermining a new second middle vertex; and
f. repeating steps b through e until a stop criteria is reached; and
g. providing a set of important vertices representing a smoothed said curve. - View Dependent Claims (14, 15)
-
-
16. A system for smoothing curves each represented as a vertex set, said system comprising:
-
means for selecting from a vertex set a first vertex, a third vertex, and a second middle vertex, the first, second, and third vertices being on a sequence of traversal of the curve;
means for determining whether the area of a triangle formed by the first, second middle, and third vertices is less than a threshold;
means for discarding the second middle vertex if the area is less than the threshold, a next vertex being selected as the third vertex, and a new second middle vertex being determined;
means for marking the second middle vertex as an important vertex if the area of the triangle is greater than or equal to the threshold, the first vertex being replaced with the second middle vertex, the third vertex being replaced with the next consecutive vertex, and a new second middle vertex being determined; and
means for replacing said vertex set with an important vertex set representative of a smoothed said curve. - View Dependent Claims (17, 18)
-
-
19. A computer program product that performs the steps of:
-
a) receiving a vertex set representative of an unsmoothed curve;
b) selecting from said vertex set a first vertex, a third vertex, and a second middle vertex, the first, second middle, and third vertices being on a sequence of traversal of the curve;
c) determining whether the area of a triangle formed by the first, second middle, and third vertices is less than a threshold;
d) discarding the second vertex if the area is less than the threshold, and selecting a next vertex as the third vertex, and redetermining a new second middle vertex;
e) marking the second middle vertex as an important vertex if the area of the triangle is greater than or equal to the threshold, and replacing the first vertex with the second vertex, the third vertex with the next vertex, and redetermining a new second middle vertex;
f) repeating steps c through e until a stop criteria is reached; and
g) providing an important vertex set representative of a smooth said curve. - View Dependent Claims (20, 21)
-
Specification