Analysis of Dynamic Voronoi Diagrams in the Hilbert Metric

Madeline Bumpus Howard Universty, Washington DC, USA, gmadeline. [email protected]    Xufeng Caesar Dai Haverford College, Haverford, Pennsylvania, USA, [email protected]    Auguste H. Gezalyan Department of Computer Science, University of Maryland, College Park, USA [email protected]    Sam Muñoz Colby College, Waterville, Maine, USA, [email protected]    Renita Santhoshkumar Montgomery Blair High School, Silver Spring, Maryland, USA, [email protected]    Songyu Ye Cornell Unversty, Ithaca, NY, USA, [email protected]    David M. Mount Department of Computer Science, University of Maryland, College Park, USA, [email protected]
Abstract

The objective of this paper is to study the properties of Hilbert bisectors and analyze Hilbert Voronoi diagrams in the dynamic setting. Additionally, we introduce dynamic visualization software for Voronoi diagrams in the Hilbert metric on user-specified convex polygons.

1 Introduction

In 1895, David Hilbert introduced the Hilbert metric [11], a projective metric used to measures distances within a convex body. It generalizes the Cayley-Klein model of hyperbolic geometry (on Euclidean balls) to any convex body. Hilbert geometry provides new insights into classical questions from convexity theory and the study of metric and differential geometries (such as Finsler geometries).

In particular, Hilbert Geometry is of interest in the field of convex approximation. To approximate convex bodies, many techniques [4, 1, 3, 8, 20, 9, 14, 2] make use of covering convex bodies with regions that behave like metric balls in the Hilbert metric. These regions go by various names, such as: Macbeath regions, Macbeath ellipsoids, Dikin ellipsoids, and (2,ε)2𝜀(2,\varepsilon)( 2 , italic_ε )-covers. In this way, a deeper understanding of the Hilbert metric can lead us to a deeper understanding of convex approximation.

The Hilbert metric is applicable to many other fields of study such as quantum information theory [19], real analysis [13], optimization [6], and network analysis [7]. For example, the Hilbert metric is crucial in nonlinear Frobenius-Perron theory [12, 7]. In addition, the Hilbert metric has often been used in the context of optimal mass transport and Schrödinger bridges [5, 6, 7, 18].

There has been little work on the design and analysis of algorithms in the Hilbert geometry on convex polygons and polytopes, and most of it has been done in the last two decades. In this paper, we build off of Nielson and Shao [15] as well as Gezalyan and Mount [10] to implement an algorithm for creating Voronoi diagrams in the Hilbert metric, characterize their bisectors as conics with an explicit formula, and analyze them in the dynamic setting.

2 Preliminaries

2.1 Previous Work

In 2017, Nielsen and Shao [15] presented a characterization of the shape of balls in the Hilbert metric and explored their properties. They showed that the shape of a ball depends on the location its center as well as the vertices of the Hilbert domain. Nielsen and Shao gave an explicit description of Hilbert balls and studied the intersection of two Hilbert balls. In 2021, Gezalyan and Mount [10] expanded on this by studying the geometric and combinatorial properties of Voronoi diagrams in the Hilbert metric. They presented two algorithms, a randomized incremental and a divide and conquer algorithm, for constructing these diagrams. We extend these works to analyze other properties of Voronoi diagrams in the Hilbert geometry, and we develop a software package implementing an incremental algorithm based on the randomized incremental algorithm.

2.2 Defining the Hilbert Metric

A convex body ΩdΩsuperscript𝑑\Omega\subset\mathbb{R}^{d}roman_Ω ⊂ blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT is a closed, compact, full-dimensional convex set. Given two fixed points s,td𝑠𝑡superscript𝑑s,t\in\mathbb{R}^{d}italic_s , italic_t ∈ blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT, let stnorm𝑠𝑡\|s-t\|∥ italic_s - italic_t ∥ denote the Euclidean distance and H(s,t)𝐻𝑠𝑡H(s,t)italic_H ( italic_s , italic_t ) denote the Hilbert distance between them. Let χ(s,t)𝜒𝑠𝑡\chi(s,t)italic_χ ( italic_s , italic_t ) denote the chord defined as the intersection of the line passing through s𝑠sitalic_s and t𝑡titalic_t with ΩΩ\Omegaroman_Ω.

Definition 1 (Cross Ratio)

Given four distinct collinear points a,b,c,d𝑎𝑏𝑐𝑑a,b,c,ditalic_a , italic_b , italic_c , italic_d in dsuperscript𝑑\mathbb{R}^{d}blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT, their cross ratio is defined to be:

(a,b;c,d)=acbdbcad.𝑎𝑏𝑐𝑑norm𝑎𝑐norm𝑏𝑑norm𝑏𝑐norm𝑎𝑑\displaystyle(a,b;c,d)~{}=~{}\frac{\|a-c\|\|b-d\|}{\|b-c\|\|a-d\|}.( italic_a , italic_b ; italic_c , italic_d ) = divide start_ARG ∥ italic_a - italic_c ∥ ∥ italic_b - italic_d ∥ end_ARG start_ARG ∥ italic_b - italic_c ∥ ∥ italic_a - italic_d ∥ end_ARG .

Where the orientation of the line determines the sign of each distance.

Note that the cross ratio is invariant under projective transformations [16].

Definition 2 (Hilbert metric)

Given a convex body ΩΩ\Omegaroman_Ω in dsuperscript𝑑\mathbb{R}^{d}blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT and two distinct points s,tint(Ω)𝑠𝑡intΩs,t\in\operatorname{int}(\Omega)italic_s , italic_t ∈ roman_int ( roman_Ω ), let x𝑥xitalic_x and y𝑦yitalic_y denote endpoints of the chord χ(s,t)𝜒𝑠𝑡\chi(s,t)italic_χ ( italic_s , italic_t ), so that the points are in the order x,s,t,y𝑥𝑠𝑡𝑦\langle x,s,t,y\rangle⟨ italic_x , italic_s , italic_t , italic_y ⟩. The Hilbert distance between s𝑠sitalic_s and t𝑡titalic_t is defined as:

HΩ(s,t)={12ln(s,t;y,x) if st0 if s=t.subscript𝐻Ω𝑠𝑡cases12𝑠𝑡𝑦𝑥 if st0 if s=t\displaystyle H_{\Omega}(s,t)~{}=~{}\begin{cases}\frac{1}{2}\ln(s,t;y,x)&\text% {\quad if $s\neq t$}\\ 0&\text{\quad if $s=t$}.\end{cases}italic_H start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_s , italic_t ) = { start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ln ( italic_s , italic_t ; italic_y , italic_x ) end_CELL start_CELL if italic_s ≠ italic_t end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL if italic_s = italic_t . end_CELL end_ROW

It is well known that this is a metric, and in particular, it is symmetric and satisfies the triangle inequality. Moreover, it is well known that H(a,b)+H(b,c)=H(a,c)𝐻𝑎𝑏𝐻𝑏𝑐𝐻𝑎𝑐H(a,b)+H(b,c)=H(a,c)italic_H ( italic_a , italic_b ) + italic_H ( italic_b , italic_c ) = italic_H ( italic_a , italic_c ) if and only if rΩ(a,b),rΩ(b,c),rΩ(a,c)subscript𝑟Ω𝑎𝑏subscript𝑟Ω𝑏𝑐subscript𝑟Ω𝑎𝑐r_{\Omega}(a,b),r_{\Omega}(b,c),r_{\Omega}(a,c)italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_a , italic_b ) , italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_b , italic_c ) , italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_a , italic_c ) are collinear and rΩ(b,a),rΩ(c,b),rΩ(c,a)subscript𝑟Ω𝑏𝑎subscript𝑟Ω𝑐𝑏subscript𝑟Ω𝑐𝑎r_{\Omega}(b,a),r_{\Omega}(c,b),r_{\Omega}(c,a)italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_b , italic_a ) , italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_c , italic_b ) , italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_c , italic_a ) are collinear, where rΩ(a,b)subscript𝑟Ω𝑎𝑏r_{\Omega}(a,b)italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_a , italic_b ) is the point where the ray ab𝑎𝑏abitalic_a italic_b meets (Ω)Ω\partial(\Omega)∂ ( roman_Ω ) [16, Theorem 12.4]. This follows from the Hilbert metric’s characterization as being the average of the forward and backwards Funk metrics. It is also well known that geodesics are unique if and only if ΩΩ\Omegaroman_Ω is strictly convex [16, Corollary 12.7].

2.3 Voronoi Diagrams in the Hilbert Metric

Let Ω2Ωsuperscript2\Omega\subset\mathbb{R}^{2}roman_Ω ⊂ blackboard_R start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT be an open convex region whose boundary, denoted ΩΩ\partial\Omega∂ roman_Ω, is a polygon. Let S𝑆Sitalic_S denote a set of n𝑛nitalic_n sites in ΩΩ\Omegaroman_Ω. The Voronoi cell of a site sS𝑠𝑆s\in Sitalic_s ∈ italic_S is:

V(s)={qΩ:d(q,s)d(q,t),tS{s}}.𝑉𝑠conditional-set𝑞Ωformulae-sequence𝑑𝑞𝑠𝑑𝑞𝑡for-all𝑡𝑆𝑠\displaystyle V(s)~{}=~{}\big{\{}q\in\Omega\,:\,d(q,s)\leq d(q,t),\,\forall t% \in S\setminus\{s\}\big{\}}.italic_V ( italic_s ) = { italic_q ∈ roman_Ω : italic_d ( italic_q , italic_s ) ≤ italic_d ( italic_q , italic_t ) , ∀ italic_t ∈ italic_S ∖ { italic_s } } .

The Voronoi diagram of S𝑆Sitalic_S in the Hilbert metric induced by ΩΩ\Omegaroman_Ω, denoted VorΩ(S)subscriptVorΩ𝑆\operatorname{Vor}_{\Omega}(S)roman_Vor start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_S ), is the cell complex of ΩΩ\Omegaroman_Ω induced by the Voronoi cells V(s)𝑉𝑠V(s)italic_V ( italic_s ), for all sS𝑠𝑆s\in Sitalic_s ∈ italic_S. Outside of the dynamic context, we assume that all sites are in general position, and in particular that no three sites are co-linear. It is known that Voronoi cells in the Hilbert Metric are stars and with complexity Ω(mn)Ω𝑚𝑛\Omega(mn)roman_Ω ( italic_m italic_n )[10].

It will be helpful to define two terms, spokes and sectors. Given our convex body ΩΩ\Omegaroman_Ω and a site s𝑠sitalic_s in ΩΩ\Omegaroman_Ω it can be seen that the Hilbert distance from our site s𝑠sitalic_s to a point p𝑝pitalic_p is dependent on the edges of ΩΩ\Omegaroman_Ω that intersect χ(s,p)𝜒𝑠𝑝\chi(s,p)italic_χ ( italic_s , italic_p ). This is characterized by taking the vertices of ΩΩ\Omegaroman_Ω, which we denote by V𝑉Vitalic_V, and partitioning ΩΩ\Omegaroman_Ω into cells determined by the chords χ(v,s)𝜒𝑣𝑠\chi(v,s)italic_χ ( italic_v , italic_s ) for all vV𝑣𝑉v\in Vitalic_v ∈ italic_V. We define a spoke rΩ(v,s)subscript𝑟Ω𝑣𝑠r_{\Omega}(v,s)italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_v , italic_s ), rΩ(s,v)subscript𝑟Ω𝑠𝑣r_{\Omega}(s,v)italic_r start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ( italic_s , italic_v ) to be the intersection of ray vs𝑣𝑠vsitalic_v italic_s and sv𝑠𝑣svitalic_s italic_v respectively with ΩΩ\Omegaroman_Ω when v𝑣vitalic_v is a vertex of V𝑉Vitalic_V. Nielsen and Shao showed that Hilbert balls are Θ(m)Θ𝑚\Theta(m)roman_Θ ( italic_m )-sided polygons whose boundaries are constructed around these spokes [15].

These spokes subdivide ΩΩ\Omegaroman_Ω into polygonal regions, which we will call sectors. Each sector T𝑇Titalic_T has the property that for all points pT𝑝𝑇p\in Titalic_p ∈ italic_T, given two sites s𝑠sitalic_s and t𝑡titalic_t there are four edges (not necessarily unique) of ΩΩ\partial\Omega∂ roman_Ω, say EA,EB,EC,EDsubscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷E_{A},E_{B},E_{C},E_{D}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT, such that χ(s,p)𝜒𝑠𝑝\chi(s,p)italic_χ ( italic_s , italic_p ) always intersects ΩΩ\Omegaroman_Ω at EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT and χ(t,p)𝜒𝑡𝑝\chi(t,p)italic_χ ( italic_t , italic_p ) at ECsubscript𝐸𝐶E_{C}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT and EDsubscript𝐸𝐷E_{D}italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT. We will write S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) to be the unique sector such that for any pS(s,t,EA,EB,EC,ED)𝑝𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷p\in S(s,t,E_{A},E_{B},E_{C},E_{D})italic_p ∈ italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ), we have χ(sp)𝜒𝑠𝑝\chi(sp)italic_χ ( italic_s italic_p ) has in order of intersection EA,s,p,EBsubscript𝐸𝐴𝑠𝑝subscript𝐸𝐵E_{A},s,p,E_{B}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_s , italic_p , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT and χ(tp)𝜒𝑡𝑝\chi(tp)italic_χ ( italic_t italic_p ) has EC,t,p,EDsubscript𝐸𝐶𝑡𝑝subscript𝐸𝐷E_{C},t,p,E_{D}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_t , italic_p , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT (see Figure 1). As a consequence of this, we can see that the bisector between two sites, s𝑠sitalic_s and t𝑡titalic_t, is composed of curves which depend piece-wise on the sectors they pass through.

Refer to caption

Figure 1: Illustration of different sectors.

3 Hilbert Bisector analysis

Theorem 3.1.

The equation of the bisector between two sites in any particular sector is of the form Ax2+Bxy+Cy2+Dx+Ey+F=0𝐴superscript𝑥2𝐵𝑥𝑦𝐶superscript𝑦2𝐷𝑥𝐸𝑦𝐹0Ax^{2}+Bxy+Cy^{2}+Dx+Ey+F=0italic_A italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_B italic_x italic_y + italic_C italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_D italic_x + italic_E italic_y + italic_F = 0, with coefficients depending only on the line equations of the four edges and the sites.

Proof 3.2.

Suppose we are in some arbitrary sector S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ). Let the equation of the edges be a1x+a2y+a3=0subscript𝑎1𝑥subscript𝑎2𝑦subscript𝑎30a_{1}x+a_{2}y+a_{3}=0italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 0, b1x+b2y+b3=0subscript𝑏1𝑥subscript𝑏2𝑦subscript𝑏30b_{1}x+b_{2}y+b_{3}=0italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 0, c1x+c2y+c3=0subscript𝑐1𝑥subscript𝑐2𝑦subscript𝑐30c_{1}x+c_{2}y+c_{3}=0italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 0, and d1x+d2y+d3=0subscript𝑑1𝑥subscript𝑑2𝑦subscript𝑑30d_{1}x+d_{2}y+d_{3}=0italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_x + italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_y + italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 0, for EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT, EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT, ECsubscript𝐸𝐶E_{C}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, and EDsubscript𝐸𝐷E_{D}italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT respectively.

Recall the Euclidean distance between a point (x,y)𝑥𝑦(x,y)( italic_x , italic_y ) and a line ux+vy+l=0𝑢𝑥𝑣𝑦𝑙0ux+vy+l=0italic_u italic_x + italic_v italic_y + italic_l = 0 is given by D(u,v,l,x,y)=|ux+vy+l|u2+v2𝐷𝑢𝑣𝑙𝑥𝑦𝑢𝑥𝑣𝑦𝑙superscript𝑢2superscript𝑣2D(u,v,l,x,y)=\frac{|ux+vy+l|}{\sqrt{u^{2}+v^{2}}}italic_D ( italic_u , italic_v , italic_l , italic_x , italic_y ) = divide start_ARG | italic_u italic_x + italic_v italic_y + italic_l | end_ARG start_ARG square-root start_ARG italic_u start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG. Let pT𝑝𝑇p\in Titalic_p ∈ italic_T be an arbitrary point with coordinates (px,py)subscript𝑝𝑥subscript𝑝𝑦(p_{x},p_{y})( italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ). Notice that, without loss of generality, if q𝑞qitalic_q is the point where chord χ(p,s)𝜒𝑝𝑠\chi(p,s)italic_χ ( italic_p , italic_s ) hits ΩΩ\partial\Omega∂ roman_Ω towards s𝑠sitalic_s, then the ratio qpqsnorm𝑞𝑝norm𝑞𝑠\frac{\|q-p\|}{\|q-s\|}divide start_ARG ∥ italic_q - italic_p ∥ end_ARG start_ARG ∥ italic_q - italic_s ∥ end_ARG can be replaced with the ratio D(a1,a2,a3,px,py)D(a1,a2,a3,sx,sy)𝐷subscript𝑎1subscript𝑎2subscript𝑎3subscript𝑝𝑥subscript𝑝𝑦𝐷subscript𝑎1subscript𝑎2subscript𝑎3subscript𝑠𝑥subscript𝑠𝑦\frac{D(a_{1},a_{2},a_{3},p_{x},p_{y})}{D(a_{1},a_{2},a_{3},s_{x},s_{y})}divide start_ARG italic_D ( italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG start_ARG italic_D ( italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG by similar triangles. Using this technique we set H(s,p)=H(t,p)𝐻𝑠𝑝𝐻𝑡𝑝H(s,p)=H(t,p)italic_H ( italic_s , italic_p ) = italic_H ( italic_t , italic_p ) and solve, yielding

D(a1,a2,a3,px,py)D(a1,a2,a3,sx,sy)D(b1,b2,b3,sx,sy)D(b1,b2,b3,px,py)=𝐷subscript𝑎1subscript𝑎2subscript𝑎3subscript𝑝𝑥subscript𝑝𝑦𝐷subscript𝑎1subscript𝑎2subscript𝑎3subscript𝑠𝑥subscript𝑠𝑦𝐷subscript𝑏1subscript𝑏2subscript𝑏3subscript𝑠𝑥subscript𝑠𝑦𝐷subscript𝑏1subscript𝑏2subscript𝑏3subscript𝑝𝑥subscript𝑝𝑦absent\displaystyle\frac{D(a_{1},a_{2},a_{3},p_{x},p_{y})}{D(a_{1},a_{2},a_{3},s_{x}% ,s_{y})}\frac{D(b_{1},b_{2},b_{3},s_{x},s_{y})}{D(b_{1},b_{2},b_{3},p_{x},p_{y% })}~{}=~{}divide start_ARG italic_D ( italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG start_ARG italic_D ( italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG divide start_ARG italic_D ( italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG start_ARG italic_D ( italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG =
D(c1,c2,c3,px,py)D(c1,c2,c3,tx,ty)D(d1,d2,d3,tx,ty)D(d1,d2,d3,px,py).𝐷subscript𝑐1subscript𝑐2subscript𝑐3subscript𝑝𝑥subscript𝑝𝑦𝐷subscript𝑐1subscript𝑐2subscript𝑐3subscript𝑡𝑥subscript𝑡𝑦𝐷subscript𝑑1subscript𝑑2subscript𝑑3subscript𝑡𝑥subscript𝑡𝑦𝐷subscript𝑑1subscript𝑑2subscript𝑑3subscript𝑝𝑥subscript𝑝𝑦\displaystyle\frac{D(c_{1},c_{2},c_{3},p_{x},p_{y})}{D(c_{1},c_{2},c_{3},t_{x}% ,t_{y})}\frac{D(d_{1},d_{2},d_{3},t_{x},t_{y})}{D(d_{1},d_{2},d_{3},p_{x},p_{y% })}.divide start_ARG italic_D ( italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG start_ARG italic_D ( italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG divide start_ARG italic_D ( italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG start_ARG italic_D ( italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) end_ARG .

The equation of the line ux+vy+l=0𝑢𝑥𝑣𝑦𝑙0ux+vy+l=0italic_u italic_x + italic_v italic_y + italic_l = 0 divides the plane in two, characterized by the sign of the function g(x,y)=ux+vy+l𝑔𝑥𝑦𝑢𝑥𝑣𝑦𝑙g(x,y)=ux+vy+litalic_g ( italic_x , italic_y ) = italic_u italic_x + italic_v italic_y + italic_l. Given this, since all our points are on the same side of each line, when we substitute in for the function D𝐷Ditalic_D, we can remove the absolute value bars from our equations. It follows that:

a1px+a2py+a3a1sx+a2sy+a3b1sx+b2sy+b3b1tpx+b2py+b3=subscript𝑎1subscript𝑝𝑥subscript𝑎2subscript𝑝𝑦subscript𝑎3subscript𝑎1subscript𝑠𝑥subscript𝑎2subscript𝑠𝑦subscript𝑎3subscript𝑏1subscript𝑠𝑥subscript𝑏2subscript𝑠𝑦subscript𝑏3subscript𝑏1𝑡subscript𝑝𝑥subscript𝑏2subscript𝑝𝑦subscript𝑏3absent\displaystyle\frac{a_{1}p_{x}+a_{2}p_{y}+a_{3}}{a_{1}s_{x}+a_{2}s_{y}+a_{3}}% \frac{b_{1}s_{x}+b_{2}s_{y}+b_{3}}{b_{1}tp_{x}+b_{2}p_{y}+b_{3}}~{}=~{}divide start_ARG italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG divide start_ARG italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_t italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG =
c1px+c2py+c3c1tx+c2ty+c3d1tx+d2ty+d3d1px+d2py+d3.subscript𝑐1subscript𝑝𝑥subscript𝑐2subscript𝑝𝑦subscript𝑐3subscript𝑐1subscript𝑡𝑥subscript𝑐2subscript𝑡𝑦subscript𝑐3subscript𝑑1subscript𝑡𝑥subscript𝑑2subscript𝑡𝑦subscript𝑑3subscript𝑑1subscript𝑝𝑥subscript𝑑2subscript𝑝𝑦subscript𝑑3\displaystyle\frac{c_{1}p_{x}+c_{2}p_{y}+c_{3}}{c_{1}t_{x}+c_{2}t_{y}+c_{3}}% \frac{d_{1}t_{x}+d_{2}t_{y}+d_{3}}{d_{1}p_{x}+d_{2}p_{y}+d_{3}}.divide start_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG divide start_ARG italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG .

Collecting constants on one side gives us:

b1sx+b2sy+b3d1tx+d2ty+d3c1tx+c2ty+c3a1sx+a2sy+a3=subscript𝑏1subscript𝑠𝑥subscript𝑏2subscript𝑠𝑦subscript𝑏3subscript𝑑1subscript𝑡𝑥subscript𝑑2subscript𝑡𝑦subscript𝑑3subscript𝑐1subscript𝑡𝑥subscript𝑐2subscript𝑡𝑦subscript𝑐3subscript𝑎1subscript𝑠𝑥subscript𝑎2subscript𝑠𝑦subscript𝑎3absent\displaystyle\frac{b_{1}s_{x}+b_{2}s_{y}+b_{3}}{d_{1}t_{x}+d_{2}t_{y}+d_{3}}% \frac{c_{1}t_{x}+c_{2}t_{y}+c_{3}}{a_{1}s_{x}+a_{2}s_{y}+a_{3}}~{}=~{}divide start_ARG italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG divide start_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG =
c1px+c2py+c3a1px+a2py+a3b1px+b2py+b3d1px+d2py+d3.subscript𝑐1subscript𝑝𝑥subscript𝑐2subscript𝑝𝑦subscript𝑐3subscript𝑎1subscript𝑝𝑥subscript𝑎2subscript𝑝𝑦subscript𝑎3subscript𝑏1subscript𝑝𝑥subscript𝑏2subscript𝑝𝑦subscript𝑏3subscript𝑑1subscript𝑝𝑥subscript𝑑2subscript𝑝𝑦subscript𝑑3\displaystyle\frac{c_{1}p_{x}+c_{2}p_{y}+c_{3}}{a_{1}p_{x}+a_{2}p_{y}+a_{3}}% \frac{b_{1}p_{x}+b_{2}p_{y}+b_{3}}{d_{1}p_{x}+d_{2}p_{y}+d_{3}}.divide start_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG divide start_ARG italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG start_ARG italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG .

Letting the left side be a constant k𝑘kitalic_k, we find that the bisector satisfies the algebraic equation:

Apx2+Bpxpy+Cpy2+Dpx+Epy+F=0,𝐴superscriptsubscript𝑝𝑥2𝐵subscript𝑝𝑥subscript𝑝𝑦𝐶superscriptsubscript𝑝𝑦2𝐷subscript𝑝𝑥𝐸subscript𝑝𝑦𝐹0\displaystyle Ap_{x}^{2}+Bp_{x}p_{y}+Cp_{y}^{2}+Dp_{x}+Ep_{y}+F~{}=~{}0,italic_A italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_B italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_C italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_D italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_E italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT + italic_F = 0 ,

where the coefficients are:

A𝐴\displaystyle Aitalic_A =b1c1a1d1kabsentsubscript𝑏1subscript𝑐1subscript𝑎1subscript𝑑1𝑘\displaystyle=b_{1}c_{1}-a_{1}d_{1}k= italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_k
B𝐵\displaystyle Bitalic_B =b2c1+b1c2a1d2ka2d1kabsentsubscript𝑏2subscript𝑐1subscript𝑏1subscript𝑐2subscript𝑎1subscript𝑑2𝑘subscript𝑎2subscript𝑑1𝑘\displaystyle=b_{2}c_{1}+b_{1}c_{2}-a_{1}d_{2}k-a_{2}d_{1}k= italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_k - italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_k
C𝐶\displaystyle Citalic_C =b2c2a2d2kabsentsubscript𝑏2subscript𝑐2subscript𝑎2subscript𝑑2𝑘\displaystyle=b_{2}c_{2}-a_{2}d_{2}k= italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_k
D𝐷\displaystyle Ditalic_D =b3c1+c3b1a3d1ka1d3kabsentsubscript𝑏3subscript𝑐1subscript𝑐3subscript𝑏1subscript𝑎3subscript𝑑1𝑘subscript𝑎1subscript𝑑3𝑘\displaystyle=b_{3}c_{1}+c_{3}b_{1}-a_{3}d_{1}k-a_{1}d_{3}k= italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_k - italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_k
E𝐸\displaystyle Eitalic_E =b3c2+b2c3a2d3ka3d2kabsentsubscript𝑏3subscript𝑐2subscript𝑏2subscript𝑐3subscript𝑎2subscript𝑑3𝑘subscript𝑎3subscript𝑑2𝑘\displaystyle=b_{3}c_{2}+b_{2}c_{3}-a_{2}d_{3}k-a_{3}d_{2}k= italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_k - italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_k
F𝐹\displaystyle Fitalic_F =b3c3a3d3k.absentsubscript𝑏3subscript𝑐3subscript𝑎3subscript𝑑3𝑘\displaystyle=b_{3}c_{3}-a_{3}d_{3}k.= italic_b start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT italic_k .

By the symmetry of these equations we can see that the bisector in S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) is the same as the bisector in S(s,t,EB,EA,ED,EC)𝑆𝑠𝑡subscript𝐸𝐵subscript𝐸𝐴subscript𝐸𝐷subscript𝐸𝐶S(s,t,E_{B},E_{A},E_{D},E_{C})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT ).111We would like to thank Daniel Skora for comments on a previous version of this proof.

We present several ways to simplify the bisector depending on the sector case.

3.1 Finding Bisectors in a Sector

There are three main sector types: sectors with four distinct edges, sectors with three, and sectors with two. We begin with the four edge case. It is a well known fact from projective geometry that there exists a projective transformation that maps any convex quadrilateral to another (see Figure 2). For the sake of completeness, we present the derivation of this transformation for the special case where the target is the unit square.

Observation 1

Bisectors in the four-edge case can be projectively transformed and solved in the unit square.

Proof 3.3.

Suppose we are in a strictly four-edge sector S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) with edges EA,EC,EB,EDsubscript𝐸𝐴subscript𝐸𝐶subscript𝐸𝐵subscript𝐸𝐷E_{A},E_{C},E_{B},E_{D}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT counter clockwise. Let our edges extend out infinity and let p1=EAEDsubscript𝑝1subscript𝐸𝐴subscript𝐸𝐷p_{1}=E_{A}\cap E_{D}italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ∩ italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT, p2=EAECsubscript𝑝2subscript𝐸𝐴subscript𝐸𝐶p_{2}=E_{A}\cap E_{C}italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ∩ italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, p3=EBECsubscript𝑝3subscript𝐸𝐵subscript𝐸𝐶p_{3}=E_{B}\cap E_{C}italic_p start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ∩ italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, and p4=EBEDsubscript𝑝4subscript𝐸𝐵subscript𝐸𝐷p_{4}=E_{B}\cap E_{D}italic_p start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ∩ italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT. Consider the vector:

QT=[q1,x,q1,y,q2,x,q2,y,q3,x,q3,y,q4,x,q4,y],superscript𝑄𝑇subscript𝑞1𝑥subscript𝑞1𝑦subscript𝑞2𝑥subscript𝑞2𝑦subscript𝑞3𝑥subscript𝑞3𝑦subscript𝑞4𝑥subscript𝑞4𝑦Q^{T}~{}=~{}[q_{1,x},q_{1,y},q_{2,x},q_{2,y},q_{3,x},q_{3,y},q_{4,x},q_{4,y}],italic_Q start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT = [ italic_q start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT ] ,

where q1=(0,0),subscript𝑞100q_{1}=(0,0),italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( 0 , 0 ) , q2=(0,1),subscript𝑞201q_{2}=(0,1),italic_q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = ( 0 , 1 ) , q3=(1,1),subscript𝑞311q_{3}=(1,1),italic_q start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = ( 1 , 1 ) , and q4=(1,0)subscript𝑞410q_{4}=(1,0)italic_q start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT = ( 1 , 0 ). Then we can calculate the projective transformation matrix T𝑇Titalic_T such that P=TPsuperscript𝑃𝑇𝑃P^{\prime}=TPitalic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_T italic_P when T𝑇Titalic_T sends points P𝑃Pitalic_P on our quadrilateral to the unit square. We force the right corner of T𝑇Titalic_T to be 1 to fix our scaling factor.

Refer to caption


Figure 2: A projection between two quadrilaterals.
[xy1][t11t12t13t21t22t23t31t321]=[xy1]delimited-[]superscript𝑥superscript𝑦1delimited-[]subscript𝑡11subscript𝑡12subscript𝑡13subscript𝑡21subscript𝑡22subscript𝑡23subscript𝑡31subscript𝑡321delimited-[]𝑥𝑦1\left[{\begin{array}[]{c}x^{\prime}\\ y^{\prime}\\ 1\\ \end{array}}\right]\left[{\begin{array}[]{ccc}t_{11}&t_{12}&t_{13}\\ t_{21}&t_{22}&t_{23}\\ t_{31}&t_{32}&1\\ \end{array}}\right]=\left[{\begin{array}[]{c}x\\ y\\ 1\\ \end{array}}\right][ start_ARRAY start_ROW start_CELL italic_x start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_y start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW end_ARRAY ] [ start_ARRAY start_ROW start_CELL italic_t start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT end_CELL start_CELL italic_t start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT end_CELL start_CELL italic_t start_POSTSUBSCRIPT 13 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_t start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT end_CELL start_CELL italic_t start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT end_CELL start_CELL italic_t start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_t start_POSTSUBSCRIPT 31 end_POSTSUBSCRIPT end_CELL start_CELL italic_t start_POSTSUBSCRIPT 32 end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL end_ROW end_ARRAY ] = [ start_ARRAY start_ROW start_CELL italic_x end_CELL end_ROW start_ROW start_CELL italic_y end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW end_ARRAY ]

We solve for the elements of T using the following matrices: MV=Q𝑀𝑉𝑄MV=Qitalic_M italic_V = italic_Q where V=[t11,t12,]𝑉superscriptsubscript𝑡11subscript𝑡12V=[t_{11},t_{12},\ldots]^{\intercal}italic_V = [ italic_t start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT , … ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT, Q=[q1,x,q1,y,]𝑄superscriptsubscript𝑞1𝑥subscript𝑞1𝑦Q=[q_{1,x},q_{1,y},\ldots]^{\intercal}italic_Q = [ italic_q start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT , … ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT and M𝑀Mitalic_M is:

[p1,xp1,y1000p1,xq1,xp1,yq1,x000p1,xp1,y1p1,xq1,yp1,yq1,yp2,xp2,y1000p2,xq2,xp2,yq2,x000p2,xp2,y1p2,xq2,yp2,yq2,yp3,xp3,y1000p3,xq3,xp3,yq3,x000p3,xp3,y1p3,xq3,yp3,yq3,yp4,xp4,y1000p4,xq4,xp4,yq4,x000p4,xp4,y1p4,xq4,yp4,yq4,y]delimited-[]subscript𝑝1𝑥subscript𝑝1𝑦1000subscript𝑝1𝑥subscript𝑞1𝑥subscript𝑝1𝑦subscript𝑞1𝑥000subscript𝑝1𝑥subscript𝑝1𝑦1subscript𝑝1𝑥subscript𝑞1𝑦subscript𝑝1𝑦subscript𝑞1𝑦subscript𝑝2𝑥subscript𝑝2𝑦1000subscript𝑝2𝑥subscript𝑞2𝑥subscript𝑝2𝑦subscript𝑞2𝑥000subscript𝑝2𝑥subscript𝑝2𝑦1subscript𝑝2𝑥subscript𝑞2𝑦subscript𝑝2𝑦subscript𝑞2𝑦subscript𝑝3𝑥subscript𝑝3𝑦1000subscript𝑝3𝑥subscript𝑞3𝑥subscript𝑝3𝑦subscript𝑞3𝑥000subscript𝑝3𝑥subscript𝑝3𝑦1subscript𝑝3𝑥subscript𝑞3𝑦subscript𝑝3𝑦subscript𝑞3𝑦subscript𝑝4𝑥subscript𝑝4𝑦1000subscript𝑝4𝑥subscript𝑞4𝑥subscript𝑝4𝑦subscript𝑞4𝑥000subscript𝑝4𝑥subscript𝑝4𝑦1subscript𝑝4𝑥subscript𝑞4𝑦subscript𝑝4𝑦subscript𝑞4𝑦\left[\kern-3.0pt\begin{array}[]{cccccccc}p_{1,x}&p_{1,y}&1&0&0&0&-p_{1,x}% \kern 1.0ptq_{1,x}&-p_{1,y}\kern 1.0ptq_{1,x}\\ 0&0&0&p_{1,x}&p_{1,y}&1&-p_{1,x}\kern 1.0ptq_{1,y}&-p_{1,y}\kern 1.0ptq_{1,y}% \\ p_{2,x}&p_{2,y}&1&0&0&0&-p_{2,x}\kern 1.0ptq_{2,x}&-p_{2,y}\kern 1.0ptq_{2,x}% \\ 0&0&0&p_{2,x}&p_{2,y}&1&-p_{2,x}\kern 1.0ptq_{2,y}&-p_{2,y}\kern 1.0ptq_{2,y}% \\ p_{3,x}&p_{3,y}&1&0&0&0&-p_{3,x}\kern 1.0ptq_{3,x}&-p_{3,y}\kern 1.0ptq_{3,x}% \\ 0&0&0&p_{3,x}&p_{3,y}&1&-p_{3,x}\kern 1.0ptq_{3,y}&-p_{3,y}\kern 1.0ptq_{3,y}% \\ p_{4,x}&p_{4,y}&1&0&0&0&-p_{4,x}\kern 1.0ptq_{4,x}&-p_{4,y}\kern 1.0ptq_{4,x}% \\ 0&0&0&p_{4,x}&p_{4,y}&1&-p_{4,x}\kern 1.0ptq_{4,y}&-p_{4,y}\kern 1.0ptq_{4,y}% \\ \end{array}\kern-3.0pt\right][ start_ARRAY start_ROW start_CELL italic_p start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_p start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 1 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 1 , italic_y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_p start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_p start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 2 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 2 , italic_y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_p start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_p start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 3 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 3 , italic_y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_p start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_p start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 4 , italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT end_CELL start_CELL - italic_p start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 4 , italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ]

Since the Hilbert metric is invariant under projective transformations, the final bisector can thus be computed for the canonical case of the unit square and then mapped back using the inverse transformation.

Given this observation, we will assume henceforth that any four edges case is in the unit square.

Lemma 3.4.

When the four edges corresponding to a sector lie on four distinct lines, the bisector is either a hyperbola or a parabola.

Proof 3.5.

Let S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) be an arbitrary sector with four distinct edges. By applying Observation 1, we may assume without loss of generality that EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT, EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT, ECsubscript𝐸𝐶E_{C}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, EDsubscript𝐸𝐷E_{D}italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT lie on the lines x=0𝑥0x=0italic_x = 0, x=1𝑥1x=1italic_x = 1, y=0𝑦0y=0italic_y = 0, and y=1𝑦1y=1italic_y = 1, respectively. The discriminant of equation for our bisector is given by B24ACsuperscript𝐵24𝐴𝐶B^{2}-4ACitalic_B start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 4 italic_A italic_C. Substituting in for our variables, we get (1k)2superscript1𝑘2(1-k)^{2}( 1 - italic_k ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT as our discriminant, which is nonnegative.

Next, let us consider the three-edge case. We will refer to the edge that is hit twice by the Hilbert metric in the sector as the shared edge, we have the following three cases, depending on whether the shared edge is behind both points with respect to the sector, in front of both (see Figure 3), or behind one and in front of the other (see Figure 4). As in the four-edge case, we can projectively transform the problem to a canonical form, as given in the following lemma. Define the unit simplex in 2superscript2\mathbb{R}^{2}blackboard_R start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT to be the right triangle with vertices at (0,0)00(0,0)( 0 , 0 ), (1,0)10(1,0)( 1 , 0 ), and (0,1)01(0,1)( 0 , 1 ).

Observation 2

Bisectors in the three-edge case can be projectively transformed and solved in the unit simplex.

Proof 3.6.

The affine transformation between triangles is well known and inherently projective. We provide it here. A triangle with corners p,q,r𝑝𝑞𝑟p,q,ritalic_p , italic_q , italic_r can be projectively transformed into the unit simplex with the matrix T1superscript𝑇1T^{-1}italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT, where:

T=[pxrxpyry0qxrxqyry0rxry1].𝑇delimited-[]subscript𝑝𝑥subscript𝑟𝑥subscript𝑝𝑦subscript𝑟𝑦0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝑞𝑥subscript𝑟𝑥subscript𝑞𝑦subscript𝑟𝑦0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝑟𝑥subscript𝑟𝑦1missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionT=\left[{\begin{array}[]{cccccccc}p_{x}-r_{x}&p_{y}-r_{y}&0\\ q_{x}-r_{x}&q_{y}-r_{y}&0\\ r_{x}&r_{y}&1\\ \end{array}}\right].italic_T = [ start_ARRAY start_ROW start_CELL italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT - italic_r start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - italic_r start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT - italic_r start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - italic_r start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_r start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_r start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW end_ARRAY ] .

Observe that T1superscript𝑇1T^{-1}italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT sends a point P𝑃Pitalic_P on the left from our original triangle to the unit simplex.

Lemma 3.7.

Given any three-edge sector, where the shared edge is in front or behind of both sites, the bisector between the two sites in the sector is a straight line through the vanishing point of the non-shared edges.

Refer to caption

Figure 3: Illustration for the proof of Lemma 3.9 (a bisector in the three-edge case with shared edge in front of both sites).
Proof 3.8.

We prove this geometrically for both cases S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) with edges EB=EDsubscript𝐸𝐵subscript𝐸𝐷E_{B}=E_{D}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT and S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) with edges EA=ECsubscript𝐸𝐴subscript𝐸𝐶E_{A}=E_{C}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT.

Consider the case in which the edge is in front of both sites, S(s,t,EA,EB,EC,EB)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐵S(s,t,E_{A},E_{B},E_{C},E_{B})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ). Let p𝑝pitalic_p be a point in the sector such that H(s,p)=H(t,p)𝐻𝑠𝑝𝐻𝑡𝑝H(s,p)=H(t,p)italic_H ( italic_s , italic_p ) = italic_H ( italic_t , italic_p ), and let O𝑂Oitalic_O be vanishing point of EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and ECsubscript𝐸𝐶E_{C}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT. We claim the bisector is a straight line through Op𝑂𝑝Opitalic_O italic_p. Let q𝑞qitalic_q be a point on the segment Op𝑂𝑝Opitalic_O italic_p in the sector. Using the geodesic triangle inequality in the Funk metric we get F(t,q)=F(t,p)+F(p,q)𝐹𝑡𝑞𝐹𝑡𝑝𝐹𝑝𝑞F(t,q)=F(t,p)+F(p,q)italic_F ( italic_t , italic_q ) = italic_F ( italic_t , italic_p ) + italic_F ( italic_p , italic_q ) and F(s,q)=F(s,p)+F(p,q)𝐹𝑠𝑞𝐹𝑠𝑝𝐹𝑝𝑞F(s,q)=F(s,p)+F(p,q)italic_F ( italic_s , italic_q ) = italic_F ( italic_s , italic_p ) + italic_F ( italic_p , italic_q ) [16]. By definition, F(s,p)+F(p,s)=F(t,p)+F(p,t)𝐹𝑠𝑝𝐹𝑝𝑠𝐹𝑡𝑝𝐹𝑝𝑡F(s,p)+F(p,s)=F(t,p)+F(p,t)italic_F ( italic_s , italic_p ) + italic_F ( italic_p , italic_s ) = italic_F ( italic_t , italic_p ) + italic_F ( italic_p , italic_t ). Substituting in our previous equations and cancelling F(p,q)𝐹𝑝𝑞F(p,q)italic_F ( italic_p , italic_q ) we have F(s,q)+F(p,s)=F(t,q)+F(p,t)𝐹𝑠𝑞𝐹𝑝𝑠𝐹𝑡𝑞𝐹𝑝𝑡F(s,q)+F(p,s)=F(t,q)+F(p,t)italic_F ( italic_s , italic_q ) + italic_F ( italic_p , italic_s ) = italic_F ( italic_t , italic_q ) + italic_F ( italic_p , italic_t ). Using properties of similar triangles and rearranging the equation we can see that F(s,q)F(t,q)=log((|pEc|/|tEc|)(|sEA|/|pEA|))𝐹𝑠𝑞𝐹𝑡𝑞𝑝subscript𝐸𝑐𝑡subscript𝐸𝑐𝑠subscript𝐸𝐴𝑝subscript𝐸𝐴F(s,q)-F(t,q)=\log((|pE_{c}|/|tE_{c}|)\cdot(|sE_{A}|/|pE_{A}|))italic_F ( italic_s , italic_q ) - italic_F ( italic_t , italic_q ) = roman_log ( ( | italic_p italic_E start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT | / | italic_t italic_E start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT | ) ⋅ ( | italic_s italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT | / | italic_p italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT | ) ). Note that |pEc|/|pEA|=|qEc|/|qEA|𝑝subscript𝐸𝑐𝑝subscript𝐸𝐴𝑞subscript𝐸𝑐𝑞subscript𝐸𝐴|pE_{c}|/|pE_{A}|=|qE_{c}|/|qE_{A}|| italic_p italic_E start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT | / | italic_p italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT | = | italic_q italic_E start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT | / | italic_q italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT |. Substituting in and using the definition of the Funk metric we get F(s,q)F(t,q)=F(q,t)F(q,s)𝐹𝑠𝑞𝐹𝑡𝑞𝐹𝑞𝑡𝐹𝑞𝑠F(s,q)-F(t,q)=F(q,t)-F(q,s)italic_F ( italic_s , italic_q ) - italic_F ( italic_t , italic_q ) = italic_F ( italic_q , italic_t ) - italic_F ( italic_q , italic_s ), yielding H(s,q)=H(t,q)𝐻𝑠𝑞𝐻𝑡𝑞H(s,q)=H(t,q)italic_H ( italic_s , italic_q ) = italic_H ( italic_t , italic_q ). By choosing p𝑝pitalic_p to be the lowest point on the bisector in the sector we get our characterization of the bisector as a line.

Note the case where the shared edge is behind both sites follows from the symmetry of the general equation of the bisector.

Lemma 3.9.

Given a three-edge sector in which the shared edge is in front of one site and behind the other, the bisector between the sites can be a conic of any type (ellipse, parabola, or hyperbola) depending on their relative positions. Further, when either site is fixed, there exists a line such that the type of conic is determined by the location of the other site with respect to this line (an ellipse if it lies on one side, hyperbola if on the other side, and parabola if lies on the line).

Proof 3.10.

We prove this algebraically for, without loss of generality, S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) with edges EB=ECsubscript𝐸𝐵subscript𝐸𝐶E_{B}=E_{C}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, and all other edges lying on distinct lines.

By Observation 2, it suffices to assume that the triangle has been mapped to the unit simplex. Let the edge EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT lie on the line y=0𝑦0y=0italic_y = 0, EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT and ECsubscript𝐸𝐶E_{C}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT lie on the line x+y1=0𝑥𝑦10x+y-1=0italic_x + italic_y - 1 = 0, and EDsubscript𝐸𝐷E_{D}italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT lie on the line x=0𝑥0x=0italic_x = 0. By applying Theorem 3.1 with these values, the bisector is given by x2+(2k)xy+y22x2y+1=0superscript𝑥22𝑘𝑥𝑦superscript𝑦22𝑥2𝑦10x^{2}+(2-k)xy+y^{2}-2x-2y+1=0italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( 2 - italic_k ) italic_x italic_y + italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 2 italic_x - 2 italic_y + 1 = 0, where k=sx+sy1txtx+ty1sy𝑘subscript𝑠𝑥subscript𝑠𝑦1subscript𝑡𝑥subscript𝑡𝑥subscript𝑡𝑦1subscript𝑠𝑦k=\frac{s_{x}+s_{y}-1}{t_{x}}\frac{t_{x}+t_{y}-1}{s_{y}}italic_k = divide start_ARG italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - 1 end_ARG start_ARG italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_ARG divide start_ARG italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - 1 end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_ARG. The discriminant of the equation of the bisector is (2k)24superscript2𝑘24(2-k)^{2}-4( 2 - italic_k ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 4, which reduces to k(k4)𝑘𝑘4k(k-4)italic_k ( italic_k - 4 ). By standard results on conics, the type of conic depends on the sign of the discriminant. Note that k𝑘kitalic_k is always positive since (sx,sy)subscript𝑠𝑥subscript𝑠𝑦(s_{x},s_{y})( italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) and (tx,ty)subscript𝑡𝑥subscript𝑡𝑦(t_{x},t_{y})( italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) are in the unit simplex. Given this, the discriminant changes sign when k=4𝑘4k=4italic_k = 4. Thus, the conic type is given by the sign of the function (sx+sy1)(tx+ty1)4sxtxsubscript𝑠𝑥subscript𝑠𝑦1subscript𝑡𝑥subscript𝑡𝑦14subscript𝑠𝑥subscript𝑡𝑥(s_{x}+s_{y}-1)(t_{x}+t_{y}-1)-4s_{x}t_{x}( italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - 1 ) ( italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT - 1 ) - 4 italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT. Observe that when either s𝑠sitalic_s or t𝑡titalic_t is fixed, this is a linear equation in coordinates of the other site. Thus, fixing s𝑠sitalic_s yields a line, and the type of conic (ellipse, hyperbola, or parabola) is determined by the location of t𝑡titalic_t relative to this line. The elliptical case holds when t𝑡titalic_t is on one side, the hyperbolic case when it is on the other, and the parabolic case when it lies on the line. This applies symmetrically for t𝑡titalic_t.

Figure 4 illustrates four examples of conics as described by Lemma 3.9. The site coordinates and discriminant are given in Table 1. Note that the ellipse case and hyperbola case happen in general position.

Refer to caption

Figure 4: The bisector conics for the cases given in Table 1 visualized.
Table 1: The bisector cases illustrated in Figure 4 for the three-edge case.
s𝑠sitalic_s t𝑡titalic_t Discriminant
Ellipse (0.2,0.2) (0.45,0.4) -3
Hyperbola (0.2,0.2) (0.25,0.4) 0.84
Circle (0.1,0.15) (0.5,0.3) -4
Parabola (0.1,0.1) (0.2,0.7) 0

Now that we have evaluated the three-edge case we will evaluate the two-edge case.

Note that given a sector S(s,t,EA,EB,EC,ED)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐶subscript𝐸𝐷S(s,t,E_{A},E_{B},E_{C},E_{D})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) with EA=EDsubscript𝐸𝐴subscript𝐸𝐷E_{A}=E_{D}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT and EB=ECsubscript𝐸𝐵subscript𝐸𝐶E_{B}=E_{C}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, we can choose a point p𝑝pitalic_p on EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT, q𝑞qitalic_q on EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT, and let EAEB=rsubscript𝐸𝐴subscript𝐸𝐵𝑟E_{A}\cap E_{B}=ritalic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ∩ italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = italic_r and affinely map the triangle pqr𝑝𝑞𝑟pqritalic_p italic_q italic_r into the unit simplex using Observation 2.

Lemma 3.11.

Given a two edge sector, S(s,t,EA,EB,S(s,t,E_{A},E_{B},italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , EC,ED)E_{C},E_{D})italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT ) with x=0𝑥0x=0italic_x = 0 as EA=EDsubscript𝐸𝐴subscript𝐸𝐷E_{A}=E_{D}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT, and y=0𝑦0y=0italic_y = 0 as EB=ECsubscript𝐸𝐵subscript𝐸𝐶E_{B}=E_{C}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT = italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, the bisector between s𝑠sitalic_s and t𝑡titalic_t is given by the following linear equation: y=kx𝑦𝑘𝑥y=\sqrt{k}xitalic_y = square-root start_ARG italic_k end_ARG italic_x which passes through the vanishing point of EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT where k=(sy/tx)(ty/sx)𝑘subscript𝑠𝑦subscript𝑡𝑥subscript𝑡𝑦subscript𝑠𝑥k=(s_{y}/t_{x})\cdot(t_{y}/s_{x})italic_k = ( italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT / italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) ⋅ ( italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT / italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ).

Proof 3.12.

Plugging in to the general equation for the bisector in a sector give us kx2+y2=0𝑘superscript𝑥2superscript𝑦20-kx^{2}+y^{2}=0- italic_k italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = 0 with k=(sy/tx)(ty/sx)𝑘subscript𝑠𝑦subscript𝑡𝑥subscript𝑡𝑦subscript𝑠𝑥k=(s_{y}/t_{x})\cdot(t_{y}/s_{x})italic_k = ( italic_s start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT / italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) ⋅ ( italic_t start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT / italic_s start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) and solving gives us one viable solution y=kx𝑦𝑘𝑥y=\sqrt{k}xitalic_y = square-root start_ARG italic_k end_ARG italic_x. It is clear that this goes through the vanishing point of EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT.

4 Analysis of Hilbert Voronoi Diagrams

The Hilbert metric has some unique features that are not present in the Euclidean metric, In particular, in degenerate cases bisectors in the Hilbert metric can contain two dimensional polygons. Next, we present a necessary and sufficient condition for this occurrence.

Refer to caption

Figure 5: The point p𝑝pitalic_p is equidistant from both sites s𝑠sitalic_s and t𝑡titalic_t by the invariance of the cross ratio.
Lemma 4.1.

The bisector between two sites s𝑠sitalic_s and t𝑡titalic_t contains a Hilbert ball of some radius r𝑟ritalic_r if and only if both sites lie on a ray through a vertex V𝑉Vitalic_V at the vanishing point of two edges EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT of ΩΩ\Omegaroman_Ω and the sector S(s,t,EA,EB,EB,EA)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐵subscript𝐸𝐴S(s,t,E_{A},E_{B},E_{B},E_{A})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) exists.

Proof 4.2.

(\Longleftarrow) Consider that the Hilbert distance from s𝑠sitalic_s and t𝑡titalic_t to any point p𝑝pitalic_p in S(s,t,EA,EB,EB,EA)𝑆𝑠𝑡subscript𝐸𝐴subscript𝐸𝐵subscript𝐸𝐵subscript𝐸𝐴S(s,t,E_{A},E_{B},E_{B},E_{A})italic_S ( italic_s , italic_t , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ), from the perspective of both s𝑠sitalic_s and t𝑡titalic_t, is equal by the invariance of the cross ratio. Hence, the entire sector in which both s𝑠sitalic_s and t𝑡titalic_t are between EAsubscript𝐸𝐴E_{A}italic_E start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and EBsubscript𝐸𝐵E_{B}italic_E start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT is part of the bisector between s𝑠sitalic_s and t𝑡titalic_t. By assumption, ΩΩ\Omegaroman_Ω is a bounded convex polygonal body, so our bisector will contain some fully 2-dimensional region. Note that we can always fit a Euclidean ball in any 2-dimensional region, and by we therefore must be able to fit a Hilbert ball in one as well [16].

(\Longrightarrow) Suppose the bisector between two sites s𝑠sitalic_s and t𝑡titalic_t contains a Hilbert ball N𝑁Nitalic_N. Then there exists a ball Nsuperscript𝑁N^{\prime}italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT nested in N𝑁Nitalic_N so that Nsuperscript𝑁N^{\prime}italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT lies entirely within one sector T𝑇Titalic_T. Note that the cross ratio between either site and any point in Nsuperscript𝑁N^{\prime}italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT must be equivalent. We assert that T𝑇Titalic_T is defined by at most two edges of ΩΩ\Omegaroman_Ω.

Suppose that there were more than two unique edges defining T𝑇Titalic_T. Consider a point, p𝑝pitalic_p, in Nsuperscript𝑁N^{\prime}italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. Take a pair of edges with respect to one site and consider the ray from the vanishing point of that pair of edges through p𝑝pitalic_p. Note that moving p𝑝pitalic_p along this line will not change its distance to the site, however, since this sector is defined by more than two edges, it will from the other site. Hence, there can be only two edges of ΩΩ\Omegaroman_Ω defining T𝑇Titalic_T.

By the continuity of the Hilbert Metric, it must be that both sites lie on the same side of the bisector in T. Otherwise, we could move closer to one site and further from the other. Since both sites lie on the same side of their bisector, share two edges with respect to every point in Nsuperscript𝑁N^{\prime}italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, and are the same distance to every point in Nsuperscript𝑁N^{\prime}italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, they must lie on a ray through o𝑜oitalic_o.

Given this, we can see that any dynamic Hilbert Voronoi diagram will contain discontinuities whenever a site passes over a ray from a vanishing point of a pair of edges and another site. (See Figure 6 for an example.)

Refer to caption

Figure 6: A discontinuity in the Hilbert metric Voronoi.

Another property of Hilbert Voronoi diagrams that is distinct from Euclidean Voronoi diagrams is that three sites in general position do not necessarily create a Voronoi vertex. In particular given two site s𝑠sitalic_s and t𝑡titalic_t, there exists a space of positive measure such no ball containing a point in that space on its boundary can contain both s𝑠sitalic_s and t𝑡titalic_t on its boundary.

Lemma 4.3.

There exists a quadrilateral region Z𝑍Zitalic_Z of positive measure between any two sites s𝑠sitalic_s and t𝑡titalic_t in a convex polygonal ΩΩ\Omegaroman_Ω, such that for all rZ𝑟𝑍r\in Zitalic_r ∈ italic_Z, there is no Hilbert ball whose boundary passes through r𝑟ritalic_r, s𝑠sitalic_s and t𝑡titalic_t.

Proof 4.4.

Let ΩΩ\Omegaroman_Ω have m𝑚mitalic_m edges, denoted {E1,,Em}subscript𝐸1subscript𝐸𝑚\{E_{1},\ldots,E_{m}\}{ italic_E start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_E start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT }. Let s𝑠sitalic_s and t𝑡titalic_t be two sites in ΩΩ\Omegaroman_Ω. Take O𝑂Oitalic_O to be the set of vanishing points on pairs of edges O={O1,2,O1,3,,Om1,m}𝑂subscript𝑂12subscript𝑂13subscript𝑂𝑚1𝑚O=\{O_{1,2},O_{1,3},\dots,O_{m-1,m}\}italic_O = { italic_O start_POSTSUBSCRIPT 1 , 2 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 1 , 3 end_POSTSUBSCRIPT , … , italic_O start_POSTSUBSCRIPT italic_m - 1 , italic_m end_POSTSUBSCRIPT } when Oi,jsubscript𝑂𝑖𝑗O_{i,j}italic_O start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT refers to the vanishing point of edges Eisubscript𝐸𝑖E_{i}italic_E start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and Ejsubscript𝐸𝑗E_{j}italic_E start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT. Let Ri,jsubscript𝑅𝑖𝑗R_{i,j}italic_R start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT be the area between rays Oi,jssubscript𝑂𝑖𝑗𝑠O_{i,j}sitalic_O start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT italic_s and Oi,jtsubscript𝑂𝑖𝑗𝑡O_{i,j}titalic_O start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT italic_t intersected with ΩΩ\Omegaroman_Ω. Let R={R1,2,R1,3,,Rm1,m}𝑅subscript𝑅12subscript𝑅13subscript𝑅𝑚1𝑚R=\{R_{1,2},R_{1,3},\dots,R_{m-1,m}\}italic_R = { italic_R start_POSTSUBSCRIPT 1 , 2 end_POSTSUBSCRIPT , italic_R start_POSTSUBSCRIPT 1 , 3 end_POSTSUBSCRIPT , … , italic_R start_POSTSUBSCRIPT italic_m - 1 , italic_m end_POSTSUBSCRIPT }.

Let Z=RRi,j𝑍subscript𝑅subscript𝑅𝑖𝑗Z=\bigcap_{R}R_{i,j}italic_Z = ⋂ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT italic_R start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT. By definition, Z𝑍Zitalic_Z is a polygon whose edges pass through both s and t, which always contains st. Note that it is equal to st if and only if s and t lie on a ray through an element of O.

Consider the boundary of Z. We begin by proving that Z𝑍Zitalic_Z is a quadrilateral. Without loss of generality let us consider only the top half of Z𝑍Zitalic_Z above the line st𝑠𝑡stitalic_s italic_t. Let the first two rays leaving s𝑠sitalic_s and t𝑡titalic_t and forming part of the boundary of Z𝑍Zitalic_Z be denoted lssubscript𝑙𝑠l_{s}italic_l start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT and ltsubscript𝑙𝑡l_{t}italic_l start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT, respectively. Let lssubscript𝑙𝑠l_{s}italic_l start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT and ltsubscript𝑙𝑡l_{t}italic_l start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT intersect at a point v𝑣vitalic_v. If v𝑣vitalic_v is not in Z𝑍Zitalic_Z, there must exist some line l𝑙litalic_l that intersects both lssubscript𝑙𝑠l_{s}italic_l start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT and ltsubscript𝑙𝑡l_{t}italic_l start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT and either s𝑠sitalic_s or t𝑡titalic_t, and therefore, must be one of the original rays lssubscript𝑙𝑠l_{s}italic_l start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT or ltsubscript𝑙𝑡l_{t}italic_l start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT. This contradicts the fact that v𝑣vitalic_v is not in Z𝑍Zitalic_Z. Hence we know Z𝑍Zitalic_Z must be a quadrilateral. Next, we prove that no ball through s𝑠sitalic_s and t𝑡titalic_t can intersect the interior of Z𝑍Zitalic_Z on its boundary.

To do this, we prove that any ball containing s𝑠sitalic_s and t𝑡titalic_t must contain Z𝑍Zitalic_Z. Consider an arbitrary Hilbert ball N𝑁Nitalic_N with s𝑠sitalic_s and t𝑡titalic_t on its boundary. Note that the boundary of N𝑁Nitalic_N must be made of segments along rays passing through elements of O𝑂Oitalic_O. Since s𝑠sitalic_s and t𝑡titalic_t are on the boundary N𝑁Nitalic_N, it must be that if an edge, W𝑊Witalic_W of N𝑁Nitalic_N, intersects Z𝑍Zitalic_Z it would cut through, without loss of generality, the top half of the quadrilateral. Extending W𝑊Witalic_W, we see that it must intersect lssubscript𝑙𝑠l_{s}italic_l start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT and ltsubscript𝑙𝑡l_{t}italic_l start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT at exactly one point each. Let W𝑊Witalic_W come from a ray passing through OOsuperscript𝑂𝑂O^{\prime}\in Oitalic_O start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_O. Consider segments through s𝑠sitalic_s and t𝑡titalic_t created by the rays through Osuperscript𝑂O^{\prime}italic_O start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. Note that W𝑊Witalic_W must be either above or below Ossuperscript𝑂𝑠O^{\prime}sitalic_O start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT italic_s and Otsuperscript𝑂𝑡O^{\prime}titalic_O start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT italic_t, or otherwise either s𝑠sitalic_s or t𝑡titalic_t would not be on the boundary. However, Z𝑍Zitalic_Z is contained in the region between Ossuperscript𝑂𝑠O^{\prime}sitalic_O start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT italic_s and Otsuperscript𝑂𝑡O^{\prime}titalic_O start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT italic_t, so W𝑊Witalic_W cannot cut through it, contradiction. Hence we can see that N𝑁Nitalic_N must contain the interior of Z𝑍Zitalic_Z.

Refer to caption

Figure 7: Illustration of region Z.

5 Software

In this section we present our software for Dynamic Voronoi Diagrams in the Hilbert metric.

Our software is built on the structure provided by the software presented by Nielsen and Shao [15]. We contributed by implementing a dynamic insertion algorithm. The insertion process works as follows.

Given an existing convex body ΩΩ\Omegaroman_Ω with a set of sites S𝑆Sitalic_S, suppose the user chooses to insert a new site t𝑡titalic_t. Our software will subdivide ΩΩ\Omegaroman_Ω into sectors from the perspective of t𝑡titalic_t. Then for each site sS𝑠𝑆s\in Sitalic_s ∈ italic_S our software calculates VorΩ,{s,t}(t)subscriptVorΩ𝑠𝑡𝑡\operatorname{Vor}_{\Omega,\{s,t\}}(t)roman_Vor start_POSTSUBSCRIPT roman_Ω , { italic_s , italic_t } end_POSTSUBSCRIPT ( italic_t ). This is done by tracing the bisector through the cell decomposition on ΩΩ\Omegaroman_Ω induced by the sectors of both s𝑠sitalic_s and t𝑡titalic_t using the method described in [10]. While the bisector is approximated using line segments, the equation of the bisector is printed to the terminal window along with the sector information. Our algorithm will then update the Voronoi cell of all previously calculated sS𝑠𝑆s\in Sitalic_s ∈ italic_S’s as VorΩ,S{t}(s)=VorΩ,S(s)VorΩ,{s,t}(s)subscriptVorΩ𝑆𝑡𝑠subscriptVorΩ𝑆𝑠subscriptVorΩ𝑠𝑡𝑠\operatorname{Vor}_{\Omega,S\cup\{t\}}(s)=\operatorname{Vor}_{\Omega,S}(s)\cap% \operatorname{Vor}_{\Omega,\{s,t\}}(s)roman_Vor start_POSTSUBSCRIPT roman_Ω , italic_S ∪ { italic_t } end_POSTSUBSCRIPT ( italic_s ) = roman_Vor start_POSTSUBSCRIPT roman_Ω , italic_S end_POSTSUBSCRIPT ( italic_s ) ∩ roman_Vor start_POSTSUBSCRIPT roman_Ω , { italic_s , italic_t } end_POSTSUBSCRIPT ( italic_s ), and insert VorΩ,S(t)=sSVorΩ,{s,t}(t)subscriptVorΩ𝑆𝑡subscript𝑠𝑆subscriptVorΩ𝑠𝑡𝑡\operatorname{Vor}_{\Omega,S}(t)=\bigcap_{s\in S}\operatorname{Vor}_{\Omega,\{% s,t\}}(t)roman_Vor start_POSTSUBSCRIPT roman_Ω , italic_S end_POSTSUBSCRIPT ( italic_t ) = ⋂ start_POSTSUBSCRIPT italic_s ∈ italic_S end_POSTSUBSCRIPT roman_Vor start_POSTSUBSCRIPT roman_Ω , { italic_s , italic_t } end_POSTSUBSCRIPT ( italic_t ) into the Voronoi diagram. Our software runs in quadratic time in terms of the number of sites and vertices of ΩΩ\Omegaroman_Ω and is available at https://github.com/caesardai/Voronoi_In_Hilbert/tree/main/src.

6 Concluding Remarks

In this paper, we presented an analysis of dynamic Voronoi diagrams in the Hilbert metric and presented software for the creation of such diagrams. As discussed in the introduction, the Hilbert metric is useful in the study of quantum information theory [19], real analysis [13], optimization [6], and network analysis [7]. Research in these fields may benefit from further extensions of algorithmic results in Euclidean to Hilbert geometry.

References

  • [1] Ahmed Abdelkader, Sunil Arya, Guilherme Dias da Fonseca, and David M. Mount. Approximate nearest neighbor searching with non-euclidean and weighted distances. In Proc. 30th Annu. ACM-SIAM Sympos. Discrete Algorithms, pages 355–372, 2019. doi:10.1137/1.9781611975482.23.
  • [2] Rahul Arya, Sunil Arya, Guilherme Dias da Fonseca, and David M. Mount. Optimal bound on the combinatorial complexity of approximating polytopes. In Proc. 31st Annu. ACM-SIAM Sympos. Discrete Algorithms, pages 786–805, 2020. doi:10.1137/1.9781611975994.48.
  • [3] Sunil Arya, Guilherme Dias da Fonseca, and David M. Mount. Near-optimal ε𝜀\varepsilonitalic_ε-kernel construction and related problems. In Proc. 33rd Internat. Sympos. Comput. Geom., pages 10:1–15, 2017.
  • [4] Sunil Arya, Guilherme Dias da Fonseca, and David M. Mount. On the combinatorial complexity of approximating polytopes. Discrete Comput. Geom., 58(4):849–870, 2017. doi:10.1007/s00454-016-9856-5.
  • [5] Yongxin Chen, Tryphon Georgiou, and Michele Pavon. Optimal mass transport over bridges. In Internat. Conf. Geom. Sci. of Inf., pages 77–84. Springer, 2015.
  • [6] Yongxin Chen, Tryphon Georgiou, and Michele Pavon. Entropic and displacement interpolation: a computational approach using the hilbert metric. SIAM J. Appl. Math., 76(6):2375–2396, 2016.
  • [7] Yongxin Chen, Tryphon T Georgiou, Michele Pavon, and Allen Tannenbaum. Relaxed schrödinger bridges and robust network routing. IEEE Trans. Contr. Netw. Sys., 7(2):923–931, 2019.
  • [8] Friedrich Eisenbrand, Nicolai Hähnle, and Martin Niemeier. Covering cubes and the closest vector problem. In Proc. 27th Annu. Sympos. Comput. Geom., pages 417–423, 2011.
  • [9] Friedrich Eisenbrand and Moritz Venzin. Approximate CVPs in time 20.802nsuperscript20.802𝑛2^{0.802n}2 start_POSTSUPERSCRIPT 0.802 italic_n end_POSTSUPERSCRIPT. Journal of Computer and System Sciences, 2021.
  • [10] Auguste H. Gezalyan and David M. Mount. Voronoi diagrams in the Hilbert metric. In Proc. 39th Internat. Sympos. Comput. Geom., pages 35:1–35:16, 2023. doi:10.4230/LIPIcs.SoCG.2023.35.
  • [11] D. Hilbert. Ueber die gerade linie als kürzeste verbindung zweier punkte. Mathematische Annalen, 46:91–96, 1895.
  • [12] Bas Lemmens and Roger Nussbaum. Nonlinear Perron-Frobenius Theory, volume 189. Cambridge University Press, 2012.
  • [13] Bas Lemmens and Roger Nussbaum. Birkhoff’s version of hilbert’s metric and its applications in analysis. arXiv preprint arXiv:1304.7921, 2013.
  • [14] Márton Naszódi and Moritz Venzin. Covering convex bodies and the closest vector problem. arXiv preprint arXiv:1908.08384, 2019.
  • [15] Frank Nielsen and Laetitia Shao. On balls in a Hilbert polygonal geometry (multimedia contribution). In Proc. 33rd Internat. Sympos. Comput. Geom., pages 67:1–67:4, 2017. doi:10.4230/LIPIcs.SoCG.2017.67.
  • [16] Athanase Papadopoulos and Marc Troyanov. From Funk to Hilbert geometry. arXiv preprint arXiv:1406.6983, 2014.
  • [17] Athanase Papadopoulos and Marc Troyanov. From Funk to Hilbert geometry. In Handbook of Hilbert geometry, volume 22 of IRMA Lectures in Mathematics and Theoretical Physics, pages 33–68. European Mathematical Society Publishing House, 2014. doi:10.4171/147-1/2.
  • [18] Gabriel Peyré, Marco Cuturi, et al. Computational optimal transport: With applications to data science. Foundations and Trends® in Machine Learning, 11(5-6):355–607, 2019.
  • [19] David Reeb, Michael J Kastoryano, and Michael M Wolf. Hilbert’s projective metric in quantum information theory. Journal of mathematical physics, 52(8):082201, 2011.
  • [20] Thomas Rothvoss and Moritz Venzin. Approximate CVP in time 20.802nsuperscript20.802𝑛2^{0.802n}2 start_POSTSUPERSCRIPT 0.802 italic_n end_POSTSUPERSCRIPT – now in any norm! arXiv preprint arXiv:2110.02387, 2021.