1 Introduction

Discretization models and their combinatorial structures have drawn a stronger attention of the research community over the last couple of decades [17, 18]. Several series of works have been reported on characterization and modeling of different geometric objects like planes and hyperplanes, spheres and hyperspheres, polygons and polytopes, and the like, in the framework of digital geometry. The underlying concepts often vary one from the other while imposing additional criterion one over another. For example, a naive plane is discretized to satisfy the minimality in the number of constituent voxels along with the topological condition of separating the discrete space. However, the very condition of minimality is prohibitive to devising a proven mechanism for discretization of Euclidean primitives like lines, segments, triangles, or polygons as connected voxel sets on a naive plane. The ‘naive model’ of discrete plane is subsequently enhanced to ‘graceful model’—first introduced in [8] and studied later in detail in [912].

Fig. 1.
figure 1

1st q-octant of naive sphere of radius 23 and its projections on FP, PP, and DP (dark green ticks = mono-jumps, other ticks = multi-jumps) (Color figure online).

1.1 Motivation

It is the functional plane that plays the leading role in characterization and construction of a discrete plane to its graceful model. As shown in [8], jumps are the root cause behind the failure of naive plane in construction of Euclidean primitives on its surface. It is worth mentioning here at this point that combinatorial configurations of jumps are given by the orientation of the functional plane. For the formal definitions of naive plane, graceful plane, jumps, and functional planes, we refer to [8, 9].

The above concept, as a whole, is also relevant to discrete sphere and has the potential to address many theoretical issues in the context of primitive construction on a discrete spherical surface. No perceivable progress is however noticed in this line, which drives us to take up this work. To the best of our knowledge, this is the first work of its kind, which provides a new insight of analyzing the topological properties of discrete sphere in the integer space. More importantly, it indicates the immense possibility to make out symmetry groups and their topological characterization for various other 3D objects, a few of which evidently being hypersphere, ellipsoid, and hyper-ellipsoid.

1.2 Main Results

We summarize here the theoretical results obtained by us. The proofs and related details are discussed in the subsequent sections.

A naive sphere is made up of 48 basic symmetric parts, which are called quadraginta octants, or q-octants in short [3, 6]. In this paper, we show how these 48 q-octants give rise to 3 groups when characterized by their respective functional planes (FP). Each group is further subdivided into two subgroups, each having a unique combination of its para-functional plane (PP) and dia-functional plane (DP) defined by jump configurations. We show how mono-jumps occur from FP and PP, and multi-jumps from DP, while taking back projection from them to the naive sphere. Figure 1 shows the 1st q-octant of a naive sphere, its projections on the three coordinate planes, and their respective jumps. Figure 2 illustrates how jumps in different q-octants are bridged by inclusion of some additional voxels in the naive sphere. By analogy to other geometric problems, we refer to these voxels as Steiner voxels.

The grouping of q-octants results to a functional gradation of the coordinate planes against the q-octant groups. Figure 3 shows an example. This, in turn, eventually leads to characterization and modeling of a special class of discrete 3D circles on the surface of a naive sphere, once we bridge the jump voxels by requisite Steiner voxels. We call these circles ortho-coordinate circles, as they are orthogonal to one of the three coordinate planes. Their construction is efficiently doable by a technique based on back projection from a coordinate plane based on its functionality w.r.t. the concerned q-octants and their group properties.

Fig. 2.
figure 2

(a) Naive sphere of radius 7. (b) Steiner voxels (dark green) corresponding to functional planes of the q-octants. (c) A jump (qs) in (b) and its bridging by Steiner voxel (lying outside of the naive sphere, but may also lie inside) (Color figure online).

Fig. 3.
figure 3

Grouping of q-octants using functional gradation of coordinate planes. (a) Q-octants with xy-plane as FP are shown in green, as PP are shown in yellow, and as DP are shown in red. (b) Q-octants with zx-plane as FP are shown in green, as PP are shown in yellow, and as DP are shown in red. (c) Q-octants with yz-plane as FP are shown in green, as PP are shown in yellow, and as DP are shown in red. Voxels belonging to more than one group are shown in white in all three renditions (Color figure online).

2 Preliminaries

In this section, we fix some basic notions and notations to be used in the sequel. For more details, we refer to [17]. We also go through the concepts from previous researches which deem useful in the context of our work.

2.1 Basic Notions and Notations

By discretization, we mean rasterization or voxelation of a real object (curve or surface), subject to certain topological constraints. The notion owes its origin to computer graphics and geometric modeling [7, 1416].

We define x-distance, y-distance, and z-distance between two (real or integer) points, p(ijk) and \(p'(i',j',k')\), as \(d_x(p,p')=|i - i'|\), \(d_y(p,p')=|j - j'|\), and \(d_z(p,p')=|k - k'|\), respectively. Using these inter-point distances, we define the respective x-, y-, and z-distances between a point p(ijk) and a surface S as follows. Let \(d_x(p,S)\) be the x-distance between p and S. If there exists a point \(p'(i',j',k')\) (the nearest, if there is more than one) in S such that \((j',k')=(j,k)\), then \(d_x(p,S)=d_x(p,p')\); otherwise, \(d_x(p,S)=\infty \). \(d_y(p,S)\) and \(d_z(p,S)\) are defined in a similar way. Between two points p(ijk) and \(p'(i',j',k')\), the isothetic distance is taken as the Minkowski norm [17], \(d_\infty (p,p') = \max \{d_x(p,p'), d_y(p,p'), d_z(p,p')\}\); between a point p(ijk) and a surface S, it is \(d_{\perp }(p,S) = \min \{d_x(p,S),\) \(d_y(p,S),d_z(p,S)\}\).

A voxel is an integer point in 3D space, and equivalently, a 3-cell [17]. Two distinct voxels are said to be 0-adjacent if they share a vertex (0-cell), 1-adjacent if they share an edge (1-cell), and 2-adjacent if they share a face (2-cell). Thus, for \(l\in \{0,1,2\}\), two distinct voxels p(ijk) and \(p'(i',j',k')\) are l-adjacent if \(d_\infty (p,p') = 1\) and \(d_x(p,p')+d_y(p,p')+d_z(p,p') \leqslant 3-l\). Note that the 0-, 1-, and 2-neighborhood notations correspond respectively to the classical 26-, 18-, and 6-neighborhood notations [13, 19].

For \(l\in \{0,1,2\}\), an l-path in a 3D discrete object A (or the discrete space \({\mathbb {Z}}^3\)) is a sequence of voxels from A such that every two consecutive voxels are l-adjacent. The object A is said to be l-connected if there is an l-path connecting any two points of A. An l-component is a maximal l-connected subset of A.

Let D be a subset of a discrete object A. If \(A{\backslash }D\) is not l-connected, then the set D is l-separating in A. Let D be an l-separating discrete object in A such that \(A {{\backslash }} D\) has exactly two l-components. A 3-cell \(c\in D\) is said to be l-simple w.r.t. A if \(D {\backslash }\{c\}\) is l-separating in A. An l-separating discrete object in A is l-minimal (or l-irreducible) if it does not contain any l-simple 3-cell w.r.t. A.

Given a discrete object \(A \subseteq {\mathbb {Z}}^3\), we say that 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.

2.2 Naive Sphere and Quadraginta Octants

In our work, we consider sphere with integer radius and integer center. For simplicity and without loss of generality, we consider its center as (0, 0, 0). We denote by \(S_r\) the real sphere of radius r, and its corresponding naive sphere by \({\mathsf {S}}_r\). As shown in [3, 6], the voxels comprising \({\mathsf {S}}_r\) have isothetic distance less than \(\frac{1}{2}\) from \(S_r\), and they form a 1-connected, 2-minimal, and tunnel-free set, thereby conforming to the concepts proposed in [13]. It has nine planes of symmetry, which lead to \(2^3=8\) coordinate octants, or c-octants in short. The three coordinate values of a c-octant can be ordered in \(3!=6\) ways, thereby further dividing the sphere into \(8\times 6=48\) quadraginta octants, or q-octants in short. For construction of \({\mathsf {S}}_r\), we can generate only its first q-octant, namely \({\mathsf {S}}_{r}^{({1})}\), and reflect it about the planes of symmetry for obtaining \({\mathsf {S}}_r\). As shown in [3, 6],

$$\begin{aligned} {\mathsf {S}}_r= \left\{ \begin{array}{@{}l@{\ }l@{}} p\in {\mathbb {Z}}^3: &{} r^2 - \max (X)\leqslant s < r^2 + \max (X)\\ &{} \wedge \left( \left( s\ne r^2+\max (X)-1\right) \vee \left( \mathrm {mid}(X)\ne \max (X)\right) \right) \end{array}\right\} \!\! \end{aligned}$$
(1)

where \(p = (i,j,k), s = i^2 + j^2 + k^2,\) and \(X = \{|i|,|j|,|k|\}\).

We follow the scheme proposed in [3, 6] for uniquely representing the c-octants and the q-octants, and give here a brief review. Each c-octant \({\mathbb {C}}_{i}\) is represented by a 3-tuple of signs of coordinate axes, namely \(C_i:=\left( c_i^{(1)},c_i^{(2)},c_i^{(3)}\right) \). For example, \(C_1=(+,+,+)\), \(C_2=(-,+,+)\), and so forth. On the contrary, the 3-tuple \(Q_t:=\left( q^{(1)}_t,q^{(2)}_t,q^{(3)}_t\right) \) for each q-octant \({\mathbb {Q}}_{t}\) represents the three signed coordinate axes. That is, each element \(q^{(\cdot )}_t\) has two variables, namely \(\omega \) and \(\sigma \). The variable \(\omega \) contains a literal (numeric form of the name of the coordinate axis) from \(\{1,2,3\}:=\{\mathtt{x}, \mathtt{y}, \mathtt{z}\}\), and the variable \(\sigma \) contains the sign of the corresponding coordinate. That is, \(Q_{1}= (+1,+2,+3)\), \(Q_{2}= (+2,+1,+3)\), \(Q_{3}= (+2,+3,+1)\), \(\ldots , Q_{24}= (-1,+3,-2)\), \(\ldots , Q_{48}= (-1,-3,-2)\). For example, \(Q_{24}\) has \(\omega [q^{(1)}_{48}]=1\), \(\sigma [q^{(1)}_{48}]= `-\)’, \(\omega [q^{(2)}_{48}]=3\), etc. The sequence of coordinates in \(Q_t\) tells us the increasing order of the absolute coordinate values of the integer points belonging to tth q-octant. We use this for grouping of q-octants.

Fig. 4.
figure 4

(a) Jumps (dark green ticks) corresponding to FP of \({\mathsf {S}}_{r}^{({1})}\) for \(r=23\). (b) Steiner voxels (dark green) bridging the jumps (Color figure online).

3 Functional Gradation of Coordinate Planes

We first give a brief review on the graceful model of discrete plane. Let P be a 3D real plane, \(\mathsf P\) and \({\mathcal P}\) be its corresponding naive and graceful planes, and let \(F\) be the functional plane. Let s and t be two voxels on \(\mathsf P\). Let \(s'\) and \(t'\) be the projections of s and t on \(F\). Let \(L(s',t')\) be the 2D digital straight segment (DSS) joining \(s'\) and \(t'\) on \(F\). As there is an one-to-one correspondence between \(\mathsf P\) and its projection pixels on \(F\), we get a set of voxels on \(\mathsf P\) corresponding to the pixels of \(L(s',t')\). This set may not be connected due to the presence of one or more jumps [9]Footnote 1. A (mono-)jump is created by a pair of disconnected voxels—be it a plane or be it a sphere—as illustrated in Fig. 2(c). This problem is solved in \({\mathcal P}\) by inserting a Steiner voxel in between the two voxels forming a jump in \(\mathsf P\) so that those two voxels become 0-connected in \({\mathcal P}\). A tandem is thus formed by the Steiner voxel and one of the jump voxels, which are 2-adjacent to each other (Fig. 2(c)). To ensure that \({\mathcal P}\) is a subset of the supercover \(\varvec{P}\) of P, each Steiner voxel is chosen only if it intersects P.

For a plane in general orientation, the functional plane (FP) is unique, and it is one of the coordinate planes. For a sphere, on the contrary, it is not so; rather, for each q-octant, the concept is analogous with plane. To explain this, we denote by \({\mathsf {S}}_{r}^{({t})}\) the tth q-octant of \({\mathsf {S}}_r\), where \(t=1,2,\ldots ,48\), and define its FP as follows.

Definition 1

(FP). The functional plane of \({\mathsf {S}}_{r}^{({t})}\) is the coordinate plane on which its projection has a bijection with \({\mathsf {S}}_{r}^{({t})}\).

Each coordinate plane serves as the functional plane (FP) of 16 specific q-octants, as evident from the following lemma.

Lemma 1

FP of \({\mathsf {S}}_{r}^{({t})}\) is xy-, yz-, or zx-plane, depending on whether the value of \(t\bmod 6\) belongs to \(\{1,2\}, \{3,4\}\), or \(\{5,0\}\), respectively.

Proof

Follows from the construction of \({\mathsf {S}}_{r}^{({t})}\) in conformance with Eq. 1\(\quad \square \)

By Lemma 1, we get the FP for a q-octant and hence can apply the tandem configuration used for a graceful plane with the same FP. This owes to two facts: (i) \({\mathsf {S}}_{r}^{({t})}\) has bijection with its FP projection; (ii) exactly one Steiner voxel can bridge a jump corresponding to FP (we prove it shortly), and such jump is a mono-jump. Jumps other than mono-jumps are called multi-jumps.

For a mono-jump, a Steiner voxel can be put either outside or inside of \({\mathsf {S}}_r\), in between the voxels forming the mono-jump in order to bridge them, according to its intersection with \(S_r\), ensuring its belongingness in the standard sphere [4]. Figure 4 shows the projection of \({\mathsf {S}}_{r}^{({1})}\) on its FP (xy-plane), the resultant mono-jumps, and the bridging Steiner voxels. See also Fig. 2, which shows how Steiner voxels are inserted for bridging all mono-jumps.

For the two coordinate planes other than the one forming FP for \({\mathsf {S}}_{r}^{({t})}\), we do not get a bijection with its projection on either of them. Specifically, for these two non-functional planes, a run of voxels (2-path with two common coordinate values) gets projected to a single pixel. We categorize them as para-functional plane (PP) and dia-functional plane (DP), and define as follows.

Definition 2

(PP, DP). PP of \({\mathsf {S}}_{r}^{({t})}\) is the coordinate plane on which its projection corresponds to only mono-jumps but is not bijective with \({\mathsf {S}}_{r}^{({t})}\). Its DP is the coordinate plane which is neither FP nor PP; in other words, the projection on DP is not bijective and corresponds to mono- or multi-jumps.

We have the following theorem on mono-jumps.

Fig. 5.
figure 5

(a) Steiner voxels (dark green) corresponding to PP of each q-octant for \(r=7\). (b) A cutout jump configuration showing how the Steiner voxel is positioned (Color figure online).

Theorem 1

(FP, PP Jumps). Jumps corresponding to FP and PP are always mono-jumps.

Proof

W.l.o.g., consider the 1st q-octant of \({\mathsf {S}}_r\). Let \((i,j,k), (i,j+1,k-d_1), (i+1,j,k-d_2) \in {\mathsf {S}}_{r}^{({1})}\). By 2-minimal property of \({\mathsf {S}}_r\), we get \(d_1,d_2\in \{0,1\}\). Now, if \((i+1,j+1,k-d_3)\in {\mathsf {S}}_{r}^{({1})}\), then \(d_3 \in \{0,1,2\}\). Hence, corresponding to FP, a jump (qs) arises with \(q=(i,j,k)\in {\mathsf {S}}_{r}^{({1})}\) and \(s=(i+1,j+1,k-d_3)\in {\mathsf {S}}_{r}^{({1})}\) if and only if \(d_3\) attains its maximum value (i.e., 2). Thus, the jump is a mono-jump, as shown in the configuration in Fig. 2(c).

To prove the same for PP, observe that \({\mathsf {S}}_r\) is a collection of digital annuli, where, a z-value in \([-r,r]\) corresponds to a digital annulus bounded from inner and outer by two digital circles (as closed 0-paths) with real radii and (0, 0, z) as their common center. By construction of \({\mathsf {S}}_r\), the part of a (inner/outer) digital circle within \({\mathsf {S}}_{r}^{({1})}\) always has a unique y-value for a given x-value. If a multi-jump occurs, then the concerned digital circle does not remain a closed 0-path. Therefore, a jump corresponding to PP is always a mono-jump. \(\quad \square \)

Fig. 6.
figure 6

Jumps corresponding to PP (zx-plane) of \({\mathsf {S}}_{r}^{({1})}\) with radius 23. (a) Steiner voxels (for clarity, outside ones are shown in dark green). (b) Projection of \({\mathsf {S}}_{r}^{({1})}\) on its PP; jumps shown in dark green ticks (Color figure online).

A jump configuration for PP is shown in Fig. 5(b), where p and q are two voxels from the outer digital circle of an annulus, and (qs) forms the jump. Figure 6 shows the projection of \({\mathsf {S}}_{r}^{({1})}\) on its PP (zx-plane) and the requisite Steiner voxels bridging the jumps on \({\mathsf {S}}_{r}^{({1})}\) corresponding to PP. The mono-jump locations are marked using dark green ticks and multi-jumps using different colors (light green for two, yellow for three, and red for more requirement of Steiner voxels to fill up the jump). Figure 7 shows \({\mathsf {S}}_{r}^{({1})}\) and the Steiner voxels corresponding to DP.

Fig. 7.
figure 7

Jumps corresponding to DP of \({\mathsf {S}}_{r}^{({1})}\) for radius 23. (a) Projection on DP (yz-plane), showing mono-jumps in dark green and multi-jumps in different colored ticks. (b) Steiner voxels, color-coded as per jump size (Color figure online).

A DP may contain coincident projection pixels for several runs of voxels from the q-octant. Also, to connect the runs whose projections are adjacent, we may need more than one Steiner voxel—a case of multi-jump (Fig. 7). We have the following corollary.

Corollary 1

(DP Jumps). Jumps corresponding to DP are mono- or multi-jumps.

4 Grouping of Quadraginta Octants

The following lemma explains the way of determining FP, PP, and DP for any q-octant of \({\mathsf {S}}_r\).

Lemma 2

(Projection Planes). FP, PP, and DP of \({\mathsf {S}}_{r}^{({t})}\) are determined by dropping from \(Q_t\) the coordinates \(\omega [q^{(3)}_t]\), \(\omega [q^{(2)}_t]\), and \(\omega [q^{(1)}_t]\), respectively.

Proof

As mentioned in Sect. 2.2, each q-octant \({\mathsf {S}}_{r}^{({t})}\) follows an ordering on the absolute values of the three coordinates captured in its 3-tuple, \(Q_t\). For example, \(Q_1=(+1,+2,+3)\), and so the ordering is \(x\leqslant y \leqslant z\); on dropping z, we get xy-plane as the FP of \({\mathsf {S}}_{r}^{({1})}\). In general, for \(t\in \{1,2,\ldots ,48\}\), the coordinate plane obtained by dropping the coordinate of maximum absolute value in \(Q_t\) is the FP of \({\mathsf {S}}_{r}^{({t})}\). Similar characterizations are valid for PP and DP, whence the proof. \(\quad \square \)

The functional gradation of coordinate planes leads to 3 groups covering all the 48 q-octants of naive sphere. Each group can be further subdivided into two subgroups, containing 8 q-octants each. As per the representation scheme (Sect. 2.2), the numeral set \(N=\{1,2,3\}\) denotes the names of the three coordinates \((\mathtt{x},\mathtt{y},\mathtt{z})\). We use \({\mathcal {G}}_{a}\) to denote the group whose FP is defined by (the coordinates in) \(N{\backslash }\{a\}\), \(\forall a\in N\). We use \({\mathcal {G}}_{a:b}\) to denote the subgroup of \({\mathcal {G}}_{a}\) whose PP is defined by \(N{\backslash }\{b\}\), \(\forall b\in N{\backslash }\{a\}\). For example, \({\mathcal {G}}_{3}\) contains all the q-octants having xy-plane as FP, and its subgroup \({\mathcal {G}}_{3:1}\) contains the q-octants having yz-plane as PP. We have now the following proposition.

Proposition 1

(Grouping). For each \(a\in N\), the group of q-octants with their common FP defined by \(N{\backslash }\{a\}\) is \({\mathcal {G}}_{a}=\big \{{\mathsf {S}}_{r}^{({t})} \big | \omega [q^{(3)}_t] = a \big \}\); and their subgroups in \({\mathcal {G}}_{a}\) with common PP defined by \(N{\backslash }\{b\}\) is \({\mathcal {G}}_{a:b}=\big \{{\mathsf {S}}_{r}^{({t})} \big | (\omega [q^{(3)}_t], \omega [q^{(2)}_t]) = (a,b) \big \}\), where \(b\in N{\backslash }\{a\}\).

Proof

From Lemma 1, we get \({\mathcal {G}}_{a} {\,=\,} \big \{ {\mathsf {S}}_{r}^{({t})} \big | t \bmod 6 {\,\in \,} \{2a{-}1,(2a)\bmod 6\} \big \}\), \(\forall a{\,\in \,}N\). Now, by construction of \({\mathsf {S}}_r\) and referring to Lemma 2, the clause “\(t \bmod 6 \in \{2a-1,(2a)\bmod 6\}\)” in the above equation is equivalent with the clause “\(\omega [q^{(3)}_t] = a\)”. This gives the proof of group formation.

The subgroups of \({\mathcal {G}}_{a}\) are \(\big \{ {\mathsf {S}}_{r}^{({t})} \big | t \bmod 6 = 2a-1 \big \}\) and \(\big \{ {\mathsf {S}}_{r}^{({t})} \big | t \bmod 6 = (2a)\bmod 6 \big \}\), or, equivalently, they are \(\big \{{\mathsf {S}}_{r}^{({t})} \big | (\omega [q^{(3)}_t], \omega [q^{(2)}_t]) = (a,b_1) \big \}\) and \(\big \{{\mathsf {S}}_{r}^{({t})} \big | (\omega [q^{(3)}_t], \omega [q^{(2)}_t]) = (a,b_2) \big \}\), where \(\{b_1,b_2\}=N{\backslash }\{a\}\)\(\quad \square \)

We refer back to Fig. 3 to visualize the distribution of q-octants by functional gradation of coordinate planes, which eventually leads to group and subgroup formation.

5 Circle Drawing—An Application

A limited research has been done on discretization of circles or curves in 3D space. Only in recent time, some progress is noticed, e.g., offset discretization scheme in \({\mathbb {R}}^3\) [1, 2], discrete spherical paths and circles in \({\mathbb {Z}}^3\) [35], etc. In this section, we introduce a special class of 3D circle in \({\mathbb {Z}}^3\), defined as follows.

Definition 3

A (naive) ortho-coordinate circle \({\mathsf {C}}_{r}^{\langle {a,b,c}\rangle }\) is a discretization of the real circle \(C_{r}^{\langle {a,b,c}\rangle }\) having radius r and lying on a real plane, with normal vector \(\langle a,b,c \rangle \), that is orthogonal to one of the coordinate planes.

Note that the circle \({\mathsf {C}}_{r}^{\langle {a,b,c}\rangle }\) consists of voxels from the intersection of \({\mathsf {S}}_r\) and the naive plane with normal \(\langle a,b,c \rangle \), with requisite Steiner voxels for ensuring connectivity. It is easily constructible using q-octant groups (for fixing the mono- and the multi-jumps in the 0-path defining \({\mathsf {C}}_{r}^{\langle {a,b,c}\rangle }\)), a line drawing algorithm [7] (for back projection), and the formulation of naive sphere (Eq. 1, for checking the belongingness of the voxels of \({\mathsf {C}}_{r}^{\langle {a,b,c}\rangle }\) in \({\mathsf {S}}_r\)). Note that one of abc is zero and the real plane is considered to pass through an integer point (w.l.o.g., (0, 0, 0)). We consider only integer values for rabc. The major steps are as follows.

Fig. 8.
figure 8

Construction of an ortho-coordinate circle (\(r=12\) and plane normal \(=\langle 0, -3, 1 \rangle \)). (a) DSS on FP (yz-plane), which the plane (\(-3y+z=0\)) of the circle is orthogonal to. (b) Disconnected circle on \({\mathsf {S}}_r\) by back projection from the DSS in (a). Parts drawn by symmetry are shown white. (c) \({\mathsf {C}}_{12}^{\langle {0,-3,1}\rangle }\) after incorporating requisite Steiner voxels. (d, e, f) Projections of \({\mathsf {C}}_{12}^{\langle {0,-3,1}\rangle }\) on xy-, yz-, and zx-planes (Color figure online).

  1. 1.

    Set \(p=(0,0)\) and compute q from \(\langle a,b,c \rangle \). Shoot a digital ray from p towards q, and produce up to s whose back projection on \({\mathsf {S}}_r\) includes a voxel with its coordinate value as zero which is also zero in \(\langle a,b,c \rangle \) (e.g., \(x=0\) if \(a=0\)).

  2. 2.

    For each pixel u in DSS(ps), execute the following steps.

    1. (a)

      Use back projection from u to get a single voxel or a run of voxels on \({\mathsf {S}}_r\).

    2. (b)

      If this voxel or voxel run is not connected with the last drawn voxel or voxel run, then identify the mono-jumps and the multi-jumps.

    3. (c)

      Compute and insert Steiner voxels for bridging the jumps. (Skip (b, c) if \(u=p\).)

  3. 3.

    Use symmetry to construct the parts in other q-octants.

Figure 8 shows a demonstration. A circle \({\mathsf {C}}_{r}^{\langle {a,b,c}\rangle }\) is unique for a given specification and conforms to 4-symmetry, since only the blue part needs to be generated by the algorithm, and the others just follow the symmetry. Due to the method of selection of Steiner voxels, each voxel of \({\mathsf {C}}_{r}^{\langle {a,b,c}\rangle }\) belongs to the naive plane with normal \(\langle a,b,c \rangle \), and also to the standard sphere with radius r, thus giving an upper bound of isothetic distance \(\frac{1}{2}\) from the real plane \(\langle a,b,c \rangle \) and of 2 from the real sphere with radius r. A detailed study on isothetic distance bounds for plane and sphere can be seen in [4].

6 Concluding Note

The analysis and gradation of coordinate planes in view of their functionality is a novel proposition in this paper. Being 48-symmetric, a naive sphere can be divided into groups and subgroups based on this gradation. This grouping would have various applications, as shown by us for one such, in generating a special class of 3D circles lying on the sphere. In higher dimensions, the scope and challenge would be higher and better, as we foresee. Characterization of para-functional plane seems also interesting for objects like discrete planes and hyperplanes, which is yet to be studied.