Keywords

1 Introduction

Space filling curves and surfaces find numerous applications in scientific computing, especially when the space is discretized by a well-defined grid or lattice. In digital geometry, the discretization usually refers to a collection of isotropic pixels in 2D and isotropic voxels in 3D. Our domain of interest is discrete 3D space or a discrete 3D plane, which eventually needs to be filled by voxels in a spherical or in a circular fashion. There exist few techniques in the literature on this; see, for example, [17, 18], where a marching sphere approach to wall distance calculation is proposed. It uses a modified mid-point circle algorithm to produce spheres at each level while ensuring that no gap is produced in between two consecutive concentric digital spheres. However, the adopted model of digital sphere conforms to only 16-symmetry and hence is not uniform with respect to different coordinates. Nonetheless, that work suggests the usability of sphere propagation in a real-life situation where distance from a moving or deforming body needs be estimated with reasonable efficiency in computation.

During spherical propagation, gaps or absentee voxels is a crucial issue, which needs to be tackled with guarantee and efficiency. Work on absentee characterization between concentric circles and spheres in digital space can be seen in [4,5,6]. Gap-free solid sphere generation using layering approach is also reported in [7], which is however suitable for voxel-based rapid prototyping but not for spherical propagation. In this paper, we show how space filling digital sphere can be propagated with efficient computation, which can subsequently be used for successful creation of Voronoi diagrams in 3D digital space.

For the basic terms and definitions useful for our work, we refer to [16]. For more specific terms and concepts related to metrics and topology in the voxel space, we refer to [8, 9, 13,14,15]. For formal definitions and details on paths, tunnels, and gaps in discrete objects, we refer to [11].

For a discrete object \(A \subset \mathbb {Z}^3\), a coordinate plane, say, xy, is functional for A, if for every voxel \(v(x_0,y_0,z_0) \in A\) there is no other voxel in A with the same first two coordinates. For example, let \(A=\{(2,5,3), (2,6,3), (3,5,3)\}\); here the functional plane of A is the xy-plane, since a bijection exists between A and its projection on the xy-plane.

In Table 1, we have shown the list of important symbols used in this paper. Some related images for easy understanding are shown in Fig. 1.

Table 1. List of symbols used and their meaning
Fig. 1.
figure 1

Hemispheres of radius 11 (voxels: naive = white, simple = blue, filler = red). (Color figure online)

Our contribution. A naive sphere of integer radius and integer center is 2-minimal and unique by composition. It has 48 symmetric parts (termed quadraginta octants or q-octants in short), each with a definite functional plane, and hence can be constructed very efficiently [8, 9]. However, being not space filling, as we show in this paper, it cannot readily be used for spherical or circular propagations in the integer space. To circumvent this, we show how to augment the 2-minimal naive sphere to a space filling digital sphere. We exploit certain number-theoretic properties of naive sphere to characterize the voxels lying in between two consecutive naive spheres. Once this is fixed, the space filling digital spheres are generated in succession very efficiently. We design an incremental algorithm that uses the current solid sphere to build the next one with simple integer operations. This, in turn, makes out algorithms for spherical propagation in 3D space and circular propagation on any 3D digital plane. We show several results to demonstrate its usefulness.

2 Space Filling Digital Sphere

There are different discretization models for representing geometric objects in digital space, each with its own advantages and disadvantages. Sphere is one of the most important primitive objects and computationally interesting due to its non-linearity. Its usual discretization models are naive, standard, supercover, arithmetic, and \(\tau \)-offset. Among these, standard and supercover models produce overlapping spheres for consecutive integer radii and hence not computationally attractive for space filling. The \(\tau \)-offset model gives rise to different models with varying values of \(\tau \) taken in the Euclidean metric space, as recently shown in [10]. An arithmetic sphere is identical with \(\tfrac{1}{2}\)-offset sphere and produces distinct voxel sets for consecutive radii. However, the algorithm for its construction is computationally heavy due to its generality to the real domain [1]. As tested by us, the integer algorithm for arithmetic sphere in [1] takes around thrice as much time as the algorithm proposed in this paper (Sect. 3). For example, with radius 95, it takes 2.2 ms against 0.8 ms needed by our algorithm on the same computing platform.

As shown in [8, 9], a naive sphere is computationally very efficient, as its construction is based on simple integer operations like addition, increment, and comparison, but devoid of any multiplication or division. This owes to the minimality of naive sphere. Due to its very minimality, though space filling is not possible by successive naive spheres, they can be augmented by requisite filler voxels to serve the purpose. These filler voxels admit interesting characterization, as we show in this section.

Each q-octant has one of the coordinate planes as the functional plane [9]. This allows us to represent the q-octant merely as a 2D array, which results in its quick computation. We show in this paper that the filler voxels can efficiently be found from few circular arcs in 3D, which are effectively elliptical arcs in 2D projection of those circular arcs on the functional plane.

2.1 Properties of Naive Sphere

We recall in particular some basic properties and characterization of the naive (i.e., 2-minimal or thinnest) model of digital sphere [8]. These concepts help us formalize the notion of filler voxels and eventually propose the concept of space filling spheres and spherical propagation while generating a higher-radius sphere from a lower-radius one.

We use \(\mathsf {S}(r)\) to denote a naive sphere of radius r and \(\mathsf {S}_{1}(r)\) to denote its 1st q-octant (\(0 \leqslant x \leqslant y \leqslant z \leqslant r\)). As explained in [8] and recently proved in [9], a naive sphere \(\mathsf {S}(r)\) is an irreducible 2-separating set of 3D integer points (equivalently, voxels) such that \(\max \limits _{p\in \mathsf {S}(r)}d_{\perp }(p,\mathcal {S}(r))\) is minimized. Furthermore, the set \(\mathsf {S}(r)\) is unique and its closed form is as follows.

Definition 1

(Naive Sphere [8]). A naive sphere of radius r is given by \(\mathsf {S}(r) = \left\{ p\in \mathbb {Z}^3: \left( r^2 - \lambda \leqslant s < r^2 + \lambda \right) \wedge \left( \left( s\ne r^2+\lambda -1\right) \vee \left( \mu \ne \lambda \right) \right) \right\} \), where, \(p = (i,j,k), s = i^2 + j^2 + k^2, \lambda = \max \{|i|,|j|,|k|\},\) and \(\mu = \mathrm {med}\{|i|,|j|,|k|\}\).

By \(\mathrm {med}\{\cdot \}\), we denote the median of values. The upper bound for \(\mathsf {S}(r)\) is \(r^2 + \lambda \) whereas the lower bound for \(\mathsf {S}(r+1)\) is \((r+1)^2 - \lambda \). Therefore, all the voxels falling in between these two values do not belong to \(\mathsf {S}(r)\) or \(\mathsf {S}(r+1)\) or any other naive sphere. Therefore, we have the following observation.

Fig. 2.
figure 2

Consecutive naive hemispheres from \(\mathsf {S}(4)\) to \(\mathsf {S}(15)\) shown in alternate gray shades; voxels in between them are shown in red (filler voxels) and blue (simple voxels). (Color figure online)

Observation 1

Naive sphere is not space filling.

Figure 2 shows consecutive naive spheres in two alternate shades of gray; voxels not belonging to any naive sphere are in red and blue. Red voxels denote the filler voxels, which are more than \(\tfrac{1}{2}\) isothetic distance away from any real sphere of integer radius (as explained in Sect. 2.2). Blue ones are the simple voxels, which remain sandwiched between \(\mathsf {S}(r)\) and \(\mathsf {S}(r+1)\), and lie within isothetic distance \(\tfrac{1}{2}\) from the real sphere of radius r [8]. Characterization of simple voxels and filler voxels eventually simplifies the generation of space filling digital spheres, as we show in this paper. From the definition of simple voxels given in [8], we make the following observation.

Observation 2

The set of simple voxels corresponding to \(\mathcal {S}(r)\) is given by \(\mathsf {\chi }(r) = \left\{ p\in \mathbb {Z}^3: \left( s = r^2 + \lambda -1\right) \wedge \left( \mu = \lambda \right) \right\} \), where, \(p = (i,j,k), s = i^2 + j^2 + k^2,\lambda = \max \{|i|,|j|,|k|\}\) and \(\mu = \mathrm {med}\{|i|,|j|,|k|\}\).

2.2 Characterization of Space Filling Digital Sphere

We define the (isothetic) \(\tfrac{1}{2}\)-offset digital sphere of radius r as the set of voxels whose isothetic distance from \(\mathcal {S}(r)\) is at most \(\frac{1}{2}\). For brevity, henceforth we refer this model simply as ‘digital sphere’. This voxel set is effectively \(\mathsf {S}(r)\) in union with all the simple voxels corresponding to radius r, and defined precisely as follows based on Observation 2.

Definition 2

( \(\tfrac{1}{2}\) -offset digital sphere). For any positive integer r, the \(\tfrac{1}{2}\)-offset digital sphere of radius r is given by \(\mathbb {S}(r) = \left\{ p\in \mathbb {Z}^3: r^2 - \lambda \leqslant s < r^2 + \lambda \right\} \), where, \(p = (i,j,k), s = i^2 + j^2 + k^2,\) and \(\lambda = \max \{|i|,|j|,|k|\}\).

The voxels other than \(\mathsf {\chi }(r)\) which lie in between \(\mathsf {S}(r)\) and \(\mathsf {S}(r+1)\) comprise the set of filler voxels. This is the same set of voxels lying in between \(\mathbb {S}(r)\) and \(\mathbb {S}(r+1)\) and given as follows.

Observation 3

The set of filler voxels lying in between \(\mathbb {S}(r-1)\) and \(\mathbb {S}(r)\) is given by \(\mathsf {F}(r) = \left\{ p\in \mathbb {Z}^3: (r-1)^2 + \lambda \leqslant s < r^2 - \lambda \right\} \), where, \(p = (i,j,k), s = i^2 + j^2 + k^2,\) and \(\lambda = \max \{|i|,|j|,|k|\}\).

We derive a few interesting properties pertaining to the set of filler voxels, which leads to an efficient algorithm for the construction of space filling spheres. We denote by \(\mathsf {F}_{1}(r)\) the first q-octant of \(\mathsf {F}(r)\), and require the following lemmas for this.

Lemma 1

For any voxel in \(\mathsf {F}_{1}(r)\), we have \(j + k \geqslant r\).

Proof

By Observation 3, for any voxel (ijk) in \(\mathsf {F}_{1}(r)\), we have

$$\begin{aligned} \begin{array}{ll} &{}(r - 1)^2 + k \leqslant i^2 + j^2 + k^2< r^2 - k\\ \Rightarrow &{}r^2 - 2r + 1 + k - k^2 \leqslant i^2 + j^2 < r^2 - k - k^2. \end{array} \end{aligned}$$
(1)

Since \(i \leqslant j\) in the first q-octant, from Eq. 1, we get \(2j^2 \geqslant i^2 + j^2 \geqslant r^2 - 2r + 1 + k - k^2.\) Let us assume, to the contrary of the lemma statement, that \(j + k < r\), or, \(j < r - k\), which yields \(2(r-k)^2 \geqslant r^2 - 2r + 1 + k - k^2 \Rightarrow f(k) := 3k^2 - (4r + 1)k + (r^2 + 2r - 1) \geqslant 0.\) For a constant value of r, the function \(f(k) = 0\) is an upward facing parabola, and hence the maximum values can be reached only at the extremes. The domain of k satisfied by \(\mathsf {F}_{1}(r)\) is \((\tfrac{r}{\sqrt{3}},r]\), and we get the values of f(k) at these extreme points as follows.

$$\begin{aligned} \begin{array}{rl} f(\frac{r}{\sqrt{3}}): &{}3r^2 - 4r^2 - r + r^2 + 2r - 1 = -r - 1< 0\\ f(r): &{}r^2 - \frac{4}{\sqrt{3}}r^2 - \frac{r}{\sqrt{3}} + r^2 + 2r - 1\\ = &{} -(\frac{4}{\sqrt{3}} - 2)r^2 - (2 + \frac{1}{\sqrt{3}})r - 1 < 0 \end{array} \end{aligned}$$

The above negative values indicate a contradiction, whence the proof.    \(\square \)

Lemma 2

The filler voxels in the first q-octant are functional on both xy- and xz-planes.

Proof

The lemma tells that if \((i,j,k) \in \mathsf {F}_{1}(r)\), then \((i,j,k+1) \notin \mathsf {F}_{1}(r)\) (for being functional on xy-plane) and \((i,j+1,k) \notin \mathsf {F}_{1}(r)\) (for being functional on xz-plane). Let us assume the contrary. Hence, first we take both (ijk) and \((i,j,k+1)\) belong to \(\mathsf {F}_{1}(r)\).

$$\begin{aligned} r^2 - 2r + k + 1 \leqslant i^2 + j^2 + k^2 < r^2 - k \end{aligned}$$
(2)
$$\begin{aligned} \begin{array}{ll} &{}r^2 - 2r + k + 2 \leqslant i^2 + j^2 + k^2 + 2k + 1< r^2 - k - 1\\ \Rightarrow &{}r^2 -2r + k + 2 - 2k - 1 \leqslant i^2 + j^2 + k^2< r^2 - k - 2k - 1\\ \Rightarrow &{}r^2 - 2r - k + 1\leqslant i^2 + j^2 + k^2 < r^2 - 3k - 1 \end{array} \end{aligned}$$
(3)

To make the two inequalities simultaneously true, we must have \(r^2 - 2r + k + 1 < r^2 - 3k - 1\), which implies \(2k < r - 1\). By Lemma 1, \(j+k \geqslant r\) for \(\mathsf {F}_{1}(r)\). Since \(j \leqslant k\) in the 1st octant, we get \(2k \geqslant r\), which contradicts our initial assumption. The other part of the theorem regarding the functionality on xz-plane can also be proved in a similar way.    \(\square \)

Lemma 3

The filler voxels in the first q-octant follow circular paths.

Proof

The voxels in \(\mathsf {F}_{1}(r)\) satisfies \((r-1)^2 + k \leqslant i^2 + j^2 + k^2 < r^2 - k\). For a fixed value of k, we get \(r^2 - k^2 + k \leqslant i^2 + j^2< (r+1)^2 - k^2 - k \Rightarrow r^2 - k^2 + k \leqslant i^2 + j^2 < r^2 - k^2 +2r- k+1.\) For a constant value of k, the set of voxels are bounded by the range \([r^2 - k^2 + k, r^2 - k^2 +2r- k+1)\) and has x-axis as the functional axis (as \(\mathsf {F}_{1}(r)\) is functional on both xy- and xz-planes by Lemma 2). Hence, for each k, the filler voxels belong to a discrete circle.    \(\square \)

The properties of filler voxels are used to define space filling digital spheres suitable for spherical propagation. This is evident from the following theorem.

Theorem 1

\(\mathbf {S}(r): = \mathsf {S}(r) \cup \mathsf {F}(r) \cup \mathsf {\chi }(r) = \mathbb {S}(r) \cup \mathsf {F}(r)\) is a space filling digital sphere, and hence given by \(\mathbf {S}(r) = \left\{ p\in \mathbb {Z}^3: (r-1)^2 + \lambda \leqslant s < r^2 + \lambda \right\} \), where, \(p = (i,j,k), s = i^2 + j^2 + k^2,\) and \(\lambda = \max \{|i|,|j|,|k|\}\).

Proof

From Definition 2, Observation 3, and Lemma 3, we get

$$\begin{aligned} \begin{array}{rl} \mathbf {S}(r) &{}= \mathsf {F}(r) \cup \mathsf {S}(r) \cup \mathsf {\chi }(r)\\ &{}= \mathsf {F}(r) \cup \mathbb {S}(r)\\ &{}= \left\{ p\in \mathbb {Z}^3: (r-1)^2 + \lambda \leqslant s< r^2 - \lambda \right\} \cup \left\{ p\in \mathbb {Z}^3: r^2 - \lambda \leqslant s< r^2 + \lambda \right\} \\ &{}= \left\{ p\in \mathbb {Z}^3: ((r-1)^2 + \lambda \leqslant s< r^2 - \lambda ) \vee (r^2 - \lambda \leqslant s< r^2 + \lambda )\right\} \\ &{}= \left\{ p\in \mathbb {Z}^3: (r-1)^2 + \lambda \leqslant s < r^2 + \lambda \right\} . \end{array} \end{aligned}$$

   \(\square \)

3 Frontier Propagation

By ‘frontier’, we mean the boundary of a voxel set, which is typically a solid digital sphere or union of many such in our work. We propose an incremental algorithm for frontier propagation, which uses the voxel set of the immediate lower-radius sphere or circle to generate the higher-radius sphere or circle. For this, the difference between these two are characterized very specifically. By Theorem 1, \(\mathbf {S}(r)\) is the union of \(\mathsf {F}(r)\) and \(\mathbb {S}(r)\). Circular characterization of \(\mathsf {F}(r)\) by Lemma 3 helps to generate the same in an efficient manner. If we generate the digital spheres independently of each other over successive radii, the algorithm will not be efficient. So, we use the voxel set of \(\mathbb {S}(r-1)\) along with \(\mathsf {F}(r)\) to generate \(\mathbf {S}(r)\) by the incremental algorithm. In this section, we first identify the challenges in this approach and then propose the algorithm by overcoming those.

Consider \(\mathbb {S}_{1}(r-1)\). Observe that it is functional on xy-plane. Hence, for each (ij) pair, the k value gets increased in \(\mathbb {S}_{1}(r)\) by 1 if \((i,j,k+1)\) is not a filler voxel or by 2 otherwise. Based on this observation, we first increase the k value for each (ij) pair by 1 to produce a new voxel set, namely, \(\varGamma \), which contains all the voxels of \(\mathsf {F}_{1}(r)\) excepting the ones that have \(j=k\). Note that \((i,k,k-1)\notin \mathbb {S}_{1}(r-1)\) and the remaining voxels of \(\mathsf {F}_{1}(r)\) are always 2-adjacent to the voxels of \(\mathbb {S}_{1}(r-1)\). Each of the voxels of \(\mathsf {F}_{1}(r)\) are also 2-adjacent to some voxels of \(\mathbb {S}_{1}(r)\). We traverse the circles of filler voxels and add the voxel \((i,j,k+1)\) (both \((i,j,k+1)\) and (ijk) if \(j=k\)) to \(\varGamma \) if (ijk) is the filler voxel, as others are already included in the last step. Note that the voxel set of \(\varGamma \) now contains a set of voxels (ijk) for which we always have \((i,j,k-1) \in \mathbb {S}_{1}(r)\) or \((i,j,k-1) \in \mathsf {F}_{1}(r)\). Therefore, the voxels of \(\mathbf {S}(r)\) having the form (ikk) are not added in \(\varGamma \) yet, as \((i,k,k-1) \notin \mathbb {S}_{1}(r)\) or \(\mathsf {F}_{1}(r)\). Hence, the explained two steps (along with the other 47 symmetric voxels for each voxel added) produce almost all the voxels of \(\mathbf {S}(r)\) excepting these voxels lying on the inter-octant boundaries having \(\max \{|i|,|j|,|k|\} = \mathrm {med}\{|i|,|j|,|k|\}\). Clearly these voxels do not have immediate successor on their same q-octant. We have the following observation regarding these extra voxels which are to be added in \(\varGamma \) to make it equivalent to \(\mathbf {S}_{1}(r)\).

Observation 4

The set of inter-octant boundary voxels of \(\mathbb {S}(r)\) is given by \(\mathsf {B}(r) = \left\{ p\in \mathbb {Z}^3: r^2 - \lambda \leqslant s < r^2 + \lambda \wedge \left( \mu = \lambda \right) \right\} \), where, \(p = (i,j,k), s = i^2 + j^2 + k^2,\) and \(\lambda = \max \{|i|,|j|,|k|\}\).

Theorem 2

First q-octant of the space filling digital sphere of radius r is given by

$$\begin{aligned} \mathbf {S}_{1}(r) = \left\{ \begin{array}{@{}l@{\ }l@{}} (i,j,k)\in \mathbb {Z}^3: &{} (i,j,k-1) \in \mathbb {S}_{1}(r-1) \vee (i,j,k-1) \in \mathsf {F}_{1}(r)\\ &{} \vee (j = k \wedge (i,j,k) \in \mathsf {F}_{1}(r)) \vee (i,j,k) \in \mathsf {B}_{1}(r) \end{array}\right\} \end{aligned}$$
(4)

Proof

Follows from Theorem 1, Observation 4, and our discussion before Observation 4.    \(\square \)

Clearly, a solid digital sphere, which is given by \(\mathbf {S^*}(r) = \left\{ p\in \mathbb {Z}^3: s < r^2 + \lambda \right\} \), is the union of the solid digital sphere of radius \(r-1\) and the space filling digital sphere of radius r, i.e., \(\mathbf {S^*}(r) = \mathbf {S^*}(r-1) \cup \mathbf {S}(r)\). During spherical propagation, we increase the radius of the solid digital sphere continuously by unit increment in each iteration. This is discussed in the forthcoming section.

figure a

3.1 Spherical Propagation

The algorithm for spherical propagation uses the characterization of filler and inter-octant boundary voxels to generate the successive space filling spheres in a very efficient manner. In this section, for simplicity, we discuss the algorithm for building \(\mathbf {S^*}(r)\) from \(\mathbf {S^*}(r-1)\) without going into much detail. We resort to a new notion of axis-parallel 2-neighborhood of length l defined as follows.

$$N^{(2)}({p,l}) = \left\{ q \in \mathbb {Z}^3: \left( d_x(p,q) + d_y(p,q) + d_z(p,q)\right) = d_{\perp }(p,q) \leqslant l \right\} $$

Here \(d_x(p,q)\), \(d_y(p,q)\), and \(d_z(p,q)\) denote the axis-parallel distances between points p and q along x-, y-, and z-axes and \(d_{\perp }(p,q)\) denotes the isothetic distance.

From the analysis of the space filling digital sphere, it is easy to observe that any new voxel to be added in \(\mathbf {S^*}(r)\) falls in \(N^{(2)}({p,2})\) of some voxel p lying on the surface of \(\mathbf {S^*}(r-1)\). Also observe that the voxels lying on the surface of \(\mathbf {S^*}(r-1)\) are none other than the voxels of \(\mathbb {S}(r-1)\) and can easily be found by checking if any of the voxels lying in \(N^{(2)}({p,1})\) for voxel p is not yet included in \(\mathbf {S^*}(r)\). This neighborhood characterization readily simplifies the steps for spherical propagation, as shown in Algorithm 1.

3.2 Circular Propagation

Our characterization of space filling digital sphere can also be utilized for circular propagation on 3D digital planes. Along with checking the membership of a voxel in space filling digital sphere, we also check for its membership in the given digital plane. This makes the neighborhood to be considered slightly larger, as now we cannot say about surface voxels by just checking their 2-adjacent neighbors or even newly added voxels does not maintain axis-parallel 2-neighborhood with the existing voxels. Hence, we define the axis-parallel 0-neighborhood of a voxel p, within an isothetic distance l from it, as follows.

$$\begin{aligned} N^{(0)}({p,l}) = \left\{ q \in \mathbb {Z}^3: d_{\perp }(p,q) \leqslant l \right\} \end{aligned}$$

We utilize this neighborhood for propagating circularly from a given point. Algorithm 2 takes a disc \(\mathbf {C^*}(r-1)\) of radius \(r-1\) on a given digital plane \(\mathsf {P}\) and produces \(\mathbf {C^*}(r)\) by adding the voxels belonging to both \(\mathsf {P}\) and \(\mathbf {S}(r)\).

figure b
Fig. 3.
figure 3

Spherical propagation for Voronoi diagram in a confined 3D space. (a) Seed points, (b) After iteration 3, (c) After iteration 7, (d) After iteration 10.

Fig. 4.
figure 4

Circular propagation for Voronoi diagram on a discrete plane. (a) Seed points, (b) After iteration 4, (c) After iteration 9, (d) After iteration 19.

4 Test Result

In this section, we furnish some preliminary test results on both spherical propagation in 3D space and circular propagation on 3D discrete plane. We use these propagation techniques to generate digital Voronoi diagram from a given set of seed points.

A Voronoi diagram (VD) is a partitioning of a space into regions based on distance from a specific set of seed points as input. For each seed, there is a corresponding region consisting of all points closer to that seed than to any other. These regions are called Voronoi cells or Voronoi regions. For a given distance metric d, the Voronoi region \(R_i\) corresponding to a seed \(p_i\) \((1\leqslant i\leqslant n)\) can be defined as follows.

$$\begin{aligned} R_i = \left\{ q: d(q,p_i) \leqslant d(q,p_j)~\forall ~j=1,2,\ldots ,n\right\} \end{aligned}$$
(5)

As known, Voronoi diagram (VD) in 2D and in 3D real spaces is a well-researched topic in computational geometry [2, 3], but there has not been any significant progress on this to date for 3D digital space. Some interesting work have been reported on characteristics and digital-geometric properties of VD in recent time on the 2D digital plane [12, 19].

We use Algorithms 1 and 2 to grow in parallel the Voronoi regions over all seeds. The effectiveness of the parallel and incremental region growing algorithm can be utilized for generating the boundaries of the Voronoi regions where the spheres or circles meet. Figure 3(b–d) shows the generation of Voronoi diagram in a confined 3D space by parallel spherical propagation from all the seed points as given in Fig. 3(a). Similarly, in Fig. 4(a), a set of seed points is given on a 3D discrete plane, and Fig. 4(b–d) show the circular propagation to form Voronoi regions on the discrete plane.

5 Concluding Note

We have proposed a model of space filling digital sphere that can be used for efficient propagation of spherical or circular frontier in the digital space. Necessary theoretical analysis and characterization have been provided with related proofs. As an immediate application, we have also shown how this space filling model of digital sphere can be used for construction of digital Voronoi diagrams in 3D space or along a 3D plane. Naturally, this brings in several interesting issues like digital convexity of the Voronoi regions, thus formed, which needs to be addressed in future work.

On real-world applications, a very specific use of space filling digital sphere can be related to discrete 3D terrains for solving various computational problems related to geography information system. A suitable distance measure for construction of well-defined Voronoi diagram on an arbitrary digital surface, e.g., a digital terrain whose underlying real surface is unknown, seems to be an interesting and challenging task. The work presented in this paper can be used to meet these challenges in future.