Skip to content

fatimp/EulerCharacteristic.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EulerCharacteristic.jl

CI

EulerCharacteristic.jl computes Euler characteristic of objects defined on two- or three dimensional regular grid (FIXME: elaborate on this).

Examples

According to this and this articles, the Euler characteristic for a closed surface is defined as χ = 2 - 2g where g is genus of that surface. For a surface with boundary this formula becomes χ = 2 - 2g - b where b is a number of connected components of the boundary. For a surface embedded in three-dimensional space plus its interior the Euler characteristic is equal to half of the Euler characteristic of that surface.

Here are some examples of Euler characteristic:

Object Description g (surface) b (surface) χ
disk A disk 0 1 1
disk A disk with a hole 0 2 0
disk A disk with two holes 0 3 -1
disk A ball (crossection shown) 0 0 2/2 = 1
disk A double torus with interior(crossection shown) 2 0 -2/2 = -1

Usage

There is euler_characteristic function in the package which takes a binary array and returns Euler characteristic. The value true counts as a vertex.

There is also EulerTracker type which is a subtype of AbstractArray and allows for fast recalculation of Euler characteristic when an element of EulerTracker is changed.

About

Euler characteristic on 2D and 3D mesh

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages