Keywords

1 Introduction

In this work we apply conformal geometric algebra (CGA) to the description of points, including a planar orientation. An excellent general reference on Clifford’s geometric algebras is [13], a short engineering oriented tutorial is [10], and [14] describes a free software extension for a standard industrial computer algebra system (MATLAB). Alternatively, all computations could be done in the optimized geometric algebra algorithm software GAALOP [6]. Introductions to CGA are given in [2, 4] and efficient computational implementations are described in [6]. CGA has found wide ranging applications in physics, quantum computing, molecular geometry, engineering, signal and image processing, neural networks, computer graphics and vision, encryption, robotics, electronic and power engineering, etc. Up to date surveys are [1, 8, 12]. An introduction to the notion of oriented point can be found in [5]. A prominent application could be to LIDAR terrain strip adjustment [11].

In the current work, we begin with the CGA expression for oriented points in three Euclidean dimensions and compute their inner products (Sect. 2). We study the geometric information included in this inner product with the help of a wide range of representative examples (Sect. 3), analyze the most important term that includes the direction of the line segment connecting the two points and their two point orientations in detail (Sect. 4), and study the symmetries of the inner product of oriented points (Sect. 5). Finally, we extend our framework from three to n Euclidean dimensions (Sect. 6).

2 Computation of Inner Product of Oriented Points

We consider the inner product of two oriented points in conformal geometric algebra [5], as reference for practical CGA computations in this section we recommend [7]. Note that inner product and wedge product have priority over the geometric product, e.g., \(\textbf{i}_q\cdot \boldsymbol{q} E = (\textbf{i}_q\cdot \boldsymbol{q}) E\), etc. An oriented point is given by the multivector expression of a circle with radius zero (\(r=0\)) in CGA,

$$\begin{aligned} Q = \textbf{i}_q\wedge \boldsymbol{q} + [\frac{1}{2}\boldsymbol{q}^2\textbf{i}_q - \boldsymbol{q}(\boldsymbol{q}\cdot \textbf{i}_q)]\boldsymbol{e}_{\infty } +\textbf{i}_q \boldsymbol{e}_{0} + \textbf{i}_q\cdot \boldsymbol{q} E, \end{aligned}$$
(1)

where the three-dimensional position vector of Q is the vector \(\boldsymbol{q}\in \mathbb {R}^3\), the unit oriented bivector of the plane (orthogonal to the normal vector \(\boldsymbol{n}_q\) of the plane) is \(\textbf{i}_q \in Cl^2(3,0)\), \(\boldsymbol{e}_{0}\) is the vector for the origin dimension, \(\boldsymbol{e}_{\infty }\) is the vector for the infinity dimension, and the origin-infinity bivector is \(E=\boldsymbol{e}_{\infty }\wedge \boldsymbol{e}_{0}\), with

$$\begin{aligned} \boldsymbol{e}_{0}^2=\boldsymbol{e}_{\infty }^2=0, \quad \boldsymbol{e}_{0}\cdot \boldsymbol{e}_{\infty }=-1, \end{aligned}$$
(2)

and \(\boldsymbol{e}_{0}\) and \(\boldsymbol{e}_{\infty }\) are both orthogonal to \(\mathbb {R}^3\). For comparison we also state the expression of a conformal point (without orientation: no) and circleFootnote 1 in CGA:

$$\begin{aligned} Q_{no} & = \boldsymbol{q} + \frac{1}{2}\boldsymbol{q}^2 \boldsymbol{e}_{\infty } + \boldsymbol{e}_{0}, \qquad C = Q+\frac{1}{2}r^2\textbf{i}_q\boldsymbol{e}_{\infty }, \end{aligned}$$
(3)

where \(Q_{no}\) is simply given by the three-dimensional position vector \(\boldsymbol{q}\in \mathbb {R}^3\) plus two terms in \(\boldsymbol{e}_{\infty }\) and \(\boldsymbol{e}_{0}\), while the conformal expression for the circle is the same as the oriented point (1), albeit with finite radius \(r>0\).

The Euclidean bivector \(\textbf{i}_q\) specifying the Euclidean carrier of the circle, respectively the orientation (local plane information) of the oriented point, can be obtained as (right contraction: \(\lfloor \))

$$\begin{aligned} \textbf{i}_q = -(C \wedge \boldsymbol{e}_{\infty }) \lfloor E = -(Q \wedge \boldsymbol{e}_{\infty }) \lfloor E. \end{aligned}$$
(4)

The point \(Q_{no}\), geometrically at the center of the circle C, can be directly obtained fromFootnote 2

$$\begin{aligned} Q_{no} = \widehat{C} \boldsymbol{e}_{\infty } C = \widehat{Q} \boldsymbol{e}_{\infty } Q , \end{aligned}$$
(5)

the three-dimensional position vector \(\boldsymbol{q}\in \mathbb {R}^3\) from

$$\begin{aligned} \boldsymbol{q} = \frac{(Q_{no} \wedge {E}) \lfloor E }{-Q_{no}\cdot \boldsymbol{e}_{\infty }}, \end{aligned}$$
(6)

and the radius of the circle as

$$\begin{aligned} r^2 = \frac{C \widehat{C}}{\textbf{i}_q^2}. \end{aligned}$$
(7)

We take a second oriented point P positioned at the origin \(\boldsymbol{p}=0\) with plane orientation bivector \(\textbf{i}_p\),

$$\begin{aligned} P = \textbf{i}_p \boldsymbol{e}_{0}. \end{aligned}$$
(8)

Now we compute the inner product of P and Q by taking the scalar part of their geometric product

$$\begin{aligned} P \cdot Q &= \langle PQ \rangle = \Big \langle (\textbf{i}_p \boldsymbol{e}_{0})\,\big \{\textbf{i}_q\wedge \boldsymbol{q} + \big [\frac{1}{2}\boldsymbol{q}^2\textbf{i}_q - \boldsymbol{q}(\boldsymbol{q}\cdot \textbf{i}_q)\big ]\,\boldsymbol{e}_{\infty } +\textbf{i}_q \boldsymbol{e}_{0} + \textbf{i}_q\cdot \boldsymbol{q} E\big \}\Big \rangle \nonumber \\ &= \Big \langle \textbf{i}_p \boldsymbol{e}_{0}\, \big [\frac{1}{2}\boldsymbol{q}^2\textbf{i}_q - \boldsymbol{q}(\boldsymbol{q}\cdot \textbf{i}_q)\big ]\,\boldsymbol{e}_{\infty }\Big \rangle = - \Big \{\frac{1}{2}\boldsymbol{q}^2 \big \langle \textbf{i}_p \textbf{i}_q \big \rangle - \big \langle \textbf{i}_p \boldsymbol{q}\,(\boldsymbol{q}\cdot \textbf{i}_q) \big \rangle \Big \} \nonumber \\ &= - \frac{1}{2}\boldsymbol{q}^2 \textbf{i}_p \cdot \textbf{i}_q + \Big \langle \big (\textbf{i}_p \cdot \boldsymbol{q}+\textbf{i}_p \wedge \boldsymbol{q}\big )\,(\boldsymbol{q}\cdot \textbf{i}_q) \Big \rangle \nonumber \\ &= - \frac{1}{2}\boldsymbol{q}^2 \textbf{i}_p \cdot \textbf{i}_q + \Big \langle (\textbf{i}_p \cdot \boldsymbol{q})(\boldsymbol{q}\cdot \textbf{i}_q) \Big \rangle = - \frac{1}{2}\boldsymbol{q}^2 \textbf{i}_p \cdot \textbf{i}_q - \Big \langle (\boldsymbol{q}\cdot \textbf{i}_p)(\boldsymbol{q}\cdot \textbf{i}_q) \Big \rangle . \end{aligned}$$
(9)

Note that in this situation \(\boldsymbol{q}\) becomes the Euclidean distance vector from P to Q.

We now use the fact that the unit oriented bivector \(\textbf{i}_q\) of the plane is dual to the unit normal vector \(\boldsymbol{n}_q\) via multiplication with the three-dimensional Euclidean volume pseudoscalar \(i_3=\boldsymbol{e}_1\boldsymbol{e}_2\boldsymbol{e}_3\),

$$\begin{aligned} \textbf{i}_q = \boldsymbol{n}_q i_3, \qquad \textbf{i}_p = \boldsymbol{n}_p i_3. \end{aligned}$$
(10)

This gives by (70) and (67) in [10], where \(\times \) is the standard cross product of three-dimensional vector algebra,

$$\begin{aligned} \boldsymbol{q}\cdot \textbf{i}_p = \boldsymbol{q}\cdot (\boldsymbol{n}_p i_3) = (\boldsymbol{q}\wedge \boldsymbol{n}_p)i_3 = -\boldsymbol{q} \times \boldsymbol{n}_p, \quad \boldsymbol{q}\cdot \textbf{i}_q = -\boldsymbol{q}\times \boldsymbol{n}_q. \end{aligned}$$
(11)

Therefore

$$\begin{aligned} - \langle (\boldsymbol{q}\cdot \textbf{i}_p)(\boldsymbol{q}\cdot \textbf{i}_q) \rangle = -\langle (\boldsymbol{q}\times \boldsymbol{n}_p) (\boldsymbol{q}\times \boldsymbol{n}_q) \rangle = - (\boldsymbol{q}\times \boldsymbol{n}_p) \cdot (\boldsymbol{q}\times \boldsymbol{n}_q). \end{aligned}$$
(12)

Note: The resulting quadruple product appears in the proof of the spherical law of cosines [15]. The quadruple product can be expanded to

$$\begin{aligned} - (\boldsymbol{q}\times \boldsymbol{n}_p) \cdot (\boldsymbol{q}\times \boldsymbol{n}_q) &= -[ \boldsymbol{q}^2 \boldsymbol{n}_p\cdot \boldsymbol{n}_q - (\boldsymbol{q}\cdot \boldsymbol{n}_q)(\boldsymbol{q}\cdot \boldsymbol{n}_p)] \nonumber \\ &= -\boldsymbol{q}^2 [\boldsymbol{n}_p\cdot \boldsymbol{n}_q - (\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)], \end{aligned}$$
(13)

with unit distance direction vector \(\boldsymbol{\hat{q}}\), such that \(\boldsymbol{q} = |\boldsymbol{q}| \boldsymbol{\hat{q}}\). Note also that from (10)

$$\begin{aligned} \textbf{i}_p \cdot \textbf{i}_q = - \boldsymbol{n}_p \cdot \boldsymbol{n}_q. \end{aligned}$$
(14)

Then we can write the full inner product of two oriented points as

$$\begin{aligned} P\cdot Q &= \frac{1}{2}\boldsymbol{q}^2 \boldsymbol{n}_p \cdot \boldsymbol{n}_q -[ \boldsymbol{q}^2 \boldsymbol{n}_p \cdot \boldsymbol{n}_q - (\boldsymbol{q}\cdot \boldsymbol{n}_q)(\boldsymbol{q}\cdot \boldsymbol{n}_p)] \nonumber \\ &= - \frac{1}{2}\boldsymbol{q}^2 \boldsymbol{n}_p \cdot \boldsymbol{n}_q + (\boldsymbol{q}\cdot \boldsymbol{n}_q)(\boldsymbol{q}\cdot \boldsymbol{n}_p) \nonumber \\ &= \boldsymbol{q}^2 [ - \frac{1}{2} \boldsymbol{n}_p \cdot \boldsymbol{n}_q + (\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)] \nonumber \\ &= \boldsymbol{q}^2 [- \frac{1}{2} \cos \alpha _{pq} + \cos \varTheta _q \cos \varTheta _p] , \end{aligned}$$
(15)

if we define \(\cos \alpha _{pq} = \boldsymbol{n}_p \cdot \boldsymbol{n}_q\), \(\cos \varTheta _q = \boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q\), and \(\cos \varTheta _p = \boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p\), where \(\alpha _{pq}\) is the dihedral angle between the two planes, and \(\varTheta _q\) is the angle between the distance vector \(\boldsymbol{q}\) and \(\boldsymbol{n}_q\), while \(\varTheta _p\) is the angle between \(\boldsymbol{q}\) and \(\boldsymbol{n}_p\), respectively. See Fig. 1 for illustration, with P at the origin, and \(\boldsymbol{q}\) replaced by \(\boldsymbol{d}\).

Remark 1

Note that the above relation is fully general, even if P is a point in general position. Because our special situation, with P at the origin, is only different from the general situation by a global translation, which will not change the inner product \(P\cdot Q = \langle PQ\rangle \). In the general case, the vector \(\boldsymbol{q}\) will simply be replaced by the Euclidean distance vector between the two positions \(\boldsymbol{d} = \boldsymbol{q}-\boldsymbol{p}\), see Fig. 1.

Fig. 1.
figure 1

Illustration of inner product of two oriented points P and Q, with Euclidean distance vector \(\boldsymbol{d} = \boldsymbol{q}-\boldsymbol{p}\), \(\alpha _{pq}\) dihedral angle between the two orientation planes \(\textbf{i}_p\) and \(\textbf{i}_q\), \(\varTheta _q\) angle between \(\boldsymbol{d}\) and \(\boldsymbol{n}_q\), and \(\varTheta _p\) angle between \(\boldsymbol{d}\) and \(\boldsymbol{n}_p\), respectively.

For the special case that the two planes are parallelFootnote 3, i.e. \(\boldsymbol{n}_p = \boldsymbol{n}_q\), \(\boldsymbol{n}_p \cdot \boldsymbol{n}_q=1\), we have with the consequence \(\varTheta = \varTheta _q = \varTheta _p\) that

$$\begin{aligned} P\cdot Q = \boldsymbol{q}^2 (- \frac{1}{2} + \cos ^2 \varTheta ) = - \frac{1}{2} \boldsymbol{q}^2 (1-2\cos ^2 \varTheta ) = \frac{1}{2} \boldsymbol{q}^2 \cos 2\varTheta , \end{aligned}$$
(16)

using the trigonometric identity \(1-2\cos ^2 \varTheta = - \cos 2\varTheta \).

For the special case that additionally \(\varTheta = 0\), i.e. both planes are parallel and the distance \(\boldsymbol{q}\) perpendicular to the planes we have

$$\begin{aligned} P\cdot Q = \frac{1}{2} \boldsymbol{q}^2. \end{aligned}$$
(17)

3 Examples

To gain some intuition of what the inner product of two oriented points in CGA (15) means, we compute several examples, always assuming for simplicity that the first point P is positioned at the origin: \(\boldsymbol{p}=0\).

Example 1

First we look at two parallel planes at orthogonal distance three.

$$\begin{aligned} \textbf{i}_p=\textbf{i}_q=\boldsymbol{e}_{12}, \quad \boldsymbol{n}_p=\boldsymbol{n}_q = \boldsymbol{e}_3, \quad \boldsymbol{q}=3\boldsymbol{e}_3, \quad \boldsymbol{q}^2 = 9, \quad \boldsymbol{\hat{q}}=\boldsymbol{e}_3. \end{aligned}$$
(18)

Then we can compute directly

$$\begin{aligned} P\cdot Q = \Big \langle \boldsymbol{e}_{12}\,\boldsymbol{e}_0 \, \big [\frac{1}{2}\,9\,\boldsymbol{e}_{12} - 3\,\boldsymbol{e}_3\,(3\,\boldsymbol{e}_3\cdot \boldsymbol{e}_{12}) \big ]\, \boldsymbol{e}_{\infty } \Big \rangle = - \frac{1}{2}\,9\, \boldsymbol{e}_{12}\,\boldsymbol{e}_{12} = \frac{9}{2}, \end{aligned}$$
(19)

because \(\boldsymbol{e}_0 [\frac{1}{2}9\boldsymbol{e}_{12} - 3\boldsymbol{e}_3(3\boldsymbol{e}_3\cdot \boldsymbol{e}_{12}) ]=[\frac{1}{2}9\boldsymbol{e}_{12} - 3\boldsymbol{e}_3(3\boldsymbol{e}_3\cdot \boldsymbol{e}_{12}) ]\boldsymbol{e}_0 \), \(\boldsymbol{e}_0 \cdot \boldsymbol{e}_{\infty }=-1\), \(\boldsymbol{e}_3\cdot \boldsymbol{e}_{12}=0\), and \(\boldsymbol{e}_{12}^2=-1\). The result also confirms (17).

We obtain the same result, if we apply (15) instead. Toward this we compute

$$\begin{aligned} \cos \alpha _{pq}=\boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1, \quad \cos \varTheta _q = \boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1, \quad \cos \varTheta _p = \boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1. \end{aligned}$$
(20)

Hence, as expected

$$\begin{aligned} P\cdot Q {\mathop {=}\limits ^{(15) }} 9(- \frac{1}{2}+1) = \frac{9}{2}. \end{aligned}$$
(21)

Example 2

Next we look at two parallel planes, and the points are separated by a vector in the plane, i.e. the P glides along its own plan by \(\boldsymbol{q}\) to become Q. Assuming

$$\begin{aligned} \textbf{i}_p&=\textbf{i}_q=\boldsymbol{e}_{12}, \quad \boldsymbol{n}_p=\boldsymbol{n}_q = \boldsymbol{e}_3, \nonumber \\ \boldsymbol{q}&=\boldsymbol{e}_1 + \boldsymbol{e}_2, \quad \boldsymbol{q}^2 = 2, \quad \boldsymbol{\hat{q}}=\frac{1}{\sqrt{2}}(\boldsymbol{e}_1 + \boldsymbol{e}_2), \end{aligned}$$
(22)

we obtain

$$\begin{aligned} \cos \alpha _{pq}&=\boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1, \quad \cos \varTheta _q = \frac{1}{\sqrt{2}}(\boldsymbol{e}_1 + \boldsymbol{e}_2)\cdot \boldsymbol{e}_3 = 0, \nonumber \\ \cos \varTheta _p &= \frac{1}{\sqrt{2}}(\boldsymbol{e}_1 + \boldsymbol{e}_2)\cdot \boldsymbol{e}_3 = 0. \end{aligned}$$
(23)

Applying (15) the inner product becomes

$$\begin{aligned} P\cdot Q = 2 (- \frac{1}{2}+0)=-1. \end{aligned}$$
(24)

In this case only the first term in (15) proportional to \(\boldsymbol{n}_p \cdot \boldsymbol{n}_p\) contributes.

Example 3

We now look again at two parallel planes, but the Euclidean distance vector \(\boldsymbol{q}\) is at angle \(\pi /4\) with the planes. We assume

$$\begin{aligned} \textbf{i}_p&=\textbf{i}_q=\boldsymbol{e}_{12}, \quad \boldsymbol{n}_p=\boldsymbol{n}_q = \boldsymbol{e}_3, \nonumber \\ \boldsymbol{q}&=\boldsymbol{e}_1 + \boldsymbol{e}_3, \quad \boldsymbol{q}^2 = 2, \quad \boldsymbol{\hat{q}}=\frac{1}{\sqrt{2}}(\boldsymbol{e}_1 + \boldsymbol{e}_3), \end{aligned}$$
(25)

and obtain

$$\begin{aligned} \cos \alpha _{pq}&=\boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1, \quad \cos \varTheta _q = \frac{1}{\sqrt{2}}(\boldsymbol{e}_1 + \boldsymbol{e}_3)\cdot \boldsymbol{e}_3 = \frac{1}{\sqrt{2}}, \nonumber \\ \cos \varTheta _p &= \frac{1}{\sqrt{2}}(\boldsymbol{e}_1 + \boldsymbol{e}_3)\cdot \boldsymbol{e}_3 = \frac{1}{\sqrt{2}}. \end{aligned}$$
(26)

Applying (15) the inner product becomes

$$\begin{aligned} P\cdot Q = 2 (- \frac{1}{2}1+\frac{1}{\sqrt{2}}\frac{1}{\sqrt{2}})=0. \end{aligned}$$
(27)

This is a special case, where both terms in (15) are non-zero, but happen to cancel each other.

Example 4

Now we take two planes vertical to each other, and the distance vector is perpendicular to the first and parallel to the second. We assume

$$\begin{aligned} \textbf{i}_p&=\boldsymbol{e}_{12}, \quad \textbf{i}_q=\boldsymbol{e}_{23}, \quad \boldsymbol{n}_p=\boldsymbol{e}_3, \quad \boldsymbol{n}_q = \boldsymbol{e}_1, \nonumber \\ \boldsymbol{q}&=3\boldsymbol{e}_3, \quad \boldsymbol{q}^2 = 9, \quad \boldsymbol{\hat{q}}=\boldsymbol{e}_3, \end{aligned}$$
(28)

and obtain

$$\begin{aligned} \cos \alpha _{pq}=\boldsymbol{e}_3\cdot \boldsymbol{e}_1 = 0, \quad \cos \varTheta _q = \boldsymbol{e}_3\cdot \boldsymbol{e}_1 = 0, \quad \cos \varTheta _p = \boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1. \end{aligned}$$
(29)

Applying (15) the inner product becomes

$$\begin{aligned} P\cdot Q = 9(- \frac{1}{2} 0 + 0)=0. \end{aligned}$$
(30)

Obviously, if the two planes are vertical to each other, and the Euclidean distance vector is parallel to one of the planes, the result is always zero.

Example 5

This example is simply a variation of the previous one, with a different orientation of \(\textbf{i}_q\). We assume

$$\begin{aligned} \textbf{i}_p&=\boldsymbol{e}_{12}, \quad \textbf{i}_q=\frac{1}{\sqrt{2}}(\boldsymbol{e}_{13}+\boldsymbol{e}_{23}), \quad \boldsymbol{n}_p = \boldsymbol{e}_3, \quad \boldsymbol{n}_q = \frac{1}{\sqrt{2}}(-\boldsymbol{e}_{2}+\boldsymbol{e}_{1}), \nonumber \\ \boldsymbol{q}&=3\boldsymbol{e}_3, \quad \boldsymbol{q}^2 = 9, \quad \boldsymbol{\hat{q}}=\boldsymbol{e}_3. \end{aligned}$$
(31)

and obtain

$$\begin{aligned} \cos \alpha _{pq} &= \boldsymbol{e}_3 \cdot \frac{1}{\sqrt{2}}(-\boldsymbol{e}_{2}+\boldsymbol{e}_{1}) = 0, \quad \cos \varTheta _q = \boldsymbol{e}_3\cdot \frac{1}{\sqrt{2}}(-\boldsymbol{e}_{2}+\boldsymbol{e}_{1}) = 0, \nonumber \\ \cos \varTheta _p &= \boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1. \end{aligned}$$
(32)

Applying (15) the inner product becomes zero again

$$\begin{aligned} P\cdot Q = 9(- \frac{1}{2} 0 + 0)=0. \end{aligned}$$
(33)

Example 6

In this example the second plane is tilted with respect to the first by a dihedral angle of \(\pi /4\). The distance vector is perpendicular to the first plane and at angle \(\pi /4\) with the second:

$$\begin{aligned} \textbf{i}_p&=\boldsymbol{e}_{12}, \quad \textbf{i}_q=\frac{1}{\sqrt{2}}(\boldsymbol{e}_{12}+\boldsymbol{e}_{23}), \quad \boldsymbol{n}_p = \boldsymbol{e}_3, \quad \boldsymbol{n}_q = \frac{1}{\sqrt{2}}(\boldsymbol{e}_{3}+\boldsymbol{e}_{1}), \nonumber \\ \boldsymbol{q}&=3\boldsymbol{e}_3, \quad \boldsymbol{q}^2 = 9, \quad \boldsymbol{\hat{q}}=\boldsymbol{e}_3. \end{aligned}$$
(34)

We obtain

$$\begin{aligned} \cos \alpha _{pq} &= \boldsymbol{e}_3 \cdot \frac{1}{\sqrt{2}}(\boldsymbol{e}_{3}+\boldsymbol{e}_{1})= \frac{1}{\sqrt{2}}, \quad \cos \varTheta _q = \boldsymbol{e}_3\cdot \frac{1}{\sqrt{2}}(\boldsymbol{e}_{3}+\boldsymbol{e}_{1}) = \frac{1}{\sqrt{2}}, \nonumber \\ \cos \varTheta _p &= \boldsymbol{e}_3\cdot \boldsymbol{e}_3 = 1. \end{aligned}$$
(35)

Applying (15) the inner product becomes

$$\begin{aligned} P\cdot Q = 9(- \frac{1}{2} \frac{1}{\sqrt{2}} + \frac{1}{\sqrt{2}}) = \frac{9}{2\sqrt{2}}. \end{aligned}$$
(36)

Here both terms in (15) contribute and the second term \(\cos \varTheta _q \cos \varTheta _p\) dominates.

Example 7

Here we take the two planes to be parallel, and a more general Euclidean distance vector:

$$\begin{aligned} \textbf{i}_p&=\boldsymbol{e}_{12}, \quad \textbf{i}_q =\boldsymbol{e}_{12}, \quad \boldsymbol{n}_p = \boldsymbol{e}_3, \quad \boldsymbol{n}_q = \boldsymbol{e}_3, \nonumber \\ \boldsymbol{q}&=2\boldsymbol{e}_2+3\boldsymbol{e}_3, \quad \boldsymbol{q}^2 = 13, \quad \boldsymbol{\hat{q}}=\frac{1}{\sqrt{13}}(2\boldsymbol{e}_2+3\boldsymbol{e}_3). \end{aligned}$$
(37)

We obtain

$$\begin{aligned} \cos \alpha _{pq} &= \boldsymbol{e}_3 \cdot \boldsymbol{e}_3= 1, \quad \cos \varTheta _q = \boldsymbol{e}_3\cdot \frac{1}{\sqrt{13}}(2\boldsymbol{e}_2+3\boldsymbol{e}_3) = \frac{3}{\sqrt{13}}, \nonumber \\ \cos \varTheta _p &= \boldsymbol{e}_3\cdot \frac{1}{\sqrt{13}}(2\boldsymbol{e}_2+3\boldsymbol{e}_3) = \frac{3}{\sqrt{13}}. \end{aligned}$$
(38)

Applying (15) the inner product becomes

$$\begin{aligned} P\cdot Q = 13(- \frac{1}{2} + \frac{9}{13})= \frac{5}{2}. \end{aligned}$$
(39)

4 About the Term \((\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)\) in \(P\cdot Q\)

  • For \(\boldsymbol{n}_q \nparallel \boldsymbol{n}_q\) the two plane normal vectors together define a plane that can be specified by the bivector \(\boldsymbol{n}_q \wedge \boldsymbol{n}_q\). This allows to split the Euclidean distance vector \(\boldsymbol{q}\) into parts parallel \(\boldsymbol{q}_{\parallel }\) and perpendicular \(\boldsymbol{q}_{\perp }\) to the \(\boldsymbol{n}_q \wedge \boldsymbol{n}_q\)-plane. In the inner products of \((\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)\) of (15), the perpendicular \(\boldsymbol{q}_{\perp }\) part will not contribute, because it is perpendicular to both \(\boldsymbol{n}_q\) and \(\boldsymbol{n}_q\). So we get

    $$\begin{aligned} (\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p) = (\boldsymbol{\hat{q}}_{\parallel }\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}_{\parallel }\cdot \boldsymbol{n}_p). \end{aligned}$$
    (40)
  • For \(\boldsymbol{n}_q =\boldsymbol{n}_p\), the part \(\boldsymbol{q}_{\perp }\) perpendicular to \(\boldsymbol{n}_q\) drops out, and only the part \(\boldsymbol{\hat{q}}_{\parallel }\) parallel to \(\boldsymbol{n}_q\) contributes.

    $$\begin{aligned} (\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p) = (\boldsymbol{\hat{q}}_{\parallel }\cdot \boldsymbol{n}_p)^2. \end{aligned}$$
    (41)
  • If \(\boldsymbol{\hat{q}} \perp \boldsymbol{n}_q\) or \(\boldsymbol{\hat{q}} \perp \boldsymbol{n}_p\), then

    $$\begin{aligned} (\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p) = 0. \end{aligned}$$
    (42)
  • For \(\boldsymbol{\hat{q}} = \boldsymbol{n}_q = \boldsymbol{n}_p\) or \(\boldsymbol{\hat{q}} = -\boldsymbol{n}_q = -\boldsymbol{n}_p\) we the get a maximal contribution of \((\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)\) to the inner product. Then

    $$\begin{aligned} P\cdot Q = \frac{1}{2}\boldsymbol{q}^2 . \end{aligned}$$
    (43)
  • For \(\boldsymbol{\hat{q}} = \boldsymbol{n}_q = -\boldsymbol{n}_p\) or \(\boldsymbol{\hat{q}} = -\boldsymbol{n}_q = \boldsymbol{n}_p\) we the get a minimal contribution of \((\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)\) to the inner product. Then

    $$\begin{aligned} P\cdot Q = -\frac{1}{2}\boldsymbol{q}^2 . \end{aligned}$$
    (44)

5 Symmetries of \(P\cdot Q\)

The inner product of two oriented points in CGA of (15) is a function of the three unit vectors \(\boldsymbol{\hat{q}}\), \(\boldsymbol{n}_q\), and \(\boldsymbol{n}_p\), i.e. the unit direction of the Euclidean distance, and the two unit normal vectors of the two planes.

$$\begin{aligned} P\cdot Q = \boldsymbol{q}^2 [ - \frac{1}{2} \boldsymbol{n}_p \cdot \boldsymbol{n}_q + (\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_q)(\boldsymbol{\hat{q}}\cdot \boldsymbol{n}_p)] = f(\boldsymbol{n}_p, \boldsymbol{n}_q, \boldsymbol{\hat{q}}). \end{aligned}$$
(45)

The function \(f(\boldsymbol{n}_p, \boldsymbol{n}_q, \boldsymbol{\hat{q}})\) has the following symmetries

$$\begin{aligned} f(-\boldsymbol{n}_p, \boldsymbol{n}_q, \boldsymbol{\hat{q}})&=f(\boldsymbol{n}_p, -\boldsymbol{n}_q, \boldsymbol{\hat{q}}) = - f(\boldsymbol{n}_p, \boldsymbol{n}_q, \boldsymbol{\hat{q}}), \nonumber \\ f(\boldsymbol{n}_p, \boldsymbol{n}_q, -\boldsymbol{\hat{q}}) &= f(\boldsymbol{n}_p, \boldsymbol{n}_q, \boldsymbol{\hat{q}}). \end{aligned}$$
(46)

That is changing the sign of any one of the two plane normal vectors changes the sign of \(P\cdot Q\), while changing the sign of the Euclidean distance vector leaves \(P\cdot Q\) invariant.

6 Inner Product of Oriented Points for n-Dimensional Euclidean Space

In this section we aim to show that the inner product relationship (15) of oriented points in CGA, applies in any dimension \(n\ge 2\), up to an overall sign.

We are now working with CGA \(Cl(n+1,1)\) of n-dimensional Euclidean space \(\mathbb {R}^n\). Its pseudoscalar is

$$\begin{aligned} I = I_{n+1,1}=I_nE, \quad I_n = e_1e_2 \cdots e_n, \quad E = e_{\infty }\wedge e_0, \end{aligned}$$
(47)

with squares

$$\begin{aligned} E^2=1,\quad I^2 = (I_n E)^2 = I_n^2 E^2 = I_n^2 = \left\{ \begin{array}{ll} +1, &{} n \,\,\textrm{ mod }\,\, 4 = 1,0 \\ -1, &{} n \,\,\textrm{ mod }\,\, 4 = 2,3 . \end{array} \right. \end{aligned}$$
(48)

Depending on the dimension n we therefore have the inverse of the pseudoscalar to be

$$\begin{aligned} I^{-1} = \left\{ \begin{array}{ll} +I, &{} n \,\,\textrm{ mod }\,\, 4 = 1,0 \\ -I, &{} n \,\,\textrm{ mod }\,\, 4 = 2,3. \end{array} \right. \end{aligned}$$
(49)

The dual of a multivector \(M\in Cl(n+1,1)\) is given by

$$\begin{aligned} M^* = M I^{-1}, \quad M = M^* I. \end{aligned}$$
(50)

Especially for two bivectors \(M_b\) and \(N_b\) we have the inner product relationship with the duals of the bivectors to be

$$\begin{aligned} \langle M_b^* N_b^*\rangle &= \langle M_b(\pm I) N_b (\pm I)\rangle = \langle M_b N_b I^2\rangle \nonumber \\ &= \langle M_b N_b\rangle \left\{ \begin{array}{ll} +1, &{} n \,\,\textrm{ mod }\,\, 4 = 1,0 \\ -1, &{} n \,\,\textrm{ mod }\,\, 4 = 2,3 \end{array} \right\} , \end{aligned}$$
(51)

where we used the commutation of \(I N_b = N_b I\) for bivectors \(N_b\). For example in the case of \(n=3\) we have

$$\begin{aligned} \langle M_b^* N_b^* \rangle = - \langle M_b N_b\rangle . \end{aligned}$$
(52)

We now construct an oriented point in \(Cl(n+1,n)\) by taking a dual sphere vector centered at the Euclidean position of the point \(\boldsymbol{p}\in \mathbb {R}^n\) intersected with a dual equator planeFootnote 4 orthogonal to normal unit vector \(\boldsymbol{n}_p \in \mathbb {R}^n\), \(\boldsymbol{n}_p^2=1\), and take the limit of the sphere radius \(r \rightarrow 0\). The dual sphere is

$$\begin{aligned} \sigma = S^* = C_p-\frac{1}{2}r^2e_{\infty }, \end{aligned}$$
(53)

with conformal center point

$$\begin{aligned} C_p = \boldsymbol{p} + \frac{1}{2} \boldsymbol{p}^2 e_{\infty } + e_0. \end{aligned}$$
(54)

The dual equator plane that has to include the center \(C_p\) and be normal to \(\boldsymbol{n}_p\) is

$$\begin{aligned} \mu = Plane^* = \boldsymbol{n}_p + d e_{\infty } = \boldsymbol{n}_p + (\boldsymbol{p}\cdot \boldsymbol{n}_p)e_{\infty }, \end{aligned}$$
(55)

using oriented distance \(d \in \mathbb {R}\) from the origin

$$\begin{aligned} d=C_p\cdot \boldsymbol{n}_p = (\boldsymbol{p} + \frac{1}{2} \boldsymbol{p}^2 e_{\infty } + e_0)\cdot \boldsymbol{n}_p = \boldsymbol{p}\cdot \boldsymbol{n}_p. \end{aligned}$$
(56)

The dual of the equator circleFootnote 5 is given by the outer product of dual equator plane and dual sphere

$$\begin{aligned} Circle^* = \mu \wedge \sigma = [\boldsymbol{n}_p + (\boldsymbol{p}\cdot \boldsymbol{n}_p)e_{\infty }]\wedge (C_p-\frac{1}{2}r^2e_{\infty }). \end{aligned}$$
(57)

Taking the limit of sphere radius \(r \rightarrow 0\), and inserting the expression for \(C_p\), we get the dual of an oriented point in CGA \(Cl(n+1,1)\) located at \(\boldsymbol{p}\in \mathbb {R}^n\) and oriented normal to \(\boldsymbol{n}_p\)

$$\begin{aligned} P^* &= (\boldsymbol{n}_p + \boldsymbol{p}\cdot \boldsymbol{n}_p \, e_{\infty })\wedge (\boldsymbol{p} + \frac{1}{2} \boldsymbol{p}^2 e_{\infty } + e_0) \nonumber \\ &= \boldsymbol{n}_p\wedge \boldsymbol{p} + \frac{1}{2} \boldsymbol{p}^2\boldsymbol{n}_pe_{\infty } +(\boldsymbol{p}\cdot \boldsymbol{n}_p) e_{\infty }\boldsymbol{p} + \boldsymbol{n}_p e_0 + (\boldsymbol{p}\cdot \boldsymbol{n}_p)(e_{\infty }\wedge e_0) \nonumber \\ &= \boldsymbol{n}_p\wedge \boldsymbol{p} + [\frac{1}{2} \boldsymbol{p}^2\boldsymbol{n}_p -\boldsymbol{p}(\boldsymbol{p}\cdot \boldsymbol{n}_p)]e_{\infty } + \boldsymbol{n}_p e_0 + (\boldsymbol{p}\cdot \boldsymbol{n}_p)E, \end{aligned}$$
(58)

where we used the anti-commutation \(e_{\infty }\boldsymbol{p} = -\boldsymbol{p} e_{\infty }\). A second dual oriented point located at \(\boldsymbol{q}\in \mathbb {R}^n\) and oriented normal to \(\boldsymbol{n}_q\) is then given by

$$\begin{aligned} Q^* = \boldsymbol{n}_q\wedge \boldsymbol{q} + [\frac{1}{2} \boldsymbol{q}^2\boldsymbol{n}_q -\boldsymbol{q}(\boldsymbol{q}\cdot \boldsymbol{n}_q)]e_{\infty } + \boldsymbol{n}_q e_0 + (\boldsymbol{q}\cdot \boldsymbol{n}_q)E. \end{aligned}$$
(59)

Locating the first dual oriented point at the origin, i.e. \(\boldsymbol{p}=0\), it becomes

$$\begin{aligned} P^* = \boldsymbol{n}_p e_0. \end{aligned}$$
(60)

The inner product with the second dual oriented point in general position \(\boldsymbol{q}\), \(\boldsymbol{q}\) therefore marking the oriented distance vector of the two points, becomes

$$\begin{aligned} \langle P^* Q^* \rangle &= \langle \boldsymbol{n}_p e_0 \{\boldsymbol{n}_q\wedge \boldsymbol{q} + [\frac{1}{2} \boldsymbol{q}^2 -\boldsymbol{q}(\boldsymbol{q}\cdot \boldsymbol{n}_q)]e_{\infty } + \boldsymbol{n}_q e_0 + (\boldsymbol{q}\cdot \boldsymbol{n}_q)E\} \rangle \nonumber \\ &= \langle \boldsymbol{n}_p e_0[\frac{1}{2} \boldsymbol{q}^2\boldsymbol{n}_q -\boldsymbol{q}(\boldsymbol{q}\cdot \boldsymbol{n}_q)]e_{\infty } \rangle = \langle \boldsymbol{n}_p [\frac{1}{2} \boldsymbol{q}^2\boldsymbol{n}_q -\boldsymbol{q}(\boldsymbol{q}\cdot \boldsymbol{n}_q)] \rangle \nonumber \\ &= \frac{1}{2} \boldsymbol{q}^2 (\boldsymbol{n}_p\cdot \boldsymbol{n}_q) - (\boldsymbol{q}\cdot \boldsymbol{n}_p)(\boldsymbol{q}\cdot \boldsymbol{n}_q), \end{aligned}$$
(61)

using \(e_0\boldsymbol{v} = -\boldsymbol{v}e_0\) for any vector \(\boldsymbol{v}\in \mathbb {R}^n\), especially for \(\boldsymbol{v} = [\frac{1}{2} \boldsymbol{q}^2\boldsymbol{n}_q -\boldsymbol{q}(\boldsymbol{q}\cdot \boldsymbol{n}_q)]\), and \(-\langle e_0 e_{\infty }\rangle = 1\). Because \(P^*\) and \(Q^*\) are bivectors, the inner product of P and Q becomes by (51)

$$\begin{aligned} \langle P Q \rangle &= \langle P^* Q^* \rangle \left\{ \begin{array}{ll} +1, &{} n \,\,\textrm{ mod }\,\, 4 = 1,0 \\ -1, &{} n \,\,\textrm{ mod }\,\, 4 = 2,3 \end{array} \right\} \nonumber \\ &= \left\{ \begin{array}{ll} +1, &{} n \,\,\textrm{ mod }\,\, 4 = 1,0 \\ -1, &{} n \,\,\textrm{ mod }\,\, 4 = 2,3 \end{array} \right\} [\frac{1}{2} \boldsymbol{q}^2 (\boldsymbol{n}_p\cdot \boldsymbol{n}_q) - (\boldsymbol{q}\cdot \boldsymbol{n}_p)(\boldsymbol{q}\cdot \boldsymbol{n}_q)], \end{aligned}$$
(62)

and obviously agrees by (52) in three dimensions (\(n=3\)) with (15).

The analysis of the preceding Sects. 2, 4 and 5 therefore fully applies in general dimensions \(n\ge 2\), up to an overall signFootnote 6 due to the value of \(I^2\), which is easy to take into account. And examples analogous to Sect. 3 are obviously easy to construct.

7 Conclusion

In this work we have reviewed the formulation of oriented points in conformal geometric algebra (CGA), and computed the inner product of two oriented points in terms of their distance vector (its direction and length) and their two point orientations. The geometric meaning of this inner product is elucidated based on a set of representative examples, analysis of the key term in the inner product, and symmetry analysis. Finally, the approach is extended from three to n Euclidean dimensions. Our new results may find application in LIDAR terrain strip adjustment computations, where points on overlapping strips need to be compared together with the local plane orientation of the respective strip, see e.g. [11].