Você está na página 1de 33

Data structures and algorithms to support interactive spatial analysis

using dynamic Voronoi diagrams

Mark Gahegan*a and Ickjai Leeb


a
Department of Geography, The Pennsylvania State University, Walker Building, University Park, PA 16802, USA.
b
Department of Computer Science and Software Engineering, University of Newcastle, NSW 2308, Australia.

Abstract

To support the need for interactive spatial analysis, it is often necessary to rethink the data
structures and algorithms underpinning applications. This paper describes the development of
an interactive environment in which a number of different Voronoi models of space can be
manipulated together in real time, to (1) study their behaviour, (2) select appropriate models for
specific analysis tasks and (3) to examine how choice of one model over another will affect the
interpretation of data. The paper studies six specific Voronoi diagram variants: the Ordinary
Voronoi Diagram, the Farthest-point Voronoi Diagram, the Order-k Voronoi Diagram, the
Ordered Order-k Voronoi Diagram, the kth Nearest-point Voronoi Diagram and the
Multiplicatively Weighted Voronoi Diagram, and develops algorithms and data structures to
store, rebuild and query these variants. From this, a generalised Voronoi data structure is
proposed, from which specific Voronoi variants can be reconstructed dynamically as required.
Algorithms for diagram reconstruction and for querying neighbourhood (topology or adjacency
relations) of generator points and Voronoi regions are presented. An application program,
developed on these ideas, is used to generate example results as proof of concept. It may be
downloaded from a supporting website.

Keywords: Voronoi Diagrams, Interactive Spatial Analysis, Algorithms, Data Structures.

• Corresponding author. Tel +1 814-865-2612; fax +1 814-863-7943. E-mail address: mark@geog.psu.edu

1
1 Introduction
There is an increasing trend towards interactive spatial analysis, where models and data are manipulated
in real-time, and often via a visual means (e.g. Bailey and Gatrell, 1995; Anselin, 1999; Dykes, 1997).
Supporting these kinds of dynamic modelling and analysis efforts places additional demands on the
computational methods and data structures used in that they must be capable of supporting iterative
updates, rather than being executed once as a ‘batch’ process. This paper describes algorithms and data
structures to support adaptable modelling and analysis using a number of Voronoi diagram variants
(Voronoi diagrams are also known as Thiessen polygons, Dirichlet tessellations and proximal polygons).
A dynamic and visual approach to Voronoi diagrams can enable direct interact with the data, to study
‘cause and effect’ of various changes and updates graphically and to learn about the various types of
diagrams and their effect on space tessellation.

A number of geometric models have been suggested to represent geographic space. These models differ
in their powers and capabilities to guarantee the formalisation of spatial concepts. Two fundamental data
models have been heavily used in designing geographical databases; namely the vector (object-based or
feature-based) and raster (tessellation-based or image-based) models (Egenhofer and Herring, 1991;
Goodchild, 1991; Gatrell, 1991). However, there has been much debate over the past decade or so
concerning the relative merits that these models offer. Many researchers (e.g. Goodchild, 1992a; Okabe et
al., 1994) have pointed out problems and difficulties caused by these traditional representations and their
limitations for various types of spatial analysis, including for discrete point datasets for which vector and
raster representations do not normally maintain spatial adjacency (neighbourhood relationship) for
discrete, unconnected objects (Gold, 1991). (For useful examples of the use of adjacency in the analysis
of point datasets see Bailey and Gatrell (1995)). It is not the purpose of this paper, however, to argue that
one representation is inherently superior to another in all cases, it is sufficient to conclude that alternative
models may be more appropriate for certain classes of application.

The Ordinary Voronoi Diagram or OVD has been suggested as an alternative to overcome some of the
limitations of conventional geographic data models (Gold, 1992a; Okabe et al., 1992). The main strength
of this approach is that it is, to some extent, an integration of both vector and raster models. It explicitly
encodes topology (spatial adjacency: in the form of shared vertices)—like the vector approach, but also
provides a space-filling model—like the raster approach. In other words, all space is fully occupied, and
fragmented into tiles (usually equivalent to zones of influence) around each discrete map object.
Therefore, every location in the space can be assigned to at least one of the members in any underlying
point dataset. Another strength of the Voronoi approach is that it permits many operations to be

2
performed in a local fashion, rather than global, using the explicit spatial adjacency relationships (Gold,
1994). As a result, the tessellation can be maintained dynamically using local updates following from any
changes. Since topology construction is computationally expensive, this is an appealing property and is
especially useful when the objective is to allow users to make reasonable decisions quickly, rather than
providing a globally optimum solution (Gold, 1993). Finally, Voronoi constructions form an integral part
of many useful discrete interpolation methods (e.g. Watson, 1992).

Voronoi diagrams offer some interesting and useful ways to model a geographic space according to
relationships between the points contained. Points can represent facilities such as hospitals and fire
stations, retail outlets such as distributors or shopping malls, or indeed any other object for which a point
is a suitable surrogate. Space is partitioned by regions formed from the points; in the simplest case (the
OVD) this is achieved by defining a ’zone of influence’ around each point, from which all other points are
further away. This mimics the proximity, catchment or attractiveness of the point when compared to other
points or when viewed from different locations in the space. By changing the definitions of the underlying
model the space can be partitioned differently, to model different conditions, goals or constraints. Readers
who are unfamiliar with these concepts may want to look ahead to Figures 13-15, which show Voronoi
diagrams and neighbourhoods of a pointset represented in six different Voronoi models concurrently.
Changes made to a specific point, such as addition, deletion and relocation affect all diagrams
simultaneously. The application software shown in these figures implements the data structure and
algorithms as described here.

Although there are some examples of dynamic diagram creation in the literature (e.g. Gold, 1998; Icking
et al., 1999) there has been little research directed at the supporting algorithms and data structures,
particularly for higher order variants. Notable exceptions (for the OVD only) are the work of Green and
Sibson (1978), who proposed an edge-swapping procedure for node insertion and Heller (1990), who
considers the dynamic deletion of points. However the OVD is limited to a collection of nearest
neighbourhood operations, such as generating a buffer zone and searching for the nearest facility from a
given location (Okabe et al., 1994). Furthermore, the OVD is only useful when a point dataset has
constant properties, such as weight (influence), growth rate and neighbourhood. In many practical cases, a
point dataset can have different weights (e.g. as ’attraction’ values), growth rates and even various
distance concepts such as the second-closest, the farthest, and so on. Okabe et al. (1992) provide
comprehensive descriptions of a wide range of Voronoi variants. By using such an extended set, analysis
and modelling capabilities can be enlarged so that data can be analysed according to a number of different
spatial neighbourhoods. For instance, finding the next nearest hospital from a particular location when the
nearest hospital is fully occupied or closed, or the modelling of catchment areas when two retail outlets

3
have a different attraction value. These examples require the 2nd Nearest-point Voronoi Diagram (2NVD)
and the Weighted Voronoi Diagram (WVD), respectively. Unfortunately, these Voronoi variants do not
always mesh well with the data structures used for the OVD, but require a more generalised form.

Whilst there has been a good deal of research conducted into data structures and algorithms for the OVD
(e.g. Aurenhammer, 1991; Gold, 1992a; 1998), and associated Delaunay triangulation (e.g. Guibas and
Stolfi, 1985), still little is known of the data structure and algorithmic requirements of a generalised form
of the Voronoi diagram. As a consequence, implementation is more difficult, and may act as a barrier to
the uptake of these potentially useful concepts. Certainly, each distinct Voronoi model has specific
requirements in terms of the description of neighbourhood that must be supported by the data structure,
and the various constraints that apply to its formation and update. The notion of “Who is my neighbour?”
is extended by these variants, complicating the topological relationships that must be represented (Gold,
1992b). By addressing these issues, it should become easier to embed a variety of Voronoi models into
specific application packages and generic GIS, thus improving the representational and modelling
capabilities for certain analysis tasks.

The research reported here is part of a larger project to investigate the commonalities and differences
across a range of different Voronoi variants, from the perspective of supporting data structures and
dynamic update methods. The overall aim is to propose an integrated data structure and implementation
framework that all types can share, to facilitate dynamic modelling and analysis. To this end, a supporting
application has been developed2, downloadable from http://www.geog.psu.edu/~mark/voronoi or
http://www.cs.newcastle.edu.au/~ijlee/voronoi. The application allows a user to build any of six possible
Voronoi diagram variants: the Ordinary Voronoi Diagram (OVD), the Farthest-point Voronoi Diagram
(FVD), the Order-k Voronoi Diagram, (OKVD), the Ordered Order-k Voronoi Diagram (OOKVD), the kth
Nearest-point Voronoi Diagram (KNVD) and the Multiplicatively Weighted Voronoi Diagram (MWVD),
These can be concurrently visualised and the application supports interaction between any number of
linked views. It then becomes possible to study how these models differ in their representation of
neighbourhood and their relationship to the underlying point set generators and therefore to select
appropriate choices for specific analysis problems.

Thus, the objective of this paper is:

To investigate data structures and methods (classes) for a generalised form of the Voronoi diagram
for modelling discrete point sets. The data structure must be capable of supporting a number of

2
The application is implemented in the C++ programming language using Microsoft Developer Studio 4.0 running
under the MS-Windows 95/98 operating system on IBM compatible PC’s. (Visual C++, Developer Studio 4.0, MS-
Windows and Windows NT are all trademarks of the Microsoft corporation.)

4
different Voronoi diagrams concurrently, and provide for the construction of appropriate topologic
information for Voronoi regions and their generating points as required.

It is our intention that algorithms for the dynamic update of Voronoi variants (also implemented in the
application) will be reported in a later paper, leaving us free to concentrate here on data structure
requirements and construction of topology (dynamic update is implemented in the application referenced
above).

Intuitively, it is recognised that any type of Voronoi diagram can be constructed if all the vertices and
their topology are known. A complete diagram can then be obtained by connecting the neighbouring
vertices with a line (OVD, O2VD, OO2VD and 2NVD), a circular arc (MWVD), a hyperbolic arc
(additive weighted Voronoi diagram) or even higher order polynomial curve (compound weighted
Voronoi diagram).

To determine generic structure requirements, the definition and properties of each Voronoi variant were
carefully investigated based on implementation of the definitions presented by Okabe et al. (1992) and
evidenced in the accompanying software application. The following sections each consider a different
Voronoi variant, describing the data structure needs and the algorithms from which the underlying
Voronoi diagram can be reconstructed and Voronoi neighbours located. Following from this, the findings
are then fused together in Section 6 to produce a generic data structure encompassing all uncovered
needs. Due to space considerations, details of the Ordered Order-k Voronoi Diagram (OOKVD) are
omitted from the text. From the perspective taken here, it is very similar to the Order-k Voronoi Diagram,
(OKVD) except that the k generators of a region are ordered. Also, the kth Nearest-point Voronoi Diagram
(KNVD) is only covered briefly in the description of the Farthest-point Voronoi Diagram (FVD) (Section
3).

2 Ordinary Voronoi Diagram (OVD)


The OVD is normally defined as the “region of influence”. Every location in the plane is assigned to the
closest member in the point set (using a Euclidean distance metric). If a location is equally close to two or
more members of the point set, the location is shared by those members. As a result, locations assigned to
one member in the point set form the interior of a Voronoi region, whilst those assigned to more than one
region form the region boundaries (Voronoi edges). Since every location in the plane is assigned at least
once, the Voronoi regions are collectively exhaustive and the resulting tessellation is referred to as a
planar OVD (Okabe et al., 1992).

Underlying the Voronoi tessellation is a Delaunay tessellation (the dual of the Voronoi diagram)

5
constructed by joining all generators that share a Voronoi edge, as Figure 1 shows. The Delaunay
triangulation consists of non-overlapping triangles where no points fall within the circumscribing circle
(circumcircle) of any triangle.

Figure 1. The relationship between the Ordinary Voronoi Diagram (OVD) (the solid line) and its dual Delaunay
Triangulation (the dotted line).

2.1 Data Structure


There are two established and common data structures used to encode OVDs. These are referred to as the
Winged-Edge structure, based on the Voronoi regions, and the Delaunay structure, based on the dual
triangulation. Okabe et al. (1992) adopt the richer Winged-Edge structure from which a variety of useful
information, necessary for many applications, can be directly extracted. (This data structure conveys
explicit information about local incidence relations among Voronoi vertices, Voronoi edges and Voronoi
regions, so that it can be retrieved easily and without computation.) The alternative Delaunay structure
does not explicitly store Voronoi regions, but since the Voronoi edges can be reconstructed from the
triangulation (Gold, 1992a) there is no loss of information. One of the advantages of preserving
triangulation rather than polygon sets in the original form is that the number of vertices and edges is
constant (three), giving a fixed-length record structure that simplifies implementation and improves
efficiency of storage and retrieval. The ‘cost’ is that computation must occur to reconstruct the Voronoi
structure as and when it is required. Rather than being a problem, this can be advantageous since it
enables any form of Voronoi diagram to be reconstructed from the pointset, depending on the user’s
current need. Another advantage of the triangulation approach is that, by making use of neighbourhood
information, the structure can be updated dynamically and locally, so the scope of changes is reduced.
Small changes are more difficult to isolate using the Winged-Edge data structure.

As Figure 2 shows, the supporting data structure for Delaunay triangulation can itself be implemented in

6
three ways depending on whether the vertices (points), edges, or triangles are stored.

B
4 5
T1

6
A C
3
T2
1
2
D

Point # x, y Point # Triangle # Point # x, y Edge # Point Next Twin

A : A T1, T2 A : 1 A 3 0

B : B T1 B : 2 D 1 0

C : C T1, T2 C : 3 C 2 6

D : D T2 D : 4 B 5 0

(a) Point based data structure 5 C 6 0

6 A 4 3

(b) Edge based data structure

Point # x, y Triangle First Second Third Edge First Second First Second

A :
# edge edge edge # ∆ ∆ Point Point

B :
T1 3 4 5 1 T2 0 A D
C :
2 T2 0 C D
D :
3 T1 T2 A C

4 T1 0 A B

5 T1 0 B C

(c ) Triangle based data structure


Figure 2. Three data structures for describing Delaunay triangulation, based on the point, edge and triangle: (a)
point based data structure; (b) edge based data structure (modified from Heller, 1990); (c) triangle based data
(modified from Bjorke, 1988).

The list of properties for each element is shown in Table 1. The point-based structure (Figure 2(a))
contains information about how neighbouring points form a triangle. It is the simplest structure, but
topological information concerning adjacency between the elements is rather minimal. Also, the length of
the neighbour lists is variable (the number of triangles coincident with a generator varies from point to

7
point) which gives rise to operational inefficiencies. In the edge-based data structure (Figure 2(b)), all
information about the triangle is implicit in the edge table. Therefore, no triangle table is explicitly
required, although there may be a trade-off here of storage efficiency versus computational burden. This
data structure stores more information than the point-based data structure, but also requires more storage
resources. The triangle-based structure (Figure 2(c)) contains redundant data; as well as increasing the
storage overhead, the edges of a triangle appear in both the edge table and triangle table. This property
makes the triangle-based structure less suitable for dynamic triangulation, because there are more edges to
update.

Table 1. Geometric and topologic properties of data structure elements appearing in Figure 2.

Geometric Information Topologic Information

Point x and y coordinate. pointers to adjacent edges and


pointers to adjacent triangles.

Edge pair of coordinates for each pointers to adjacent edges and


endpoint. pointers to adjacent triangles.

Triangle coordinates of the three vertices pointers to adjacent triangles.


of each triangle.

The three types of data structures described above do not ideally fit the purposes of this study, where the
emphasis is on supporting many different types of Voronoi diagram within a dynamic modelling
environment, and where the underlying dataset is subject to regular localised changes. Also, some of the
higher Voronoi methods use two or more points as a single generator (e.g. Order-2 and Order-k methods),
complicating issues of neighbourhood. Finally, the generalised Voronoi edges are not restricted to a line;
for instance the MWVD uses two kinds of different Voronoi edges (line and circular arc).

For now, we make the observation that a suitable arrangement for the OVD would appear to be a hybrid
of those shown in Figure 2, where only points and Delaunay triangles are stored. Such a structure is
shown in Figure 3. This is basically the same as Figure 2(c), but with the redundant ‘edges’ table
removed and the origin of each circumcircle specifically added. This addition is an optimisation
compromise, since the circumcentre can be computed as required from its triangle vertices. Notice also
that each point contains a weight variable, allowing the ‘attractiveness’ of points to vary. The reasons for
these choices should become evident as other Voronoi types are studied in the following sections.

8
(a)

(b) Point table (c) Delaunay triangle table


Point # X Y Weight Triangle # Point 1 Point 2 Point 3 Center

1 72 -74 3 1 1 2 3 (120, -87)


2 116 -38 1 2 1 3 5 (120,-124)
3 168 -74 2 3 3 4 5 (123,-131)
4 190 -16 4
5 51 -135 1

Figure 3. The hybrid data structure of the OVD: (a) Diagram; (b) Point table; (c) Delaunay triangle table.

2.2 Regeneration of ordinary Voronoi regions


Since the data structure explicitly holds circumcentres for all triangles, the OVD can be produced by
simply connecting the circumcentres of neighbouring triangles (i.e. those that share a Delaunay edge). A
full description of an appropriate reconstruction algorithm is provided by Guibas and Stolfi (1985) and
Okabe et al. (1992).

2.3 Retrieval of spatial adjacency information


Neighbours to a particular point can be identified straightforwardly. Figure 4 shows an example where the
retrieved information includes all generator points ( p1 , p 2 , p 6 and p 7 ) adjacent to the chosen point

( p 5 ), a corresponding Voronoi region (the shaded area) and the neighbouring Voronoi regions ( v ( p1 ) ,

v ( p 2 ) , v ( p6 ) and v ( p7 ) ) incident to that point.

The steps for retrieval of adjacency information concerning a particular point are:

1. Find any triangle that has the selected point as a vertex in the Delaunay triangle table (Figure 3). For
instance, ∆p1 p 2 p 5 is chosen first among four Delaunay triangles ( ∆p1 p 2 p 5 , ∆p 2 p5 p7 , ∆p 5 p 6 p 7

and ∆p1 p 6 p 5 ) which have the point p 5 as a vertex as shown in Figure 4(b).

2. Arrange the three vertices of the chosen triangle in a clockwise order starting from the particular

9
point. For instance, the triangle ( ∆p1 p 2 p 5 ) is re-arranged to ∆p 5 p1 p 2 .

3. Find the next triangle ( ∆p1 p 6 p 5 ) which has the first two points ( p5 and p1 ) of the arranged triangle

( ∆p 5 p1 p 2 ) in step 2. Then, draw the ordinary Voronoi edge (a line connecting two centres of

circumcircles of triangles ( ∆p1 p 6 p 5 and ∆p 5 p1 p 2 )) and mark the middle point ( p1 ) of the

arranged triangle ( ∆p 5 p1 p 2 ) in step 2 as a neighbour by connecting a line between the two common

points ( p 5 and p1 ).

4. Repeat steps 2 ~ 3 for the triangle selected in step 3 until the first triangle ( ∆p1 p 2 p 5 ) is again found.

(a) (b)

Figure 4. Ordinary Voronoi Diagram and underlying Delaunay Triangulation showing adjacency information for
a point; (a) Delaunay Triangulation (n = 7), (b) Voronoi region surrounding a point. The shaded area, v(ρ5)
represents the Voronoi region of generator ρ5, the solid lines connect ρ5 to all neighbouring points.

In the OVD, the Voronoi region of a generator point always contains the generator point, simplifying
reconstruction of topology. This is not the case for some other forms of Voronoi diagram, as will be seen
in the following sections.

3 Farthest-Point Voronoi Diagram (FVD)


Conceptually, the FVD is similar to the OVD but instead of describing the “closest” region it describes
the “farthest”. Given a set of distinct points in the plane, all locations are assigned to the farthest member
of the point set. The result is again a tessellation of the plane into a set of regions associated the members
in the point set. The tessellation is mathematically defined (after Okabe et al., 1992) as follows.

10
Let P = { p1 ,..., p n } ⊂ ℜ 2 (2 ≤ n < ∞ ) be a set of distinct points, then the farthest-point Voronoi

polygon, v fp ( p i ) defined as:

 
v fp ( p i ) = {p | d ( p, p i ) ≥ d ( p, p j ), p j ∈ P /{p i }}=  p | d ( p, p i ) ≥ max{d ( p, p j )}, p j ∈ p /{p i } .
 pj

The FVD is, in fact, an order-k Voronoi diagram (Lee, 1982). If p i is the farthest point from p , then the

set of points P \ {p i }is the set of the first, the second, ..., the (n-1)th nearest point from p i . Thus the

v fp ( p i ) is the same as the order-(n-1) Voronoi polygon associated with P \ {p i } from the order-(n-1)

Voronoi diagram generated by P .

3.1 Data structure


Triangles define the Voronoi vertices in both OVD and FVD. The circumcircles of triangles in a FVD
include all other members in a point dataset, and the circumcentres are the farthest-point Voronoi vertices.
An example of this appears in Figure 5, where the farthest-point Voronoi vertices q1 and q 2 represent the

centres of circumcircles of two triangles ∆p 2 p3 p 4 and ∆p1 p 2 p 4 . The Voronoi vertex q1 is the

circumcentre of triangle ∆p 2 p3 p 4 , also it is an intersection point of the Voronoi regions v ( p 2 ) , v ( p3 )

and v ( p 4 ) .

Figure 5. Derivation of FVD (the dotted line) from its data structure (the solid line) (n = 4.)

These Voronoi vertices must all be stored in the data structure of the FVD. As can be seen, all these
vertices have exactly three Voronoi edges according to the non-cocircularity assumption. Therefore, a
complete FVD can be obtained by drawing three edges of every vertex from the data structure. This is
exactly the same requirement as already presented for the OVD, so the structure shown in Figure 3 can

11
be applied without modification to its form. The only change is one of nomenclature; the Delaunay
triangle table now refers to the farthest (not the nearest) triangles.

3.2 Regeneration of the farthest-point Voronoi regions


The FVD is formed from the data structure by the following steps (illustrated in Figure 5):

1. Read a farthest triangle from the farthest triangle table. For instance, farthest triangle ( ∆p 2 p3 p 4 ) is

chosen first in Figure 5.

2. For all three edges ( p 2 p 3 , p3 p 4 and p 4 p 2 ) of the triangle do step 3.

3. If an edge is shared by another triangle in the farthest triangle table, then draw a Voronoi edge (a line
between two centres of circumcircles). For instance, the edge p 4 p 2 is shared by the triangle

∆p1 p 2 p 4 , a line between two centres of circumcircles gives Voronoi edge q1 q 2 . If an edge is not
shared by any other triangle in the farthest triangle table, then draw a perpendicular line to the centre
of the circumcircle of the triangle in the opposite direction of the edge. The edge p 2 p 3 of triangle

∆p 2 p3 p 4 is not shared by any other triangles, so a perpendicular line is constructed from q1 heading

away from the edge p 2 p 3 . This line bisects the Voronoi regions v ( p 2 ) and v ( p3 ) .

4. Repeat steps 1-3 until no triangle remains in the farthest triangle table, by which time a complete
FVD is constructed.

3.3 Retrieval of spatial adjacency information


Once the data structure for FVD is constructed the topological information can be retrieved from the data
structure, i.e. the farthest Voronoi edges incident with a generator point, the farthest neighbouring points
and the farthest-point Voronoi region adjacent to a generator. To explain how this is achieved, consider
the point set shown in Figure 6.

Retrieval is achieved by the following steps:

1. Locate a triangle that includes the chosen point as a vertex from the farthest triangle table. In the
example, if point p 5 is chosen, then two triangles ∆p 2 p 4 p 5 and ∆p1 p 2 p 5 could be located.

Assume here that the triangle ∆p 2 p 4 p 5 is read first.

2. Mark the two other points in this triangle ( p 2 and p 4 ) as neighbours of p 5 .

12
3. For the two edges that include p 5 as one of their end points do step 4. In this case, edges p 4 p 5 and

p5 p 2 of the ∆p 2 p 4 p 5 have p 5 as an end point.

4. If the edge is shared by another triangle then draw a Voronoi edge (line) between the two centres of
circumcircles of these triangles. If an edge is not shared by any other triangle in the farthest triangle
table, then draw a perpendicular line to the circumcentre of the triangle in the opposite direction of
the edge. (This is the same as step 3 in the previous algorithm).

5. Repeat steps 1 ~ 4 until no further triangles contain the chosen point, producing a farthest-point
Voronoi region and Farthest-point Voronoi neighbours of p 5 .

(a) (b)
Figure 6. Farthest-point Voronoi Diagram (a) information incident/adjacent to a generator point: (b) A farthest-
point Voronoi region and neighbours (n = 6).

As seen from Figure 6(a), the Voronoi region v ( p5 ) shares Voronoi edges with regions v ( p1 ) , v ( p 2 )

and v ( p 4 ) . Therefore, points p1 , p 2 and p 4 are neighbours of p 5 . This information is easily obtained

from the two triangles ∆p 2 p 4 p 5 and ∆p1 p 2 p 5 in the farthest triangle table that have p 5 as a vertex.

An example of retrieving adjacency information relating to a farthest-point Voronoi region is shown in


Figure 6(b). In this case an initial step is required to identify the point farthest from the selected location,
after which the previous procedure can be applied. This information can be retrieved by selecting any
location in the shaded area using the Voronoi application referenced previously.

3.4 Discussion
The FVD has a couple of different characteristic from the OVD. Firstly, there is no one-to-one

13
correspondence between the generator point and the Voronoi region; points lying within the convex hull
of a dataset will never form a farthest-point Voronoi region. These points have no neighbours and
therefore no spatial adjacency information. For instance, the point p in Figure 6 does not have any

topology in the sense of the farthest-point Voronoi diagram. Secondly, the Voronoi region does not
contain its generator point (e.g. the region v ( p5 ) does not contain the generating point p 5 ). These two

characteristics cause some algorithmic complication but do not impose any new data structure needs over
those of the OVD.

4 Higher Order Voronoi Diagrams (O2VD - OKVD)


In the higher order Voronoi diagrams the number of generator points for each region increases from 1 (the
simple case as in the OVD) to a set. Order-2 diagrams contain a pair of generators per region and are
described here in detail. Extension to order-k is straightforward and is covered at the end of this section.
{ }
In general, if a set of the first nearest and second nearest points to a location is p i , p j , the location is

({ })
assigned to v pi , p j , i.e. the order-2 Voronoi polygon associated with {p , p }.
i j Note that no

distinction is made as to which point is the nearest—the set is unordered. Following this assignment rule,
all locations in the plane are assigned to at least one of the sets of two points. A collection of the resulting
order-2 Voronoi polygons form a tessellation (O2VD) generated by the set of points. Let P =
{ p1 ,..., p n } ⊂ ℜ 2 ( 2 ≤ n < ∞ ) be a set of distinct points, then the order-2 Voronoi polygon,

v ( p i( 2) ) is defined (Okabe et al., 1992) as:

{ { }}
v ( p i( 2) ) = p | d ( p , p i1 ) ≤ d ( p , p j ) and ( p , pi 2 ) ≤ d ( p , p j ), p j ∈ P / pi( 2 ) ,

 {
=  p | max d ( p , pk ) | pk ∈ Pi
(2)
}≤ min{d ( p, p }
) | p j ∈ P / Pi( 2 )  .
 
j
pk pj

Under the non-cocircularity assumption, for every vertex q i of an order-k Voronoi polygon, there exists a

unique circle centred at q i which passes through three points of P and contains zero or 1, ..., k-1 points

of P in its interior.

4.1 O2VD data structure


Basically, the data structure must here manage two distinct types of triangles (and associated
circumcircles). The circles containing no points in their interior can be treated in the same way as vertices
of the OVD. These vertices are called “old vertices” by Lee and Schachter (1982). The relationship

14
between the OVD and the O2VD is shown in Figure 7; the two Voronoi diagrams do not share edges but
share three vertices q1 , q 2 and q3 (the filled circles).

Figure 7. The relationship between the OVD (the dotted lines) and the O2VD (the solid lines) generated by the
same set of generator points (n = 6).

Table 2. The data structure for O2VD; (a) Point table; (b) Delaunay triangle table; (c) Order-2 triangle
table (n = 6, the locations of the generator are the same as those in Figure 7).

Point # X Y Weight Triangle # Point 1 Point 2 Point 3 Centre

1 0 0 1 1 1 4 6 ( -41,-100)
2 250 0 1 2 6 3 4 (125,-232)
3 250 -200 1 3 3 5 2 (238,-100)
4 0 -200 1 4 2 1 5 (125, 104)

5 147 -57 1 5 1 6 5 ( 69, -38)


6 65 -118 1 6 3 6 5 (158,-157)

(a) Point table (b) Delaunay triangle table

Order-2# Point 1 Point 2 Point 3 InPoint Centre

1 1 2 6 5 ( 25, -8)
2 1 4 5 6 ( 45,-100)
3 2 3 6 5 (183,-100)
4 2 4 5 3 (491,-558)
5 3 4 5 6 (125,-181)
6 4 5 6 3 (341,-403)
(c) Order-2 triangle table
15
All vertices of the OVD are also vertices of the O2VD, but some vertices of O2VD (i.e. centres of
circumcircles that contain a point in their interior) are not part of the OVD (e.g. vertex q 4 in Figure 7).
The “old vertices” can be stored in the Delaunay Triangulation table (Figure 3), leaving only the vertices
not in the OVD requiring special treatment. This additional need is catered for here by constructing a new
table, so the O2VD data structure consists of three components. Table 2 shows the data structure for the
O2VD depicted by Figure 7. The first parts of this, (a) and (b), remain unaltered with an Order-2 triangle
table added (c), containing only those triangles whose circumcircles include a point. The Order-2 triangle
table needs to store the three vertices forming a triangle and the point lying within the triangle. Similar to
the data structures of OVD or FVD, edges are not stored, but instead are implicitly defined in the two
triangle tables.

4.2 Regeneration of the Order-2 Voronoi diagram


The complicating factor here is that vertices exist in one of two tables. Consider the example shown in
Figure 8. Vertices q6 and q3 are the centres of circumcircles of Delaunay triangles ( ∆p1 p 6 p 5 and

∆p 3 p 6 p 5 ) are found in the Delaunay triangle table in Table 2(b) as triangle ID 5 and 6. On the other

hand, the vertices q1 , q 2 , q 4 and q5 appear in the Order-2 triangle table shown in Table 2(c), as Order-

2 ID 1, 3, 5 and 2, respectively. These two tables need to be processed together to derive an O2VD.

q9

(1, 5)
(2, 5)
(1, 6)

(5, 6) (2, 3)

(3, 5)
(4, 6)
(3, 6)

q8
Figure 8. Derivation of O2VD from its data structure (n = 6, generated by the same dataset of points used in

Table 2, pi represents a point, q i represents O2VD vertex and (i, j) represents a Voronoi region generated by

two points pi and pj respectively).

16
The conversion process is achieved by the steps below:

1. Read an Order-2 triangle (e.g. Order-2 ID 3: ∆p 2 p3 p 6 containing InPoint p 5 in Table 2(c)).

2. Make three new triangles by combining two vertices from the triangle read and its InPoint vertex.
Following the example these would be: ∆p 2 p3 p 5 , ∆p 3 p 6 p 5 and ∆p 6 p 2 p5 .

3. For every new triangle do step 4.

4. Search for the triangle in the triangle table (Table 2(b)). If it is found, then draw a line between the
centre of the triangle and the centre of the Order-2 triangle and go to step 6. The triangle ∆p 3 p 6 p 5

exists in the triangle table so a line is drawn between their two centres, creating the Voronoi edge
q 2 q 3 in Figure 8. If the triangle is not found, then do step 5.

5. Search for the triangle in the Order-2 triangle table. In this example, the third vertex ( p 5 ) of the

triangle ( ∆p 6 p 2 p5 ) should be the InPoint field and the first two vertices ( p 6 and p 2 ) should be the

vertices of Order-2 triangle in the triangle table. If the triangle is found, then draw a line between the
two centres. For example, the triangle ∆p 6 p 2 p5 is found in Table 2(c), the first two points p 6 and

p 2 are the vertices of the Order-2 triangle ( ∆p1 p 2 p 6 ) and p 5 is the InPoint. So, draw a line

between the two centres of the Order-2 triangles (ID 1 and 3). This results in a Voronoi edge q1 q 2 in
Figure 8. If the triangle is not found, then draw a perpendicular line from the Centre field of the
original Order-2 triangle in the opposite direction of the edge between the first and second vertex.

6. Repeat steps 1-5 until no Order-2 triangle remains in the Order-2 triangle table.

7. On completion, an O2VD is obtained from the data structure.

However, there is an exception that needs special care. By the conversion algorithm described above,
some Voronoi edges (e.g. q6 q9 and q3 q8 in the example) are not reachable from the centres of Order-2

triangles. Since the algorithm reads the entire Order-2 triangle table, any edges not directly connected to
Order-2 triangles will be missed. The problematic vertices are reachable, however, from the vertices used
in Step 4 (above), so this is modified to include a procedure to draw such edges. In the example given, the
vertex q6 is reachable from the vertices q1 or q5 that are processed in Step 4.

4.3 Retrieval of spatial adjacency information


Calculating the O2VD neighbourhood of a point requires a different approach. Figure 9 shows an

17
example used throughout this description, obtained by selecting the point p 5 in the Voronoi program. As

defined, the neighbours of p5 are p1 , p 2 , p 6 and p 7 . Therefore, the order-2 Voronoi region of p5

consists of four regions: v( p1, p5 ) , v( p2 , p5 ) , v( p6 , p5 ) and v( p7 , p5 ) . The regions are generated by the

combination of p 5 and one of its neighbours. The shaded area in Figure 9(a) is the zone of influence of

p 5 in the sense of O2VD. For instance, if p5 were a hospital, people living in the region v( p2, p5) will

use the hospital p 5 , if the hospital p 2 is closed or fully occupied. So, the number of patients attending

hospital p5 will be affected by the neighbouring hospitals ( p1 , p 2 , p 6 and p 7 ).

Figure 9. Order-2 information (a) incident/adjacent to a generator point (p5) and (b) to a Voronoi region: (n = 7).

The retrieval procedure is achieved by the steps below:

1. Find neighbouring points of a particular point in the Delaunay table. The neighbours in the O2VD are
those in the OVD. Therefore, read the Delaunay table and find the neighbours ( p1 , p 2 , p 6 and p 7 )

of the point ( p 5 ).

2. For every neighbour, draw its Voronoi region with the point p 5 and draw a line from the neighbour

to p 5 . For instance, for the neighbour p 2 draw a Voronoi region v( p2 , p5 ) and a line p 2 p 5 to show

the neighbourhood relationship.

3. On completion, adjacency information incident/adjacent to a particular point is obtained.

Calculating the O2VD region of two generators requires the following method:

1. Find the first and second nearest generators from a given location. Two points p 5 and p 7 are the

18
first and second nearest points to any location in the shaded area in Figure 9(b).

2. Once two generators are obtained, then draw the Voronoi region v( p5 , p7 ) of two points, and show a

pair of generator points by drawing a line between two points p 5 and p 7 .

4.4 Discussion
The O2VD data structure has two properties that make it difficult to update locally and dynamically with
comparison to the data structure of OVD. Firstly, the Order-2 triangles are overlapping (they do not
tessellate uniquely). We note in passing that this also causes complications for insertion and deletion
algorithms which we do not have room to describe here. Secondly, the O2VD data structure is a
combination of a Delaunay triangle table and an Order-2 triangle table, due to the additional field needed
to specify the InPoint. So when an O2VD is derived or spatial adjacency information is retrieved, these
two tables must be processed together.

Generalising the O2VD to higher order neighbourhoods can be achieved by adding additional triangle
tables. From the definition given at the start of Section 4, the Voronoi vertices of order-3 Voronoi
diagram are defined by three different triangle tables (Delaunay triangle table, Order-2 triangle and
Order-3 triangle ). In general, the data structure for OKVD will require k triangle tables: Delaunay
triangle table, Order-2 triangle table, ... , Order-k triangle table, each with progressively more InPoints.

Extending these modifications to address the OO2VD and OOKVD are also straightforward. The union of
the ordinary Voronoi edges and the O2VD (or OKVD) produce the OO2VD (OOKVD) edges, so they
require no additional supporting structures.

5 Multiplicatively Weighted Voronoi Diagram (MWVD)


So far it has been implicitly assumed that each generator point has the same weight. However, this
assumption may not be appropriate in many settings (e.g. Boots, 1980; Aurenhammer and Edelsbrunner,
1984). Rather, we would like the ability to adjust weights reflecting the variable properties of the
generator points—for instance, to reflect the ‘attractiveness’ of some object such as a shopping centre or a
city.

The basic properties of an MWVD are again described by Okabe et al. (1992) and briefly mentioned here
since the following descriptions draw on them. In a nutshell, the definition of the MWVD is exactly the
same as the OVD except the Euclidean distance is replaced with the Multiplicatively Weighted (MW)
distance, given by:

19
1
d mv ( p, p i ) = x − xi , wi > 0.
wi

where, w i is weight ( 1 ≤ i ≤ n) and n is the number of members in the point dataset.

A MW Voronoi region is then given by:

I {p | d ( p, p i ) ≤ d mw ( p, p j )}, i ≠ j.
n
v MWVD ( p i ) = mw
i =1

Because of the distance-decay effect of the weighting function, the bisector between two generator points
is a circle; known as the Apollonius circle in classic geometry. In the special case of weights being equal
( w i = w j ) , the bisector becomes a straight line (i.e. a circle with an infinite radius). So, an edge is a
circular arc if and only if the weights of the MW-Voronoi regions sharing the edge are different,
otherwise, edges are straight. A MW-Voronoi region is a non-empty set; it need not to be convex, or
connected; and it may contain holes. In fact, a MW-Voronoi region v MWVP ( p i ) is only convex if the

weights of adjacent MW-Voronoi regions are greater than (or equal to) w i . Two MW-Voronoi regions

may share disconnected edges.

Figure 10 shows an example of an MWVD. Notice that the Voronoi region v MWVD ( p5 ) indicated by the

shaded area is neither convex nor connected. Even worse, it has a hole v MWVD ( p6 ) . Interestingly, the

hole has another hole v MWVD ( p7 ) in it. As a result, the MWVD is not only more complex than the GVDs

mentioned earlier, but also more difficult to implement.

(3)

(3)
(5) (3)
(2)
(3)

(2)

Figure 10. A Multiplicatively weighted Voronoi Diagram (MWVD) generated by 7 points (the numbers in
parentheses represent weights associated with the generators).

20
From the non-cocircularity assumption, all the Voronoi vertices will be equally MW-distant from exactly
three members in the point dataset. In Figure 10, the MW-Voronoi region v MWVD ( p2 ) has two Voronoi

vertices q1 and q 2 . These two vertices are equally MW-distant from the three points p1 , p 2 and p 5 .

Thus, the two Voronoi vertices q1 and q 2 are the intersection points of exactly three MW-Voronoi

regions v MWVD ( p1 ) , v MWVD ( p2 ) and v MWVD ( p5 ) . For each Voronoi vertex, these three neighbouring

points must be stored in the data structure for MWVD. However, the holes do not have any intersection
point, so must be treated differently.

5.1 MWVD data structure


The MWVD data structure requires two tables (a point table and an MW-triangle table) as shown by
Table 3. Also, a weight for each generator must be stored in the point table, explaining why this field
appears in Figure 3, despite not being used by the OVD, the FVD, the O2VD, the OO2VD or the 2NVD.
Structurally, the MW-triangle table is exactly the same as the Delaunay triangle table shown earlier. The
only difference is caused by the hole(s) mentioned above.

Table 3. The data structure for the multiplicatively weighted Voronoi diagram (MWVD) shown in
Figure 10 (n = 7): (a) point table; (b) MW-triangle table.

Point # X Y Weight Triangle # Point 1 Point 2 Point 3 Centre


1 1 1 2 5 :
: : : : 2 1 2 5 :
: : : : 3 1 4 5 :
n 4 1 3 4 :
5 1 3 5 :
6 3 4 5 :
7 5 0 6 :
8 5 0 7 :
(a) (b)

The MWVD shown in Figure 10 has six Voronoi vertices ( q1 ~ q6 ) and two holes. These vertices are

stored in Table 3(b) as triangle IDs 1, …, 6, and the two holes in a similar manner as triangle ID 7 and 8,
respectively. For instance, the vertex q1 is an intersection point of Voronoi regions v MWVD ( p1 ) ,

v MWVD ( p 2 ) and v MWVD ( p5 ) , so these three neighbouring points p1 , p2 and p5 are stored together as

21
triangle ID 1. By contrast, the holes ( v MWVD ( p6 ) and v MWVD ( p7 ) ) do not have any intersection point,

but are created by the generator and the first nearest MW-distance point from the generator. For example,
the hole v MWVD ( p6 ) is created by its generator ( p6 ) and the nearest MW-distance point ( p5 ). In other

words, the hole is an Apollonius circle generated by the two points ( p6 and p5 ). Accordingly, the hole

requires two points rather than three, so is stored in the data structure with the second point set to zero to
indicate it is a hole. Note also that the first and second records (triangle ID 1 and 2) in Table 3(b) have the
same points ( p1 , p2 and p5 ) as their neighbours. This is because the two vertices q1 and q2 are

generated by the same MW-Voronoi regions: v MWVD( p1 ) , v MWVD( p2 ) and v MWVD ( p5 ) . A separate

method is required to differentiate the two vertices when rebuilding the MWVD or retrieving adjacency
information and will be described in the following section.

5.2 Regeneration of the multiplicatively weighted Voronoi diagram


The following method regenerates the MWVD from the data structure.

1. For each generator, retrieve the set of neighbouring Voronoi vertices. From the diagram shown in
Figure 11 the MW-region v MWVD ( p1 ) consists of six Voronoi vertices ( q1 ~ q6 ) and six Voronoi

edges ( q1 q 2 , q 2 q3 , q3 q 4 , q 4 q5 , q5 q6 and q 6 q1 ).

2. Sort these Vertices by polar angles with respect to the generator. Vertices of p1 will be in order q5 ,

q6 , q1 , q 2 , q3 and q4 after sorting.

3. Once sorted, every pair of consecutive Voronoi vertices ( q5q6 , q6 q1 , q1q2 , q2q3 , q3q4 and q4q5 in the

example) must be tested to see if they form a valid edge. Generally, each pair has at least two points
in common. For instance, the vertex q3 has p1 , p2 and p4 as its members and vertex q4 has p1 ,

p4 and p5 . Therefore, the Voronoi edge q3q 4 is a part of an Apollonius circle generated by the two

common points p1 and p4 .

4. Once these two points are identified, then the required portion of the Apollonius circle can be drawn
by constructing an arc in a counterclockwise direction from the first vertex to the second ( q3 to q4 in

this example).

To avoid drawing arcs more than once a simple test can be inserted here. An arc is only drawn when
the weight of the generator point is smaller than that of the adjacent generator. In the above example,

22
arc q3 q 4 would not be drawn because the weight (8) of generator ( p1 ) is greater than the weight (3)

of adjacent generator ( p4 ). The arc q3 q 4 has to wait until the MW-Voronoi region v MWVD ( p4 ) is

drawn, because the weight (8) of adjacent generator ( p1 ) is greater than the weight (3) of generator

( p4 ). As a result, only two Voronoi edges (arcs q 2 q3 and q 6 q1 ) will be drawn with respect to the

MW-Voronoi region v MWVD ( p1 ) .

5. Upon completion, the MWVD is obtained from the data structure.

(2) (2)
(8) (8)
(10) (10)
(2)
(2)
(6) (6)
(3) (3)

(b)
(a)

Triangle # Point 1 Point 2 Point 3 Centre


: : : : :
1 2 3 :
1 2 3 :
1 2 4 :
1 4 5 :
1 5 6 :
1 2 6 :
: : : : :

(c)

Figure 11. Derivation of MWVD from its data structure: (a) the MWVD; (b) the MWVD with two bisectors; (c)
the associated vertex table.

However, there is a complication that needs special care. A region may be comprised of two arcs between
the same pair of vertices. For example, the MW-Voronoi region v MWVD( p3 ) enclosed by two Voronoi

edges ( q1 q 2 and q 2 q1 ) is formed entirely by two Voronoi vertices q1 and q2 . These two vertices have

three points ( p1 , p2 and p3 ) in common and are generated by the intersection of two Apollonius circles

23
b( p1 , p3 ) and b( p2 , p3 ) . As Figure 11(b) shows, this produces four arcs (two circles) linking these
vertices, with the actual edges that should be drawn shown as solid arcs and the others as dotted lines. The
correct arcs can be identified by comparing lengths and selecting the smaller of each pair. (The length of
an arc ( s ) is given by: s = r θ, where r is the radius of an Apollonius circle and θ is the radian of the
arc.)

5.3 Retrieval of spatial adjacency information


Adjacency information for the MWVD data structure comprises the neighbourhood of a MW generator
point and region. Mostly, retrieval is straightforward here, due to the similarity of MWVD and OVD.
Calculating the neighbourhood of a point involves determining which points share a vertex, as explained
in the previous section.

Figure 12(a) shows the MWVD generated by 15 generator points and Figure 12(b) shows the information
retrieved by choosing the point p1 in the Voronoi program. The adjacency information includes the

corresponding MW-Voronoi region (the shaded area) and the Voronoi edges incident to the point p1 . The

neighbours (linked to the point by a line) adjacent to the point p1 are retrieved as well. Two points p2

and p3 are not connected to p1 . This is because they are not neighbours of p1 ; the MW-Voronoi region

v MWVD ( p1 ) shares no Voronoi edge with either v MWVD ( p2 ) or v MWVD ( p3 ) .

(2)
(2)
(2) (3) (5) (2)
(1)
(3)
(3)
(2) (2)
(2)

(1)
(1) (2)

(a) (b)
Figure 12. Weighted information incident/adjacent to a generator: (a) A MWVD; (b) Retrieved adjacency
information by clicking over the point (n = 15, the numbers in parentheses represent weights associated with the
generators).

Since a MW-Voronoi region always contains its generator, the information retrieved by selecting any

24
location in the MW-Voronoi region must be exactly the same as that retrieved by selecting its generator
point. The nearest MW-distance generator from any location in the shaded area in Figure 12(b) is its
generator p1 . If any location is selected in the MW-Voronoi region v MWVD ( p1 ) then the adjacency

information shown will be retrieved.

5.4 Discussion
The MWVD is similar to the OVD described first—indeed, if the weights of all generator points are
same, then the MWVD degenerates to the OVD. However, the weighting of points enables the MWVD to
model a wider-range of situations, with the price for this being a more complex reconstruction algorithm.
The format of the supporting data structure is exactly the same as that of OVD, with the caveat that holes
as well as triangles must be represented.

6 Results and Summary


Before presenting a general data structure, we make the following key observations as a summary of our
findings:

1) The Voronoi regions of O2VD and OO2VD (also OKVD and OOKVD) have multiple points as their
generator.

2) The Voronoi regions of FVD and 2NVD do not contain their generator point.

3) In the MWVD, members of point dataset may have different weights attached to them. As a result, a
weight field is added to the point table.

4) The Voronoi region may contain one or more holes in the MWVD.

5) A Voronoi region may be disjoint in the MWVD and is always disjoint in the 2NVD.

6) A Voronoi edge can be a circular arc in the MWVD.

7) There is no one-to-one correspondence between generator points and Voronoi regions in the FVD,
2NVD and MWVD.

6.1 Proposed data structure


A review of the previous descriptions reveals that the data structure needs for dynamic, generalised
Voronoi diagrams can be met by two tables of the form shown in Table 4 as follows. The point and
triangle table are shared by all variants. An additional Order-2 triangle table is also needed by the O2VD,
OO2VD and 2NVD. The hybrid triangle-based data structure shown in Table 4 merges the triangle table

25
and Order-2 table to give two distinct components: a point table containing x, y coordinates and weight,
and a vertex table detailing the Voronoi type (GVD#), the vertex identifier (vertex#), three vertices (point
1, point 2, point 3) the InPoint (Section 4.1) and circumcentre. Despite all of the differences shown
above, the methods developed indicate every type studied is adequately catered for by this structure.

Table 4. A hybrid data structure for all Voronoi types studied: (a) A point table; (b) A vertex table.

(a) (b)
Point # X Y Weight GVD# Vertex # Point 1 Point 2 Point 3 InPoint Centre

: : : : : : : : : : :
: : : : OVD 1 2 3 4 0 :
: : : : O2VD 1 1 2 3 5 :
: : : : MWVD 1 3 0 2 0 :

If any two triangles in the triangle table have two vertices in common they are considered as neighbours.
The three neighbours (two for the holes in the MWVD) with respect to the Voronoi vertices are always
defined whatever the diagram type. As previously mentioned, the InPoint field in the vertex table is only
used for the O2VD, it takes the value zero for all other types. Also, the hole in the MWVD does not have
any intersection point, indicated by zero stored in the second field (Point 2) in the vertex table.

Importantly, this data structure is amenable to the dynamic insertion and deletion of points. This is
achievable because the data structure isolates the scope of change, so that only directly-affected regions of
any diagram need to be reprocessed following an update. The aim, of course, is to ensure that
computational overheads are minimised, and consequently, that the algorithms are scaleable to large
numbers of data points. For ordinary Voronoi diagrams (OVDs), localising the update procedure is
reasonably straightforward due to the relatively simple structure of the neighbourhood. However, higher
Voronoi types possess more elaborate neighbourhood topology, resulting in more complex update
algorithms that often affect more of the underlying points set. The consequence is that the algorithmic
efficiency of incremental update decreases. However, when compared to the cost of a complete diagram
rebuild, the benefits of an incremental approach are still clearly justified. Details will be presented in the
forthcoming companion paper.

6.2 Example results


Figure 13 shows a range of Voronoi diagrams generated from the same set of points (n = 16) so they can
be compared directly (in truth the FVD is generated by 12 generator points without four boundary points).

26
Figure 13. An OVD, O2VD, OO2VD, MWVD and 2NVD generated by the same set of generator points (n = 16,
the FVD is generated without the four boundary points).

27
Figure 14. Adjacency information incident/adjacent to a generator point (n = 16, the locations of the generator
point are the same as those in Figure 13).

28
Figure 15. Adjacency information incident/adjacent to a Voronoi region (n = 16, the locations of the generator
point are the same as those in Figure 3 and Figure 4).

29
In the application program, all diagrams are linked, so that any changes affect all diagrams
simultaneously. Figure 14 uses the same data points to contrast the adjacency of a generator point
between the six GVDs. As a result, it is possible to gain some insight into particular types that might be
suitable for a given task. If each shopping centre has different facilities that attract customers, then the
MWVD adjacency information can be used. If a factory is to be sited as far as possible from a particular
city, then the FVD can be used. If a shopping centre is planning to merge with one of its neighbours, then
the O2VD can be used (the optimal merger might be with the neighbouring shopping centre that promises
the biggest increase of catchment area). Figure 15 shows the neighbourhood of a Voronoi region, again
based on the same data points. The neighbourhood of a particular location (the shaded area) can be
compared among the variants. Using the OVD and the MWVD, this region represents a ’zone of
influence’. In the FVD this zone can be used to find a site farthest from the biggest market rival. The
second nearest competing company to the particular location can be examined using the 2NVD.

6.3 Observations, comments and future work


A data structure, and associated reconstruction methods are presented for a range of Voronoi variants
(OVD, MWVD, FVD, O2VD, 2NVD). In the OVD, MWVD, 2NVD and FVD, discrete objects are
defined as adjacent neighbours only if their corresponding Voronoi regions share a common boundary
(Voronoi edge). Since a generator is a point in these diagrams, it is easy to define the neighbours. It is
more difficult to define neighbours in the higher order Voronoi diagrams (O2VD and OO2VD) since a
generator is not limited to a point, but rather is defined by a set of points (a pair of points in order2
examples given in this paper). In this case, all members of the set of points that generate a Voronoi region
are considered as adjacent neighbours.

The Voronoi Application program developed from the described structures and algorithms was used to
produce Figures 4-15, with annotation added afterwards where appropriate to support explanation in the
text. The application appears to be useful for exploratory visual analysis, for contrasting models and for
educational purposes. Although not specifically described here, the application appears well-suited to
dynamic modelling tasks, where the data are subject to change. This is because all diagrams and their
associated topological relationships are reconstructed '
on the fly'as they are required. A later paper will
give details of the dynamic insertion and deletion algorithms evident in the application program for the
described Voronoi variants.

Voronoi spaces require the following two geometric constraints, so they have been coded into the
application to avoid conflict.

• Points are all distinct in the sense that no points may coincide in the plane. If two points coincide,

30
then they will have the same properties, making it impossible to distinguish between them. As a
consequence, the application program monitors (and will disallow) coincidence during all point
insertions or point movement operations. It would be possible to automatically offset the offending
point a fraction, but this is not currently implemented.

• All Voronoi vertices are assumed to be generated by exactly three Voronoi regions (the non-
cocircularity assumption), guaranteeing a unique tessellation for a point dataset. If four points lie on a
circumcircle, then two ways of tessellating exist, both satisfying the definition of Delaunay
Triangulation, and neither of which can be considered superior.

Future work will concentrate on adding to the list of supported variants, and in considering the storage
and retrieval problems encountered as the number of generators grows large, such that algorithm
execution times and data indexing become important issue.

7 References
Anselin, L. (1999). Interactive techniques and exploratory spatial data analysis. In: Geographical
Information Systems: Principles, Techniques, Management and Applications (Eds. Longley, P.
Goodchild, M. Maguire, D. and Rhind, D. (pp. 251–264), New York, USA: Wiley,
Aurenhammer, F. (1991). Voronoi Diagrams - A Survey of a Fundamental Geometric Data Structure,
ACM Computing Surveys, 6 (1): 31-45.
Aurenhammer, F. and Edelsbrunner, H. (1984). An optimal algorithm for constructing the weighted
Voronoi diagram in the plane, Pattern Recognition, 17 (2): 251-257.
Bailey, T. C and Gatrell, A. C (1995). Interactive Spatial Data Analysis, New York, USA: Wiley.
Bjorke, J. T. (1998). Quadtrees and triangulation in digital elevation models. In: 1988 International
Archives of Photogrammetry and Remote Sensing, pp. 38-44.
Boots, B. N. (1980). Weighting Thiessen polygons, Economic Geography, 56: 16-37.
Dykes, J. A. (1997). Exploring spatial data representation with dynamic graphics. Computers and
Geosciences (Special issue on Exploratory Cartographic Visualisation), 23 (4): 345-370.
Egenhofer, M. J. and Herring, J. R. (1991). High-level data structures for GIS. In: Geographical
Information Systems (Eds. Maguire, D. J., Goodchild, M. F. and Rhind, D. W.) (Vol. 1: pp. 227-237),
London, UK: Longman.
Gatrell, A. C. (1991). Concepts of space and geographical data. In: Geographical Information Systems
(Eds. Maguire, D. J., Goodchild, M. F. and Rhind, D. W.) (Vol. 1: pp. 119-134), London, UK:
Longman.
Gold, C. M. (1991). Problems with handling spatial data - The Voronoi approach, CISM Journal ACSGC,
45 (1): 65-80.
Gold, C. M. (1992a). Dynamic spatial data structures - The Voronoi approach, Proceedings, 1992
Canadian Conference on GIS (pp. 245-255), Canadian Institute of Geomatics, Ottawa, Canada.

31
Gold, C. M. (1992b). The meaning of "neighbour", In: Theories and Methods of Spatio-Temporal
Reasoning in Geographic Space (pp. 220-235), Lecture Notes in Computing Science 639, Berlin,
Germany: Springer-Verlag.
Gold, C. M. (1993). An outline of an event-driven spatial data structure for managing time-varying maps,
Proceedings, 1993 Canadian Conference on GIS (pp. 880-888), Canadian Institute of Geomatics,
Ottawa, Canada.
Gold, C. M. (1994). Advantages of the Voronoi spatial model, Proceedings, Eurocarto XII (pp. 1-10)
Copenhagen.
Gold, C. M. (1998). The Quad-Arc data structure. Proc. 8th International Symposium on Spatial Data
Handling (Eds. Poiker, T. and Chrisman, N.) (pp. 713-724). Simon Fraser University, Burnaby, B.C.,
Canada.
Goodchild, M. F. (1991). The technological setting of GIS, In: Geographical Information Systems (Eds.
Maguire, D. J., Goodchild, M. F. and Rhind, D. W.) (Vol. 1: pp. 45-54), London, UK: Longman.
Goodchild, M. F. (1992). Geographical data modeling, Computers and Geosciences, 18 (4): 401-408.
Green, P. J. and Sibson, R. (1978). Computing Dirichlet tessellations in the plane, The Computing
Journal, 21: 168-173.
Guibas, L. and Stolfi, J. (1985). Primitives for the Manipulation of General Subdivisions and the
Computation of Voronoi Diagrams, ACM Transactions on Graphics, 4 (2): 74-123.
Heller, M. (1990). Triangulation algorithms for adaptive terrain modeling, Proc. 4th International
Symposium on Spatial Data Handling (Ed. Brassel, K. & Kishimoto, H.) (pp. -163-174), Dept. of
Geography, University of Zurich, Switzerland,.
Icking, C. Klein, R., Köllner, P. and Ma, L. (1999). Voroglide: Iinteraktive Voronoi-Diagramme
http://wwwpi6.fernuni-hagen.de/Geometrie-Labor/VoroGlide/ (accessed July, 1999).
Lee, D.-T. and Schachter, B. J. (1980). Two algorithms for constructing the Delaunay triangulation.
International Journal of Computer and Information Sciences, 9 (3): 219-242.
Lee, D. T. (1982). On k-nearest neighbor Voronoi diagrams in the plane, IEEE Transactions on
Computers, C31: 478-487.
Okabe, A., Boots, B. and Sugihara, K. (1992). Spatial Tessellations: Concepts and Applications of
Voronoi Diagrams. Chichester, England: Wiley.
Okabe, A., Boots, B. N. and Sugihara, K. (1994). Nearest neighborhood operations with generalized
Voronoi diagrams: a review, International Journal of Geographical Information Systems, 8 (1): 43-71.
Watson, D. (1992). Contouring: A guide to the analysis and display of spatial data. Oxford, UK:
Pergamon

32
Figure Captions
Figure 1. The relationship between the Ordinary Voronoi Diagram (OVD) (the solid line) and
its dual Delaunay Triangulation (the dotted line).

Figure 2. Three data structures for describing Delaunay triangulation, based on the point, edge
and triangle: (a) point based data structure; (b) edge based data structure (modified from Heller,
1990); (c) triangle based data (modified from Bjorke, 1988).

Figure 3. The hybrid data structure of the OVD: (a) Diagram; (b) Point table; (c) Delaunay
triangle table.

Figure 4. Ordinary Voronoi Diagram and underlying Delaunay Triangulation showing


adjacency information for a point; (a) Delaunay Triangulation (n = 7), (b) Voronoi region
surrounding a point. The shaded area, v(ρ5) represents the Voronoi region of generator ρ5, the
solid lines connect ρ5 to all neighbouring points.

Figure 5. Derivation of FVD (the dotted line) from its data structure (the solid line) (n = 4.)

Figure 6. Farthest-point Voronoi Diagram (a) information incident/adjacent to a generator point:


(a) (b) A farthest-point Voronoi region and neighbours (n = 6).

Figure 7. The relationship between the OVD (the dotted lines) and the O2VD (the solid lines)
generated by the same set of generator points (n = 6).

Figure 8. Derivation of O2VD from its data structure (n = 6, generated by the same dataset of
points used in Table 2, pi represents a point, q i represents O2VD vertex and (i, j) represents a
Voronoi region generated by two points pi and pj respectively).

Figure 9. Order-2 information (a) incident/adjacent to a generator point (p5) and (b) to a
Voronoi region: (n = 7).

Figure 10. A Multiplicatively weighted Voronoi Diagram (MWVD) generated by 7 points (the
numbers in parentheses represent weights associated with the generators).

Figure 11. Derivation of MWVD from its data structure: (a) the MWVD; (b) the MWVD with
two bisectors; (c) the associated vertex table.

Figure 12. Weighted information incident/adjacent to a generator: (a) A MWVD; (b) Retrieved
adjacency information by clicking over the point (n = 15, the numbers in parentheses represent
weights associated with the generators).

Figure 13. An OVD, O2VD, OO2VD, MWVD and 2NVD generated by the same set of
generator points (n = 16, the FVD is generated without the four boundary points).

Figure 14. Adjacency information incident/adjacent to a generator point (n = 16, the locations of
the generator point are the same as those in Figure 3).

Figure 15. Adjacency information incident/adjacent to a Voronoi region (n = 16, the locations
of the generator point are the same as those in Figure 3 and Figure 4).

33

Você também pode gostar