给定多面体的表面的三角剖分p
,请计算其Euler-Poincaré-Characteristic χ(p) = V-E+F
,其中V
的数量是顶点E
的数量,边F
的数量和面的数量。
细节
顶点被枚举为1,2,...,V
。三角剖分以列表形式给出,其中每个条目都是一个面的顶点的列表,以顺时针或逆时针顺序给出。
尽管有名称,但三角剖分还可以包含具有3个以上边的面。可以假定这些面是简单连接的,这意味着可以使用一个闭合的非自相交环路绘制每个面的边界。
例子
四面体:这个四面体是凸面的,具有凸面χ = 2
。可能的三角剖分是
[[1,2,3], [1,3,4], [1,2,4], [2,3,4]]
立方体:这个立方体是凸的并且具有χ = 2
。可能的三角剖分是
[[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]]
甜甜圈:这种甜甜圈/环形形状具有χ = 0
。可能的三角剖分是
[[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]]
双甜甜圈:这种双甜甜圈应该有χ = -2
。它是通过使用上面两个甜甜圈的副本[1,2,5,4]
并将第一个甜甜圈的侧面[1,3,6,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], [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]]
(使用此Haskell程序验证的示例。)