Given a triangulation of the surface of a polyhedron p
, calculate its Euler-Poincaré-Characteristic χ(p) = V-E+F
, where V
is the number of vertices, E
the number of edges and F
the number of faces.
Details
The vertices are enumerated as 1,2,...,V
. The triangulation is given as a list, where each entry is a list of the vertices of one face, given in clockwise or counterclockwise order.
Despite the name, the triangulation can also contain faces with more than 3 sides. The faces can assumed to be simply connected that means that the boundary of each faces can be drawn using one closed non-self-intersecting loop.
Examples
Tetrahedron: This tetrahedron is convex and has χ = 2
. A possible triangulation is
[[1,2,3], [1,3,4], [1,2,4], [2,3,4]]
Cube: This cube is convex and has χ = 2
. A possible triangulation is
[[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]]
Donut: This donut/toroid shape has χ = 0
. A possible triangulation is
[[1,2,5,4], [2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6]]
Double Donut: This double-donut should have χ = -2
. It is constructed by using two copies of the donut above and identifying the sides [1,2,5,4]
of the first one with the side [1,3,6,4]
of the second one.
[[2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6], [1,10,11,4], [10,11,5,2], [1,10,12,14], [10,2,13,12], [1,14,13,2], [4,14,13,5], [4,11,12,14], [11,12,13,5]]
(Examples verified using this Haskell program.)