Geoscience Information Systems Modul–Code GeoData BA Nr. 041
Transcription
Geoscience Information Systems Modul–Code GeoData BA Nr. 041
Tessellation Geoscience Information Systems Modul–Code GeoData BA Nr. 041 c 2012 Helmut Schaeben Geomathematics and Geoinformatics TU Bergakademie Freiberg, Germany TUBAF Winter Term 2012/13 Contents 1 Introduction 2 Voronoi Tessellation 3 Delaunay Tessellation 4 Constrained Delaunay Triangulation 5 Triangulation in 3d Space Tessellation Introduction In computer aided geometric design – “computational geometry” – the term tessellation refers to any method to construct a partition of a polyhedral n–dimensional object into a set of adjacent polyhedral n–cells. Voronoi Tessellation (1) Dirichlet–Voronoi–Thiessen tessellation Let P = {p1 , . . . , pm } be a set of m distinct points in the n–dimensional Euclidean space Rn . The Voronoi polyhedra V (pi ) associated to pi ∈ P is defined as the n–cell of Rn consisting of all points x ∈ Rn that are closer to pi than to any other point of P, i.e. V (pi ) = {x ∈ Rn | d(pi , x) < d(pj , x) ∀j 6= i} (1) Voronoi Tessellation (2) Voronoi Tessellation (3) Let P = {p1 , . . . , pm } be a set of m distinct points in the n–dimensional Euclidean space Rn , and let V(P) denote its Voronoi tessellation, i.e. the union of its Voronoi polyhedra. The points pij , j = 1, . . . , J, the Voronoi cells Vij of which share a common edge with the Voronoi cell Vi associated with the point pi are called canonical (“natural”) or strong Voronoi neighbours of the point pi . The Voronoi tessellation is a grid where the number of vertices of each Voronoi polyhedra is not constant. In terms of data models or data structures, the Voronoi polyhedra require a list of vertices of variable length. Voronoi Tessellation (4) Voronoi Tessellation (5) Properties Each Voronoi cell is convex. A Voronoi cell V (pi ) is an unbounded part of Rn if and only if pi is an element of the convex hull of P. The Voronoi tessellation V(P) is a finite cellular partition of Rn . Geometrically it can be interpreted as the projection of the intersection of cones with their tip at the given points, or as the result of continuous buffering of points to disks. Properties (cont.) If q is the node of the Voronoi graph located at the junction of (n + 1) Voronoi cells V (p0 ), . . . , V (pn ), then q is the centre of the circumsphere S(p0 , . . . , pn ), and this circumsphere does not contain any other point of P. For n = 2, the common node q of three Voronoi cells V (p0 ), . . . , V (p2 ), is the center of the circumsphere S(p0 , . . . , p2 ), and this circumsphere does not contain any other point of P. Voronoi Tessellation and Spatial Interpolation Voronoi Tessellation, Piecewise Constant Interpolation (1) The Voronoi tessellation assigns to each point pi ∈ P, i = 1, . . . , m, its 2d Voronoi cell Vi ⊂ D ⊂ R2 , the elements of which are closer to pi than to any other point of P. Interpolation over Voronoi Polygons 2d Piecewise constant interpolation The m Voronoi cells constitute a Voronoi tessellation, Dirichlet–partition, Thiessen–partition, Voronoi–tiling, etc. of the domain D. 2d Natural neighbour interpolation Voronoi Tessellation, Piecewise Constant Interpolation (2) A value (scalar, vector, ...) fi is assigned to each point pi . Let (pi , fi ), i = 1, . . . , m, denote a data set, and V(P) the Voronoi tessellation of the distinct data sites P = {p1 , . . . , pm }. If fi is assigned to each x ∈ Vi , then the result is piecewise constant interpolation over the domain fˆ(x) = m X i=1 1Vi (x) fi with 1Vi (x) = 1 0 if x ∈ Vi otherwise Voronoi Tessellation, Natural Neighbour Interpolation (1) Let x ∈ Rn be any arbitrary point, and V (x) its Voronoi polyhedron with respect to the set P ∪ {x}. , (2) where the interpolant is obviously discontinuous over the edges of the Voronoi cells. Let pi(x) ∈ P, i = 1, . . . , n(x), denote the strong Voronoi neighbours of x and V (pi(x) ) their Voronoi polyhedra with respect to V(P). Voronoi Tessellation, Natural Neighbour Interpolation (2) Voronoi Tessellation, Natural Neighbour Interpolation (3) Natural neighbour coordinates Ni (x) are defined asthe ratio of the area of the “second order” Voronoi polyhedra, area V (pi(x) ) , and the area of the “first order” Voronoi polyhedra, area V (x) , i.e. area V (pi(x) ) Ni (x) = area V (x) (3) Then, natural neighbour interpolation is defined as fˆ(x) = n(x) X Ni (x)fi (4) i=1 Voronoi Tessellation, Natural Neighbour Interpolation (4) Graphs (1) Properties of natural neighbour interpolation: A graph G = (V , E ) is the pair of a finite set of abstract vertices V = {v1 , . . . , vI } and a finite set of abstract edges E = {e1 , . . . , eJ } connecting some of the vertices. Orthonormality A graph is called simple, if Ni (pj ) = δij there is at most one edge between any two vertices, all the edges are undirected, and there are no loops in the graph. Isoparametric n(x) x= X Ni (x)x i=1 Ni (x) is continuously differentiable for all x = pj . A simple graph can be identified with a symmetric I × I adjacency matrix AV describing which vertices of the graph are connected by an edge, i.e. for i, i 0 = 1, . . . , I , ( 1, if i 6= i 0 and the vertices vi and vi 0 are connected by an edge in i,i 0 [AV ] = 0, otherwise. Graphs (2) Graphs and Polyhedra, Topology and Geometry An alternative but equivalent representation of a graph is its I × J incidence matrix IVE , which describes which vertices belongs to which edges, i.e. for i = 1, . . . , I , and j = 1, . . . , J, ( 1, if vi is a vertex of the edge ej , i,j [IVE ] = 0, otherwise. The topological relationships between the vertices vi , i = 1, . . . , I , edges ej , j = 1, . . . , J, and faces fk , k = 1, . . . , K , of a polyhedron can be represented by incidence matrices, i.e. by the matrices ( 1, if vi is a vertex of edge ej [IVE ]i,j = 0, otherwise, Since every edge connects two vertices, every column of IVE contains exactly twice the value 1. and Furthermore, we have the following relationship to the adjacency matrix AV of the graph ( T ]i,j , if i 6= j, [IVE IVE i,j [AV ] = 0, if i = j, [IEF ] j,k ( 1, = 0, if ej is edge of the face fk otherwise. With these notations it is straight forward to compute the incidence matrix between vertices and faces of a polyhedron, ( 1, if vi is a vertex of the face fk [IVF ]ik = [IVE IEF ]i,k = . 0, otherwise. T denotes the transposed of the incidence matrix I where IVE VE . Graphs and Voronoi Partition (1) Graphs and Voronoi Partition (2) Since each Voronoi cell is a polyhedron, the topological structure of a Voronoi decomposition D` , ` = 1, . . . , L, can be described in terms of incidence matrices. Let vi , i = 1, . . . , I , be the vertices, ej , j = 1, . . . , J, the edges, and fk , k = 1, . . . , K , the faces of the Voronoi cells. Then the topological structure of the Voronoi cells is described by incidence matrices IVE ∈ RI ×J – describing which vertices belong to which edge, IEF ∈ RJ×K – describing which edges belong to which face, IFD ∈ RK ×L – describing which faces belong to which Voronoi cell. Two Voronoi cells are called adjacent if they have a common face. Hence, the L × L adjacency matrix AD of the Voronoi cells is given by ( T I `,`0 , if ` 6= `0 , [IFD 0 FD ] [AD ]`,` = 0, if ` = `0 . Notion of a Dual Graph The dual of an n–dimensional graph Gn is an n–dimensional graph Gn∗ such that each i–cell C ∈ Gn is associated with one and only one (n − i)–cell C ∗ ∈ Gn∗ , and conversely. Delaunay Tessellation, Delaunay Triangulation Delaunay Tessellation (1) Delaunay Tessellation (2) The dual V ∗ (P) of the Voronoi tessellation V(P) is the Delaunay tessellation (“triangulation”) D(P). The Delaunay tessellation is a grid where the number of vertices of each Delaunay cell is constant n + 1. In terms of data models or data structures, the Delaunay cells require a list of vertices of constant length, if the basic spatial objects are the triangles. Delaunay Triangulation (3) Delaunay Triangulation (4) Data structure 1: The triangles are the basic spatial objects. They are defined by their vertices. Topology is provided by their three neighbouring triangles. A second table provides the geometry by the coordinates of the vertices. Data structure 2, exploiting the duality with respect to the Voronoi tessellation: The vertices are the basic spatial objects. Each vertex is linked by a pointer to a table containg its strong Voronoi neigbours, arranged in a convenient order, e.g. (counter)clockwise. A string of vertices connected to their common strong Voronoi neighbour is terminated by a 0. Delaunay Triangulation (5) Delaunay Triangulation (6) Properties The (Delaunay) triangulation T of a set of points P, which is dual to the Voronoi tessellation, i.e. where strong Voronoi neighbours are linked to form edges of triangles, has some distinguished properties, which can be turned constructive. The boundary of the Delaunay tessellation D(P) is the convex hull of the point set P. The Delaunay tessellation D(P) is a finite cellular partition of the interior of the convex hull of the point set P. In R2 , the Delaunay tessellation is the triangulation of the interior of the convex hull of the point set P which maximizes the smallest angle of each triangle. Delaunay Triangulation (7) Constructive Delaunay Triangulation (1) Let d > 0 be an arbitrary dimension and let v1 , . . . , vI ∈ Rd be a finite set of vertices. Then its convex hull conv(v1 . . . , vI ) ⊂ Rd is defined as the set ( ) I I X X conv(v1 . . . , vI ) = v = λi vi | λi > 0 and λi = 1 i=1 i=1 Given is a set P of m pairwise distinct non–collinear points pi = p(xi , yi ), i = 1, . . . , m. A triangulation T of the set P is a set of triples of points (pi , pj , pk ) such that each triple defines a non–degenerated triangle, which can be interpreted as the smallest convex set enclosing v1 , . . . , vI . each triangle does not contain any other point p` ∈ P, In the special case that the convex hull conv(v1 . . . , vI ) is two–dimensional it is called polygon, if it is three–dimensional it is called polyhedron. The boundary of a polyhedron consists of polygons called faces and the boundary of polygons consists of edges. the union of all triangles is the convex hull of the set P. Constructive Delaunay Triangulation (2) A triangulation of a given set P of points is not unique, however Euler found that N = 2m − nR − 2 K = 3m − nR − 3 m−2 ≤ N 2m − 3 ≤ K ≤ 2m − 5 ≤ 3m − 6 where N is the total number of triangles, K is the total number of edges, nR is the total number of points on the boundary of the convex hull. the intersection of the interior of two triangles is empty, Thus, any triangulation provides a partition of the convex hull of the set of points pi into triangles. Constructive Delaunay Triangulation: Criteria (1) A unique triangulation requires an additional modeling assumptions, or the choice of a criteria for selection. Such criteria are initially given for the triangulation of a strictly convex quadrangle. All criteria aim at a triangulation in triangles as uniform (equi–lateral, equi–angular) as possible given the geometrical configuration of the set P. In this way, triangles with very small or very large angles should be avoided. Such criteria can be formulated as an optimization problem: either maximize the smallest angle of all triangles (max–min criterion), or minimize the largest angle of all triangles (min–max criterion). Constructive Delaunay Triangulation: Criteria (2) Constructive Delaunay Triangulation: Criteria (3) Constraints of triangulation triangulation such that the smallest of the six angles of the two triangles is as large as possible (max–min: Delaunay) triangulation such that the largest of the six angles of the two triangles is as small as possible (min–max) triangulation according to the shortest diagonal in each strictly convex quadrangle, triangulation according to the longest diagonal in each strictly convex quadrangle, ... a tessellation made up of n dimensional simplices, whose vertices consist of a set P of points, is the Delaunay tessellation, if the circumsphere of any n–simplex T contains no other points of P than the vertices of T . Constructive Delaunay Triangulation: Local Optimality The circumcircle is the unique circle that passes through each of the triangles three vertices. The center O of the circumcircle is the point of intersection of the three perpendicular bisectors. Constructive Delaunay Triangulation: Global Optimality A triangulation is called locally optimum, if each strictly convex quadrangle is triangulated optimally with respect to the chosen criterion. Then the triangulation T1 is called superior (“better”) with respect to the measure a than the triangulation T2 , if a(T1 ) > a(T2 ). To define and decide constructively, if a triangulation is globally optimal, a measure is required to compare several triangulations which are all locally optimum with respect to the chosen criterion. Here, > denotes the lexicographical order: for two vectors a, b the implication of a < b is that there exists a number m ≤ N such that ai = bi , i = 1, . . . , m − 1 and am < bm . Let a(T ), T ∈ T , denote a measure for the shape of the triangle T of a triangulation T . The the vector A triangulation T ∗ of a given point set P is globally optimum with respect to a given measure a, if a(T ∗ ) ≥ a(T ) for all triangulations T of P, i.e. if there is no triangulation with a lexicographically larger vector. a(T ) = (a1 , . . . , aN ), ai = a(Ti ), Ti ∈ T , i = 1, . . . , N is associated to the triangulation T , the components of which are the values a(Ti ), Ti ∈ T , which are ordered with increasing magnitude, e.g. each entry denotes the smallest of the three angles of the triangles ordered increasingly. All these definitions are sensible as the total number of possible triangulations of a finite set of points is finite. Constructive Delaunay Triangulation: Local vs. global optimality (1) Constructive Delaunay Triangulation: Local vs. global optimality (2) Every (globally) optimum triangulation is locally optimal, too. The inverse is generally not true. For the triangulation according to the max–min criterion, the inverse is true! No other criterion seems to be known for which it is also true. Counterexample with respect to the min–max criterion Let a(T ) denote the largest of the three angles of a triangle T , and let a(T ) = max{1/a(T ), T ∈ T }; if for the two triangulations T1 , T2 of a strictly convex quadrangle a(T1 ) > a(T2 ) holds, then T1 is the superior (“better”) triangulation. Constructive Delaunay Triangulation: Local vs. global optimality (3) The figure shows that local optimality with respect to the min–max criterion does not imply global optimality with respect to the min–max criterion. Constructive Delaunay Triangulation The triangulation dual to the Voronoi tessellation is locally optimum with respect to the max–min criterion. It is also globally optimum with respect to the max–min criterion. This triangulation is usually called Delaunay triangulation. It is characterized by the fact that local optimality implies global optimality. This distinctive property can ba employed for the design of efficient algorithms, which initially start to successively triangulate each strictly convex quadrangle (locally) optimally, and lead eventually to a globally optimum triangulation without any additional provision. Three basic types of algorithms can be distinguished, which are ... Constructive Delaunay Triangulation, Algorithms Lineare interpolation over triangles (1) The neighbourhood relation of a 2d interpolation / approximation over triangles is actually provided by the triangulation itself. Typ A: For a given triangulation, each strictly convex quadrangle is checked if it satisfies the max–min criterion; if it does not, the diagonal is “swapped”. The weights of linear interpolation over triangles are determined by the ratios of areas as follows Typ B: The triangulation is initialized with three points constituting a triangle of the triangulation. Then points are successively added, and any strcictly convex quadrangle being built is triangulated according to the max–min criterion. The actual triangulation is always locally optimal. The barycentric coordinates (u, v , w ) of an arbitrary point p ∈ T = [pn1 , pn2 , pn3 ] ⊂ R2 with global coordinates (x, y ) are given by Typ C: Initially, the domain D is partitioned into subdomains. Then these smaller subdomains are triangulated locally optimum with respect to the max–min criterion. Eventually the triangulations of the subdomains are joined together such that local optimality is preserved. u = A1 /A Linear interpolation over triangles (2) where xn1 A = | det yn1 1 x xn2 A1 = | det y yn2 1 1 xn2 yn2 1 xn3 xn1 yn3 |, A2 = | det yn1 1 1 = A2 /A w = A3 /A Linear interpolation over triangles (3) xn3 yn3 | 1 v The barycentric coordinates sum to 1. The barycentric coordinates of the point pn1 = p(xn1 , yn1 ) are (1, 0, 0); x xn3 xn1 y yn3 |, A3 = | det yn1 1 1 1 xn2 yn2 1 The point p with barycentric coordinates (0, v , 1 − v ) is an element of the edge pn2 , pn3 and divides it according to the ratio x pn2 , p : p, pn3 = 1 − v : v . y | 1 Linear interpolation over triangles (4) Linear interpolation over triangles (5) Now let (xnk , ynk , fnk ), k = 1, . . . , 3, denote the attributes (data) refering to points pnk ∈ R2 , k = 1, . . . , 3. The determinant is calculated most efficiently according to a variant of Cramer’s rule, which reads for A as follows A = |(xn1 − xn2 )(yn2 − yn3 ) + (xn2 − xn3 )(yn2 − yn1 )| and consists of two multiplications and five summations only. An appropriate labeling of the vertices yields that all determinants are positive. Linear interpolation over the triangle T = [pn1 , pn2 , pn3 ] is than of the simple form fˆ(u, v , w ) = ufn1 + vfn2 + wfn3 or with explicit respect to the global coordinates (x, y ) of the point x ∈ T ∈ T̃ with local barycentric coordinates (u, v , w ) with resepct to T fˆ(x, y ) = fˆ(u(x, y ), v (x, y ), w (x, y )) = u(x, y )fn1 +v (x, y )fn2 +w (x, y )fn3 This interpolant is piecewise linear, the first derivative is discontinuous across the edges of any triangle. Linear interpolation over triangles (6) With resepct to linear interpolation over triangles the Delaunay triangulation is characterized by a minimum roughness of the corresponding piecewise interpolant. Thus, this characterization of the Delaunay triangulation relates its geometry to a property of the corresponding piecewise linear interpolant, and it is in fact quite astonishing as the attribute values fi = f (pi ) are not considered neither by the definition nor the construction of the Delaunay triangulation. Here, the measure of roughness is the squared L2 –norm of the gradient with respect to the convex hull of the point set Z 2 ˆ Rf = |∇fˆ(x, y )| d(x, y ) [P] Constrained Delaunay Triangulation Constrained Delaunay Triangulation (1) For some appliations an “a priori” natural neighbourhood relation may exit in the data set provided by the problem itself or by additinal information not explicitly inherent in the data set (xi , yi , fi ), i = 1, . . . , n,. Examples are digitized contourlines of equal elevation, where adjacent points along a contourline are natural neighbours, or fault lines (lines of discontinuity), where the points on either side of the line are natural neighbours. Constrained Delaunay Triangulation (2) In case of digitized contour lines of equal elevation adjacent points along one contourline are joined to form edges to be preserved by the triangulation, in case of the lines of discontinuity points along this line are joined to form edges to be preserved by the triangulation. In both cases, linear interpolation across the lines is avoided. In these cases, the natural neighbourhood relationship should be given priority over the neighbourhood to be constructed by any triangulation, i.e. the natural neighbourhood relationship should be preserved by any triangulation by way of defining edges linking natural neighbours prior to the actual triangulation. Constrained Delaunay Triangulation (3) The idea of additional constraints can easily be implemented into the Delaunay triangulation because of its distinguished feature that local optimality implies global optimality. The Delaunay triangulation subject to given edges is locally optimum everywhere except for some subsets determined by the given edges. Therefore, this triangulation is called constrained Delaunay triangulation. Constrained Delaunay Triangulation (4) Constrained Delaunay Triangulation (5) Problem (1) A given unknown surface S is to be recovered from data (p` , z` ), ` = 1, . . . , n, sampled/drawn from (digitized) contour lines Ci , i = 1, . . . , I , n I displaying a specific z−value ci . Basic requirement The input contour lines are adequately well reproduced by the recovered surface Ŝ, i.e. not only pointwise interpolation/approximation S̃(p` ) ≈ z` , l = 1, . . . , n (5) but linewise interpolation/approximation C̃i ≈ Ci , i = 1, . . . , I (6) is required. Problem (2) Problem (3) Constraints Suggested solution Interpolation/approximation based on a triangulation, because constraints necessary to ensure the preservation of contourlines can easily be incorporated into triangulation procedures. the triangulation should be unique and as uniform as possible given the vertices −→ Delaunay triangulation edges should not intersect contour lines −→ constrained Delaunay triangulation the three vertices of any triangle should not belong to the same contour line −→ minimum surface area triangulation Conventional Delaunay triangulation (1) The Delaunay triangulation T of the convex hull [p1 , . . . , pn ] ⊂ R2 of the data sites p` ∈ R2 is the triangulation which maximizes the minimum angle of all triangles (Lawson, 1977). Local optimization of a given triangulation with respect to the ’max-min’ criterion eventually results in the unique globally ’max-min’ optimum triangulation. Thus, the Delaunay triangulation can be constructed by consecutive triangulations of all strictly convex quadrangles p`1 , . . . , p`4 according to the max-min criterion, starting with some appropriate p1 , . . . , p4 , and then proceeding with p` , l = 5, . . . , n, successively. Conventional Delaunay triangulation (2) Characterization by z− values The Delaunay triangulation T of the data sites p` minimizes the roughness measure of a piecewise linear interpolating surface for any set of fixed z−values, when the roughness measure is provided by the L2 norm squared of the gradient of the piecewise linear surface, integrated over the triangulated domain (Rippa, 1990). Thus, a relationship between the geometry of the Delaunay triangulation and properties of the piecewise linear interpolating surface defined with respect to it exists. The Delaunay triangulation is a purely plane process in R2 , independent of the z-values. Therefore, its edges may intersect given contour lines. Constrained Delaunay triangulation (1) Constrained Delaunay triangulation (2) Constraining by given edges Each pair of two immediately neighboring data sites x`1 , p`2 belonging to the same contour line Ci should constitute an edge of some triangle. The triangulation T ∗ honoring all given edges does not possess edges intersecting any contour line. If a given Delaunay triangulation T is locally changed to honour a given edge, then it is no longer globally max-min optimal, but it is locally max-min optimum with respect to all actually feasible strictly convex quadrangles. Thus, the new triangulation T ∗ is as optimum as possible with respect to the given edges; therefore, T ∗ is referred to as constrained Delaunay triangulation. It is a special instance of z-value controlled triangulation of [p1 , . . . , pn ] ⊂ R2 . The constrained Delaunay triangulation T ∗ may include triangles with all three vertices belonging to the same contourline. Usually, these “flat” triangles are undesirable because they do not correspond to features of the surface from which the sampled contour lines originate. Minimum surface area triangulation (1) Let the ordered sequence of points p(ik ) , k = 1, . . . , ni , ni ≥ 3, denote a set of immediately neighboring vertices ordered with respect to their common contour line Ci . Thus, it represents a compound segment of the contour line displaying ci . Minimum surface area triangulation (2) The tiling T ∗∗ can be represented by a rectangular search graph (Meyers et al., 1992) with rows labeled by (p(ik ) , ci ), and columns by (p(j` ) , cj ). Let p(j` ) , l = 1, . . . , nj , nj ≥ 1, be analogously defined with respect to an immediately neighboring contour line Cj displaying cj . A spatial triangulation (“tiling”) T ∗∗ of the set given by (p(ik ) , ci ), (p(j` ) , cj ), k = 1, . . . , ni , l = 1, . . . , nj , with immediately neighboring data sites on the same contour line constituting edges tiles having not more than two vertices on one contour line cannot contain “flat triangles” by definition. Such a tiling does not generally yield a plane triangulation of the 2d polygonal subdomain given by p(ik ) , p(j` ) into disjunct triangles. Example Minimum surface area triangulation (3) The tiling T ∗∗ can be represented by a rectangular search graph (Meyers et al., 1992) with rows labeled by (p(ik ) , ci ), and columns by (p(j` ) , cj ), where edges connecting a point of one contour line to a point of the other contourline (“spans”) are represented by nodes in the graph tiles are represented by arcs between nodes in the graph, if arcs are allowed only if spans represented by connected nodes share an endpoint the pair of unshared span vertices are connected by a simple segment of one contour line Minimum surface area triangulation (4) Solving a shortest path problem (1) If nj = 1, there is only one fan-like tiling; if nj > 1, different tilings exist. A unique tiling may be constructed by choosing the “best” of them with respect to an appropriate criterion defined in terms of an objective function. Here, the objective function to be minimized is defined as the total area of all tiles. In general, the problem of the best tiling may still be ambiguous; however, in practical applications with real world data these instances are rarely encountered. When each arc in the graph is weighed by the area of the tile it represents, the problem of constructing a minimum area tiling is that of finding a shortest path starting from node (p(i1 ) , ci ), (p(j1 ) , cj ) to node (p(ini ) , ci ), (p(jnj ) , cj ) through the search graph. Solving a shortest path problem (2) To determine the shortest path to successive nodes the lengths of only two alternative paths have to be checked, and the shorter one has to be encoded and assigned as an attribute to this node while the other one is discarded. By discarding the unfavorable of two alternative paths the amount of the graph that must be searched to get to a specific node is considerably reduced. Eventually, reading the augmented graph backwards from (p(in1 ) , z1 ), (p(jn2 ) , z2 ) to (p(i1 ) , z1 ), (p(j1 ) , z2 ) reveals the shortest path. First, the weight of each arc of the graph is calculated as the area of the spatial triangle it represents. Then starting with node (p(i1 ) , ci ), (p(j1 ) , cj ) the shortest path to get to another node is determined successively row by row. In the first row, the length of the shortest path to get to some node (p(i1 ) , z1 ), (p(jp ) , z2 ) is just the cumulative length to get there; the same argument applies to the first column. Example Example (cont.) Example (cont.) Example (cont.) Summary Constrained Delaunay triangulation of data sites in the plane is combined with spatial minimum area triangulation of data points to yield a completely automated method to recover surfaces preserving their given contour lines.