cfwen / universal-covering-space

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Universal Covering Space

Compute universal covering space for closed surfaces of genus >= 1. Universal covering space is very useful for theoretic argument and algorithm design. Some problems become trivial on universal covering space, such as find geodesic loops.

Algorithm Summary:

  • compute uniformization metric using Ricci flow
  • compute homotopy basis (in fact any cut graph that cuts surface into simplied-connected would be acceptable, but currently only homotopy basis supported)
  • slice surface open to obtain base domain
  • embed base domain onto Euclidean plane or Poincare disk
  • generate universal covering space by gluing copies of base domain under deck transformation

Example:

Below is a genus 2 surface and a homotopy basis on it (red loops)

alt text

Below left is the base domain embedded onto Poincare disk, right is generated universal covering space.

alt text

See demo.m for detailed steps to obtain these pictures.

Dependency:

About


Languages

Language:MATLAB 98.9%Language:M 1.1%