Cayley-Klein geometry

👋 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, and

  • A fundamental cone is defined by a pole/polar pair such that and .

  • 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 and .

Fundamental Cone with pole and polar

Fudanmental Cone with a pole and polar{#fig:F}

Examples

  • Let and

  • Hyperbolic geometry:

  • Elliptic geometry:

  • Euclidean geometry (degenerate conic):

  • psuedo-Euclidean geometry (degenerate conic):

]

Examples (cont'd)

  • Perspective view of Euclidean geometry (degenerate conic):
    • Let be the line of infinity.
    • Let and are two complex conjugate points on . Then
    • (outer product)

Orthogonality

  • A line is said to be perpendicular to a line if lies on , i.e., .

  • To find a perpendicular line of that passes through , join to the pole of , i.e., join(). We call this the altitude line of .

  • For duality, a point is said to be perpendicular to point if .

  • A similar definition can be given for altitude points.

  • Note that Euclidean geometry does not have the concept of the perpendicular point because every 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 called the orthocenter of the triangle.

  • Despite the name "center", the orthocenter may be outside a triangle.

  • Theorem 2. If the orthocenter of triangle is , then the orthocenter of triangle is .

An instance of orthocenter theorem

An instance of orthocenter theorem{#fig:orthocenter}

An instance of Theorem 2

An instance of Theorem 2{#fig:orthocenter2}

Involution

  • Involution is closely related to geometric reflection.

  • The defining property of an involution is that for every point , .

  • Theorem: Let be an involution. Then

    1. there is a line for which for every poiny incident with .
    2. there is a point for which for every line incident with .
  • We call the line the mirror and the point the center of the involution.

  • If is at the line of infinity (Euclidean Geometry), then we get an undistorted Euclidean line reflection on .

  • If we choose , then the fundamental cone is invariant.

Involution (cont'd)

  • Theorem: The point transformation matrix of the projective involution with center and mirror is given by

  • In other words, = .

🐍 Python Code

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}

Basic measurement

Quadrance and Spread for the general cases

  • Let .

  • .

  • .

  • The quadrance between points and is:

  • The spread between lines and is

  • Note: they are invariant to any projective transformations.

🐍 Python Code

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:
  • Elliptic:
  • Euclidean:

Measure the dispersion among points on the unit sphere

The usual way:

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

A better way:

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

  • (Compare with the sine law in Euclidean Geometry):

  • Theorem (Thales): Suppose that is a right triangle with . Then

  • Note: in some geometries, two lines being perpendicular does not imply they have a right angle ().

Triangle proportions

  • Theorem (Triangle proportions): Suppose is a point lying on the line . Define the quadrances and , and the spreads and . Then

Midpoint and Angle Bisector

  • There are two angle bisectors for two lines.
  • In general geometries, There are also two midpoints for two points.
  • Let be the midpoint of and .
  • Then = .
  • Let be the angle bisector of and .
  • Then = .
  • 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 be the line of infinity.
  • = = .
  • Then, the midpoint = .
  • One midpoint in fact lies on .

Constructing angle bisectors using a conic

  1. For each line, construct the two tangents and of its intersection points with the fundamental conic to that conic.
  2. The following lines are the two angle bisectors:
    • join(meet(), meet())
    • join(meet(), meet())

Remark: the tangents in elliptic geometry have complex coordinates. However, the angle bisectors are real objects again.

Constructing a pair of angle bisectors

Constructing a pair of angle bisectors{#fig:bisector}

Angle Bisector Theorem

  • Let , , be three lines, none of which is tangent to the fundamental cone.

  • Then one set of angle bisector are concurrent.

  • Furthermore, the points meet(), meet(), meet(*) are collinear.

An instance of complete angle bisector theorem

An instance of complete angle bisector theorem{#fig:bisectortheorem}

Midpoint theorem

  • Let , , be three points, none of which lies on the fundamental cone.

  • Then one set of midpoints , , _ are collinear.

  • Furthermore, the lines join(), join(), join(*) meet at a point.

backup

> http://melpon.org/wandbox/permlink/Rsn3c3AW7Ud8E1qX