layout: true class: typo, typo-selection --- count: false class: nord-dark, middle, center # Cayley-Klein geometry ๐ @luk036 ๐จโ๐ป 2025-05-10 ๐ --- class: nord-light, middle, center ## Introduction ๐ --- ### Key points ๐ - The gravitational/electromagnetic force between two objects is inversely proportional to the square of their distance. โก - Distances and angles may be powerful for oriented measures. But quadrance and spread are more energy saving for non-oriented measures. ๐ - Euclidean Geometry is a degenerate case. ๐ฝ --- ### Cayley-Klein Geometry ๐ - Projective geometry can be further categorized by polarities. ๐ - Except for degenerate cases, $(A^\perp)^\perp = A$ and $(a^\perp)^\perp = a$ ๐ - A fundamental cone $\mathcal{F} = (\mathbf{A}, \mathbf{B})$ is defined by a pole/polar pair such that $[A^\perp] = \mathbf{A} \cdot [A]$ and $[a^\perp] = \mathbf{B} \cdot [a]$. ๐ง - To visualize Cayley-Klein Geometry, we may project the objects onto the 2D plane. ๐ฅ๏ธ - In hyperbolic geometry, the projection of the fundamental cone onto the 2D plane is a unit circle, the so-called _null circle_. The distance and angle measurement can be negative outside the null circle. โญ - We can think of Euclidean geometry as a hyperbolic geometry in which the null circle is expanded toward infinity. โพ๏ธ - In this section, we use the vector notation $p = [A]$ and $l = [a]$. ๐ --- ### Fundamental Cone with pole and polar ๐ป {#fig:F} --- ### ๐ Examples - Let $p = [x, y, z]$ and $l = [a, b, c]$ .pull-left[ - Hyperbolic geometry: ๐ - $\mathbf{A} \cdot p \equiv [x, y, -z]$ - $\mathbf{B} \cdot l \equiv [a, b, -c]$ - Elliptic geometry: ๐ - $\mathbf{A} \cdot p \equiv [x, y, z]$ - $\mathbf{B} \cdot l \equiv [a, b, c]$ ] .pull-right[ - Euclidean geometry (degenerate conic): ๐ - $\mathbf{A} \cdot p \equiv [0, 0, z]$ - $\mathbf{B} \cdot l \equiv [a, b, 0]$ - psuedo-Euclidean geometry (degenerate conic): โณ - $\mathbf{A} \cdot p \equiv [0, 0, z]$ - $\mathbf{B} \cdot l \equiv [a, -b, 0]$ ] --- ### ๐ Examples (cont'd) ๐ - Perspective view of Euclidean geometry (degenerate conic): ๐ - Let $l$ be the line of infinity. - Let $p$ and $q$ are two complex conjugate points on $l$. Then - $\mathbf{A} \equiv l \cdot l^{T}$ (outer product) - $\mathbf{B} \equiv p \cdot q^{T} + q \cdot p^{T}$ --- ### Orthogonality โฅ - A line $l$ is said to be perpendicular to a line $m$ if $l^\perp$ lies on $m$, i.e., $m^\mathsf{T} \mathbf{B} l = 0$. ๐ - To find a perpendicular line of $l$ that passes through $p$, join $p$ to the pole of $l$, i.e., join($p, l^\perp$). We call this the _altitude_ line of $l$. โฐ๏ธ - For duality, a point $p$ is said to be perpendicular to point $q$ if $q^\mathsf{T} \mathbf{A} p = 0$. โ๏ธ - A similar definition can be given for altitude points. โฌ๏ธ - Note that Euclidean geometry does not have the concept of the perpendicular point because every $p^\perp$ is the line of infinity. โพ๏ธ --- ### Orthocenter of triangle โณ - Theorem 1 (Orthocenter and ortholine). The altitude lines of a non-dual triangle meet at a unique point $O$ called the _orthocenter_ of the triangle. โก - Despite the name "center", the orthocenter may be outside a triangle. ๐ท๏ธ - Theorem 2. If the orthocenter of triangle $\{ABC\}$ is $O$, then the orthocenter of triangle $\{OBC\}$ is $A$. ๐ --- ### An instance of orthocenter theorem ๐ {#fig:orthocenter} --- ### An instance of Theorem 2 ๐ {#fig:orthocenter2} --- ### Involution ๐ - Involution is closely related to geometric reflection. ๐ฅ - The defining property of an involution $\tau$ is that for every point $p$, $\tau(\tau(p)) = p$. ๐ - Theorem: Let $\tau$ be an involution. Then 1. there is a line $m$ for which $\tau(p) = p$ for every poiny $p$ incident with $m$. 2. there is a point $o$ for which $\tau(l) = l$ for every line $l$ incident with $o$. - We call the line $m$ the _mirror_ and the point $o$ the _center_ of the involution. ๐ช - If $o$ is at the line of infinity (Euclidean Geometry), then we get an undistorted Euclidean line reflection on $m$. โพ๏ธ - If we choose $o = m^\perp$, then the fundamental cone is invariant. ๐ง --- ### Involution (cont'd) ๐ - Theorem: The point transformation matrix $T$ of the projective involution $\tau$ with center $o$ and mirror $m$ is given by $$ (o^\mathsf{T} m) \mathrm{I} - 2 o m^\mathsf{T}$$ - In other words, $T\cdot p$ = $(o^\mathsf{T} m) p - 2 (m^\mathsf{T} p) o$. --- ### ๐ Python Code ๐ป .font-sm.mb-xs[ ```Python from proj_geom import * def is_perpendicular(l, m): return m.incident(dual(l)) def altitude(p, l): return p * dual(l) def orthocenter(a1, a2, a3): t1 = altitude(a1, a2*a3) t2 = altitude(a2, a1*a3) return t1*t2 class reflect: def __init__(self, m, O): self.m = m self.O = O self.c = dot(m, O) def __call__(self, p): return pk_point(self.c, p, -2 * dot(self.m, p), self.O) ``` ] --- ### Mirror Image ๐ช {#looking-at-self} --- class: nord-light, middle, center ## Basic measurement ๐ --- ### Quadrance and Spread for the general cases - Let $\Omega(x) = x \cdot x^\perp$. - $\Omega(A) = A \cdot A^\perp = [A]^\mathsf{T} \mathbf{A} [A]$. - $\Omega(a) = a \cdot a^\perp = [a]^\mathsf{T} \mathbf{B} [a]$. - The **quadrance** $q(A, B)$ between points $A$ and $B$ is: $$q(A, B) \equiv \Omega(AB) / \Omega(A) \Omega(B)$$ - The **spread** $s(l, m)$ between lines $l$ and $m$ is $$s(l, m) \equiv \Omega(lm) / \Omega(l) \Omega(m)$$ - Note: they are invariant to any projective transformations. ๐ --- ### ๐ Python Code ๐ป .font-sm.mb-xs[ ```python import numpy as np from fractions import * def omega(l): return dot(l, dual(l)) def measure(a1, a2): omg = omega(a1*a2) if isinstance(omg, int): return Fraction(omg, omega(a1) * omega(a2)) else: return omg / (omega(a1) * omega(a2)) def quadrance(a1, a2): return measure(a1, a2) def spread(l1, l2): return measure(l1, l2) ``` ] --- ### versus raditional Distance and Angle ๐๐ - Hyperbolic: ๐ - $q(A, B ) = \sinh^2(d(A, B))$ - $s(l, m ) = \sin^2(\theta(l, m))$ - Elliptic: ๐ - $q(A, B ) = \sin^2(d(A, B))$ - $s(l, m ) = \sin^2(\theta(l, m))$ - Euclidean: ๐ - $q(A, B ) = d^2(A, B)$ - $s(l, m ) = \sin^2(\theta(l, m))$ --- ### Measure the dispersion among points on the unit sphere ๐ .font-sm.mb-xs[ .pull-left[ The usual way: ```python nsimplex, n = K.shape maxd = 0 mind = 1000 for k in range(nsimplex): p = X[K[k,:],:] for i in range(n-1): for j in range(i+1, n): dot = dot(p[i,:], p[j,:]) q = 1.0 - dot*dot d = arcsin(sqrt(q)) if maxd < d: maxd = d if mind > d: mind = d *dis = maxd - mind ``` ] .pull-right[ A better way: ```python nsimplex, n = K.shape maxd = 0 mind = 1000 for k in range(nsimplex): p = X[K[k,:],:] for i in range(n-1): for j in range(i+1, n): dot = dot(p[i,:], p[j,:]) q = 1.0 - dot*dot if maxq < q: maxq = q if minq > q: minq = q *dis = arcsin(sqrt(maxq)) \ - arcsin(sqrt(minq)) ``` ] ] --- ### Spread law and Thales Theorem ๐ - Spread Law $$\color{Green}{q_1/s_1 = q_2/s_2 = q_3/s_3}.$$ - (Compare with the sine law in Euclidean Geometry): $$\color{red}{d_1/\sin \theta_1 = d_2/\sin \theta_2 = d_3/\sin \theta_3}.$$ - Theorem (Thales): Suppose that $\{a_1 a_2 a_3\}$ is a right triangle with $s_3 = 1$. Then $$s_1 = q_1 / q_3 \quad \text{and} \quad s_2 = q_2 / q_3$$ - Note: in some geometries, two lines being perpendicular does not imply they have a right angle ($s = 1$). โ ๏ธ --- ### Triangle proportions โณ - Theorem (Triangle proportions): Suppose $d$ is a point lying on the line $a_1 a_2$. Define the quadrances $r_1 \equiv q(a_1, d)$ and $r_1 \equiv q(a_2, d)$, and the spreads $R_1 \equiv s(a_3 a_1, a_3 d)$ and $R_2 \equiv s(a_3 a_2, a_3 d)$. Then $$R_1/R_2 = (s_1/s_2)(r_1/r_2) = (q_1/q_2)(r_1/r_2).$$ --- ### Midpoint and Angle Bisector โ๏ธ - There are two angle bisectors for two lines. ๐ - In general geometries, There are also two midpoints for two points. โ๏ธ - Let $r$ be the midpoint of $p$ and $q$. - Then $r$ = $\sqrt{\Phi(p)} q \pm \sqrt{\Phi(q)} p$. - Let $b$ be the angle bisector of $l$ and $m$. - Then $b$ = $\sqrt{\Phi(m)} l \pm \sqrt{\Phi(l)} m$. - Note: - The midpoint could be irrational in general. โ - The midpoint could even be complex, even both points are real. โ - The bisectors of two lines are perpendicular. โฅ - In Euclidean geometry, the other midpoint is on the line of infinity. โพ๏ธ --- ### Midpoint in Euclidean geometry ๐ - Let $l$ be the line of infinity. - $\mathbf{A} \equiv l \cdot l^{T}$ - $\Phi(p)$ = $p^\mathsf{T} \mathbf{A} p$ = $(p^\mathsf{T} l)^2$. - Then, the midpoint $r$ = $(q^\mathsf{T} l) p \pm (p^\mathsf{T} l) q$. - One midpoint $(q^\mathsf{T} l) p - (p^\mathsf{T} l) q$ in fact lies on $l$. --- ### Constructing angle bisectors using a conic ๐ ๏ธ 1. For each line, construct the two tangents $(t_f^1, t_f^2)$ and $(t_g^1, t_g^2)$ of its intersection points with the fundamental conic to that conic. 2. The following lines are the two angle bisectors: - join(meet($t_f^1, t_g^1$), meet($t_f^2, t_g^2$)) - join(meet($t_f^1, t_g^2$), meet($t_f^2, t_g^1$)) > Remark: the tangents in elliptic geometry have complex coordinates. However, the angle bisectors are real objects again. ๐ --- ### Constructing a pair of angle bisectors ๐ {#fig:bisector} --- ### Angle Bisector Theorem ๐ - Let $a$, $b$, $c$ be three lines, none of which is tangent to the fundamental cone. - Then one set of angle bisector $m^1_{ab}, m^1_{bc}, m^1_{ac}$ are concurrent. โก - Furthermore, the points meet($m^2_{ab}, c$_), meet($m^2_{bc}, a$_), meet($m^2*{ac}, b$*) are collinear. ๐ --- ### An instance of complete angle bisector theorem ๐ {#fig:bisectortheorem} --- ### Midpoint theorem โ๏ธ - Let $p$, $q$, $r$ be three points, none of which lies on the fundamental cone. - Then one set of midpoints $m^1_{pq}$_, $m^1_{qr}$_, $m^1_{pr}$\_ are collinear. ๐ - Furthermore, the lines join($m^2_{pq}, r$_), join($m^2_{qr}, p$_), join($m^2*{pr}, q$*) meet at a point. โก --- count: false class: nord-dark, middle, center # Q&A ๐ค --- ### backup ๐พ ```terminal > http://melpon.org/wandbox/permlink/Rsn3c3AW7Ud8E1qX ```