Introduction

The open source book Geometry with an Introduction to Cosmic Topology by Michael P. Hitchman is a fascinating introduction to non-Euclidean geometries following the Erlangen program. The approach in the book relies heavily on Möbius transformations and their effects on clines.

This repo aims to provide an implementation of the clines described in the book. Currently only numerical treatment is implemented but the plan is to add symbolic treatment as well.

What is a Cline?

A cline is a mathematical concept (see Definition 3.2.3) that unifies circles and lines in the complex plane under a single equation:

\[c z \bar{z} + \alpha z + \bar{\alpha} \bar{z} + d = 0\]

where:

  • \(c\) and \(d\) are real numbers

  • \(\alpha\) is a complex number

  • \(\bar{z}\) and \(\bar{\alpha}\) represent the complex conjugates of \(z\) and \(\alpha\)

This geometric structure represents:

  • A circle if \(|\alpha|^2 > c \cdot d\) and \(c \neq 0\)

  • A point if \(|\alpha|^2 = c \cdot d\) and \(c \neq 0\)

  • A line if \(c = 0\)

  • No geometric object if \(|\alpha|^2 < c \cdot d\) and \(c \neq 0\)

Visual Representation

Below is a visualization showing examples of clines in the complex plane:

(Source code, png, hires.png, pdf)

_images/introduction-1.png

Features

The Cline library provides:

  1. Unified Representation: Represent both circles and lines with a single class

  2. Multiple Construction Methods:

    • From direct equation parameters

    • From three points

    • From circle center and radius

    • From two points (for a line)

  3. Easy Access to Properties:

    • Circle center and radius

    • Line normal and direction vectors

    • Distance from origin

  4. Visualization: Plot circles and lines using Matplotlib

Why Use Clines?

Clines provide several advantages:

  • Unified Treatment: Algorithms can work with both circles and lines

  • Transformation Properties: Clines transform elegantly under Möbius transformations

  • Algebraic Simplicity: Representing complex geometric relationships with simple equati