Patent US6075541A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6075541A Expired / Lapsed US ⏱️ 0.0 years remaining

Topographic triangulation in reduced time

Assignee: Trimble Inc
•
Filing: 1997-11-07
•
Granted: 2000-06-13
•
Expires: 2017-11-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Method and system for rapid triangulation of a region into an array of triangles that can be used for a GIS triangulation. A dataset S of three or more distinct points is set down, and an array including a sequence of triangles is constructed, using these points as vertices. A triangle is removed from the array if at least a triangle included angle is greater than a selected threshold angle value (such as 90°) or if the ratio of triangle height to triangle width is too large. A first triangle is replaced in the array by one or more other triangles if a first triangle included angle is less than an included angle for a second triangle, formed by replacing the first triangle included angle vertex by another point in the dataset S. The new method provides an acceptable triangulation, with computation time equal to about 40 percent of the time required for a Delaunay triangulation using the same dataset S. The dataset and/or the array of triangles can be displayed and manipulated.

Inventors

  • 👤 Natalia Maclinovsky

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 21:03
CPC Classifications
G; G06; G06T; G06T17/00; G06T17/20

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 477 words
A method for rapid decomposition of a region into an array of triangles, the method comprising the steps of: arranging N non-coincident points (N≧4), numbered n=1, 2, . . . , N, in a dataset, which have location coordinates (xi, yi) with i=1, 2, . . . , N, into an array of rows of cells, with the rows being numbered consecutively m=1, 2, . . . , M, where at least two of the points belong to different rows, where row number j contains N(j) points of the data set, and where the points within row m are numbered consecutively in a selected direction i=N(m-1)+1, . . . , N(m); constructing an array AR of two or more triangles TR(i'j',k'), defined by three distinct points numbered i', j' and k' from the dataset points, with 1≦i'<j'<k'≦N, where each of the points in the dataset is a vertex of at least one of the sequence of triangles, where any two triangles in the array AR have at most a triangle border or a triangle vertex in common, and where the triangle TR(i',j,'k') is defined by three line segments L(i',j'), L(j',k') and L(k',i') and a line segment L(i',j') extends between a vertex numbered i' and a vertex numbered j'; for at least three distinct points numbered i"", j"" and k" in the dataset, comparing an included angle A(i"", j"",k""), defined by intersecting line segments L(i"", j"") and L(j"", k""), with a selected threshold angle value A thr , and when the included angle A(i"",j"",k"") is not greater than A thr , adding the triangle TR(i"", j"", k"") to the array AR; for at least two points numbered h" and i" in the dataset contained in a row m and row m', respectively, with 1≦h"<i"≦N, and for at least two points j" and k" in the dataset contained in row m", with i"<j"<k" and m≦m'<m", comparing an included angle A(h", j", i"), defined by intersecting line segments L(h", j") and L(j", i"), and an included angle A(h", k", i" ), defined by intersecting line segments L(h", k") and L(k", i"); when the angle A(h",j",i") is a least as large as the angle A(h", k", i"), adding the triangle TR(h", i", j,"), to the array AR; when the angle A(h", j", k") and TR(h", i", k"), but not the triangle TR(h", i", j"), to the array AR; for at least three distinct points i"", j"" and k"" in the dataset, comparing the height of the triangle TR(i"", j"", k"") with a comparison value equal to the width of the triangle TR(i"", j"", k"") multiplied by a selected threshold numerical value TVTP, and adding the triangle TR(i"", j"", k"") to the array AR only when the height of the triangle TR(i"", j"", k"") is not greater than the comparison value; and choosing said selected threshold angle value to be approximately 90°.
Claim 2
Independent Claim 477 words
A method for rapid decomposition of a region into an array of triangles, the method comprising the steps of: arranging N non-coincident points (N≧4), numbered n=1, 2, . . . , N, in a dataset, which have location coordinates (xi, yi) with i=1, 2, . . . , N, into an array of rows of cells, with the rows being numbered consecutively m=1, 2, . . . , M, where at least two of the points belong to different rows, where row number j contains N(j) points of the data set, and where the points within row m are numbered consecutively in a selected direction i=N(m-1)+1, . . . , N(m); constructing an array AR of two or more triangles TR(i'j',k'), defined by three distinct points numbered i', j' and k' from the dataset points, with 1≦i'<j'<k'≦N, where each of the points in the dataset is a vertex of at least one of the sequence of triangles, where any two triangles in the array AR have at most a triangle border or a triangle vertex in common, and where the triangle TR(i',j,'k') is defined by three line segments L(i',j'), L(j',k') and L(k',i') and a line segment L(i',j') extends between a vertex numbered i' and a vertex numbered j'; for at least three distinct points numbered i"", j"" and k" in the dataset, comparing an included angle A(i"", j"",k""), defined by intersecting line segments L(i"", j"") and L(j"", k""), with a selected threshold angle value A thr , and when the included angle A(i"",j"",k"") is not greater than A thr , adding the triangle TR(i"", j"", k"") to the array AR; for at least two points numbered h" and i" in the dataset contained in a row m and row m', respectively, with 1≦h"<i"≦N, and for at least two points j" and k" in the dataset contained in row m", with i"<j"<k" and m≦m'<m", comparing an included angle A(h", j", i"), defined by intersecting line segments L(h", j") and L(j", i"), and an included angle A(h", k", i" ), defined by intersecting line segments L(h", k") and L(k", i"); when the angle A(h",j",i") is a least as large as the angle A(h", k", i"), adding the triangle TR(h", i", j,"), to the array AR; when the angle A(h", j", k") and TR(h", i", k"), but not the triangle TR(h", i", j"), to the array AR; for at least three distinct points i"", j"" and k"" in the dataset, comparing the height of the triangle TR(i"", j"", k"") with a comparison value equal to the width of the triangle TR(i"", j"", k"") multiplied by a selected threshold numerical value TVTP, and adding the triangle TR(i"", j"", k"") to the array AR only when the height of the triangle TR(i"", j"", k"") is not greater than the comparison value; and choosing said selected threshold angle value to be approximately 90°.
Claim 3
Dependent Claim 19 words
The method of claim 1, further comprising the step of choosing said selected direction to be the x-coordinate direction.
Claim 4
Dependent Claim 19 words
The method of claim 1, further comprising the step of choosing said selected direction to be the y-coordinate direction.
Claim 5
Dependent Claim 22 words
The method of claim 1, further comprising the step of choosing said selected threshold angle value to be between 90° and 180°.
Claim 6
Dependent Claim 23 words
The method of claim 1, further comprising the step of choosing said selected threshold numerical value TVTP to be substantially greater than 1.
Claim 7
Dependent Claim 24 words
The method of claim 1, further comprising the step of choosing said selected threshold numerical value TVTP to be at least equal to 3.
Claim 8
Dependent Claim 17 words
The method of claim 1, further comprising the step of displaying said dataset of N non-coincident points.
Claim 9
Dependent Claim 19 words
The method of claim 7, further comprising the step of displaying at least one triangle in said array AR.
Claim 10
Dependent Claim 509 words
A computer-usable medium having computer-readable program code embedded therein for causing a computer to rapidly determine a triangulation of a region using a selected set of four or more points by performing the steps of: arranging N non-coincident points (N≧4), numbered n=1, 2, . . . , N, in a dataset, which have location coordinates (xi, yi) with i=1, 2, . . . , N, into an array of rows of cells, with the rows being numbered consecutively m=1, 2, . . . , M, where at least two of the points belong to different rows, where row number j contains N(j) points of the data set, and where the points within row m are numbered consecutively in a selected direction i=N(m-1)+1, . . . , N(m); constructing an array AR of two or more triangles TR(i'j',k'), defined by three distinct points numbered i', j' and k' from the dataset points, with 1≦i'<j'<k'≦N, where each of the points in the dataset is a vertex of at least one of the sequence of triangles, where any two triangles in the array AR have at most a triangle border or a triangle vertex in common, and where the triangle TR(i'j,'k') is defined by three line segments L(i',j'), L(j',k') and L(k',i') and a line segment L(i',j') extends between a vertex numbered i' and a vertex numbered j'; for at least three distinct points numbered i"", j"" and k" in the dataset, comparing an included angle A(i"", j"", k""), defined by intersecting line segments L(i"", j"") and L(j"", k""), with a selected threshold angle value A thr , and when the included angle A(i"",j"",k"") is not greater than A thr , adding the triangle TR(i"", j"", k"") to the array AR; for at least two points numbered h" and i" in the dataset contained in a row m and row m', respectively, with 1≦h"<i"≦N, and for at least two points j" and k" in the dataset contained in row m", with i"<j"<k" and m≦m'<m", comparing an included angle A(h", j", i"), defined by intersecting line segments L(h", j") and L(j", i"), and an included angle A(h", k", i"), defined by intersecting line segments L(h", k") and L(k", i"); when the angle A(h",j",i") is a least as large as the angle A(h", k", i"), adding the triangle TR(h", i", j,"), to the array AR; when the angle A(h", j", i") is less than the angle A(h", k", I"), adding the triangles TR (h", j", k") and TR (h", j", k"), but not the triangle TR(h", i", j"), to the array AR; for at least three distinct points i"", j"" and k"" in the dataset, comparing the height of the triangle TR(i"", j"", k"") with a comparison value equal to the width of the triangle TR(i"", j"", k"") multiplied by a selected threshold numerical value TVTP, and adding the triangle TR(i"", j"", k"") to the array AR only when the height of the triangle TR(i"", j"", k"") is not greater than the comparison value; and choosing said selected threshold angle value to be approximately 90°.
Claim 11
Dependent Claim 509 words
A computer-usable medium having computer-readable program code embedded therein for causing a computer to rapidly determine a triangulation of a region using a selected set of four or more points by performing the steps of: arranging N non-coincident points (N≧4), numbered n=1, 2, . . . , N, in a dataset, which have location coordinates (xi, yi) with i=1, 2, . . . , N, into an array of rows of cells, with the rows being numbered consecutively m=1, 2, . . . , M, where at least two of the points belong to different rows, where row number j contains N(j) points of the data set, and where the points within row m are numbered consecutively in a selected direction i=N(m-1)+1, . . . , N(m); constructing an array AR of two or more triangles TR(i'j',k'), defined by three distinct points numbered i', j' and k' from the dataset points, with 1≦i'<j'<k'≦N, where each of the points in the dataset is a vertex of at least one of the sequence of triangles, where any two triangles in the array AR have at most a triangle border or a triangle vertex in common, and where the triangle TR(i'j,'k') is defined by three line segments L(i',j'), L(j',k') and L(k',i') and a line segment L(i',j') extends between a vertex numbered i' and a vertex numbered j'; for at least three distinct points numbered i"", j"" and k" in the dataset, comparing an included angle A(i"", j"", k""), defined by intersecting line segments L(i"", j"") and L(j"", k""), with a selected threshold angle value A thr , and when the included angle A(i"",j"",k"") is not greater than A thr , adding the triangle TR(i"", j"", k"") to the array AR; for at least two points numbered h" and i" in the dataset contained in a row m and row m', respectively, with 1≦h"<i"≦N, and for at least two points j" and k" in the dataset contained in row m", with i"<j"<k" and m≦m'<m", comparing an included angle A(h", j", i"), defined by intersecting line segments L(h", j") and L(j", i"), and an included angle A(h", k", i"), defined by intersecting line segments L(h", k") and L(k", i"); when the angle A(h",j",i") is a least as large as the angle A(h", k", i"), adding the triangle TR(h", i", j,"), to the array AR; when the angle A(h", j", i") is less than the angle A(h", k", I"), adding the triangles TR (h", j", k") and TR (h", j", k"), but not the triangle TR(h", i", j"), to the array AR; for at least three distinct points i"", j"" and k"" in the dataset, comparing the height of the triangle TR(i"", j"", k"") with a comparison value equal to the width of the triangle TR(i"", j"", k"") multiplied by a selected threshold numerical value TVTP, and adding the triangle TR(i"", j"", k"") to the array AR only when the height of the triangle TR(i"", j"", k"") is not greater than the comparison value; and choosing said selected threshold angle value to be approximately 90°.
Claim 12
Dependent Claim 28 words
The computer-usable medium of claim 9, wherein said computer-readable program code further causes said computer to choose said selected threshold angle value to be between 90° and 180°.
Claim 13
Dependent Claim 29 words
The computer-usable medium of claim 9, wherein said computer-readable program code further causes said computer to choose said selected threshold numerical value TVTP to be substantially greater than 1.
Claim 14
Dependent Claim 30 words
The computer-usable medium of claim 9, wherein said computer-readable program code further causes said computer to choose said selected threshold numerical value TVTP to be at least equal to 3.
Claim 15
Dependent Claim 23 words
The computer-usable medium of claim 9, wherein said computer readable program code causes said computer to display said dataset of N non-coincident points.
Claim 16
Dependent Claim 25 words
The computer-usable medium of claim 13, wherein said computer readable program code causes said computer to display at least one triangle in said array AR.
Claim 17
Dependent Claim 513 words
A computer system comprising: a computer signal processor; an address and data bus connected the processor; a computer-readable memory, connected to the processor, that provides processor instructions that allow the processor to perform the steps of: arranging N non-coincident points (N≧4), numbered n=1, 2, . . . , N, in a dataset, which have location coordinates (xi, yi) with i=1, 2, . . . , N, into an array of rows of cells, with the rows being numbered consecutively m=1, 2, . . . , M, where at least two of the points belong to different rows, where row number j contains N(j) points of the data set, and where the points within row m are numbered consecutively in a selected direction i=N(m-1)+1, . . . , N(m); constructing an array AR of two or more triangles TR(i'j',k'), defined by three distinct points numbered i', j' and k' from the dataset points, with 1≦i'<j'<k'≦N, where each of the points in the dataset is a vertex of at least one of the sequence of triangles, where any two triangles in the array AR have at most a triangle border or a triangle vertex in common, and where the triangle TR(i'j,'k') is defined by three line segments L(i',j'), L(j',k') and L(k',i') and a line segment L(i',j') extends between a vertex numbered i' and a vertex numbered j'; for at least three distinct points numbered i"", j"" and k" in the dataset, comparing an included angle A(i"", j"", k""), defined by intersecting line segments L(i"", j"") and L(j"", k""), with a selected threshold angle value A thr , and when the included angle A(i"",j"",k"") is not greater than A thr , adding the triangle TR(i"", j"", k"") to the array AR; for at least two points numbered h" and i" in the dataset contained in a row m and row m', respectively, with 1≦h"<i"≦N, and for at least two points j" and k" in the dataset contained in row m", with i"<j"<k" and m≦m'<m", comparing an included angle A(h", j", i"), defined by intersecting line segments L(h", j") and L(j", i"), and an included angle A(h", k", i"), defined by intersecting line segments L(h", k") and L(k", i"); when the angle A(h",j",i") is a least as large as the angle A(h", k", i"), adding the triangle TR(h", i", j,"), to the array AR; when the angle A(h", j", i") is less than the angle A(h", k", I"), adding the triangles TR (h", j", k") and TR (h", j", k"), but not the triangle TR(h", i", j"), to the array AR; for at least three distinct points i"", j"" and k"" in the dataset, comparing the height of the triangle TR(i"", j"", k"") with a comparison value equal to the width of the triangle TR(i"", j"", k"") multiplied by a selected threshold numerical value TVTP, and adding the triangle TR(i"", j"", k"") to the array AR only when the height of the triangle TR(i"", j"", k"") is not greater than the comparison value; and said processor further choosing said selected threshold angle value to be approximately 90°.
Claim 18
Dependent Claim 513 words
A computer system comprising: a computer signal processor; an address and data bus connected the processor; a computer-readable memory, connected to the processor, that provides processor instructions that allow the processor to perform the steps of: arranging N non-coincident points (N≧4), numbered n=1, 2, . . . , N, in a dataset, which have location coordinates (xi, yi) with i=1, 2, . . . , N, into an array of rows of cells, with the rows being numbered consecutively m=1, 2, . . . , M, where at least two of the points belong to different rows, where row number j contains N(j) points of the data set, and where the points within row m are numbered consecutively in a selected direction i=N(m-1)+1, . . . , N(m); constructing an array AR of two or more triangles TR(i'j',k'), defined by three distinct points numbered i', j' and k' from the dataset points, with 1≦i'<j'<k'≦N, where each of the points in the dataset is a vertex of at least one of the sequence of triangles, where any two triangles in the array AR have at most a triangle border or a triangle vertex in common, and where the triangle TR(i'j,'k') is defined by three line segments L(i',j'), L(j',k') and L(k',i') and a line segment L(i',j') extends between a vertex numbered i' and a vertex numbered j'; for at least three distinct points numbered i"", j"" and k" in the dataset, comparing an included angle A(i"", j"", k""), defined by intersecting line segments L(i"", j"") and L(j"", k""), with a selected threshold angle value A thr , and when the included angle A(i"",j"",k"") is not greater than A thr , adding the triangle TR(i"", j"", k"") to the array AR; for at least two points numbered h" and i" in the dataset contained in a row m and row m', respectively, with 1≦h"<i"≦N, and for at least two points j" and k" in the dataset contained in row m", with i"<j"<k" and m≦m'<m", comparing an included angle A(h", j", i"), defined by intersecting line segments L(h", j") and L(j", i"), and an included angle A(h", k", i"), defined by intersecting line segments L(h", k") and L(k", i"); when the angle A(h",j",i") is a least as large as the angle A(h", k", i"), adding the triangle TR(h", i", j,"), to the array AR; when the angle A(h", j", i") is less than the angle A(h", k", I"), adding the triangles TR (h", j", k") and TR (h", j", k"), but not the triangle TR(h", i", j"), to the array AR; for at least three distinct points i"", j"" and k"" in the dataset, comparing the height of the triangle TR(i"", j"", k"") with a comparison value equal to the width of the triangle TR(i"", j"", k"") multiplied by a selected threshold numerical value TVTP, and adding the triangle TR(i"", j"", k"") to the array AR only when the height of the triangle TR(i"", j"", k"") is not greater than the comparison value; and said processor further choosing said selected threshold angle value to be approximately 90°.
Claim 19
Dependent Claim 22 words
The computer system of claim 15, wherein said processor further chooses said selected threshold angle value to be between 90° and 180°.
Claim 20
Dependent Claim 22 words
The computer system of claim 15, wherein said processor further chooses said selected threshold numerical value to be substantially greater than 1.
Claim 21
Dependent Claim 23 words
The computer system of claim 15, wherein said processor further chooses said selected threshold numerical value to be at least equal to 3.
Claim 22
Dependent Claim 21 words
The computer system of claim 15, wherein said processor further causes said computer to display said dataset of N non-coincident points.
Claim 23
Dependent Claim 23 words
The computer system of claim 19, wherein said processor further causes said computer to display at least one triangle in said array AR.

References Cited (Backward Citations)

US5440674A Cited
US5317681A Cited
US5428717A Cited
US5590248A Cited
US5307292A Cited
US5367465A Cited
US5333248A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-06-13 2003-12-13 2004-06-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-06-13 2007-12-13 2008-06-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-06-13 2011-12-13 2012-06-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag