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
{#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
{#fig:orthocenter}
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
- there is a line for which for every poiny incident with .
- 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
- For each line, construct the two tangents and of its intersection points with the fundamental conic to that conic.
- 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
{#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
{#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