def tcenter(poly): a = [] c = [] for vl in Polygon.TriStrip(poly): for i in range(len(vl) - 2): a.append(aTri(vl[i], vl[i + 1], vl[i + 2])) c.append(cTri(vl[i], vl[i + 1], vl[i + 2])) a = map(lambda x, y=reduce(add, a): x / y, a) return reduce(add, map(lambda i,j: i*j[0], a, c)),\ reduce(add, map(lambda i,j: i*j[1], a, c))
def triangulate2(points): if len(points) == 3: return (points, ) if len(points) == 4: return ((points[0], points[1], points[2]), (points[0], points[2], points[3])) import Polygon q = Polygon.Polygon(points) strips = Polygon.TriStrip(q) tri = [] for t in strips: for n in range(len(t) - 2): tri.append((t[n], t[n + 1], t[n + 2])) return tri
def tarea(poly): a = [] for vl in Polygon.TriStrip(poly): for i in range(len(vl) - 2): a.append(aTri(vl[i], vl[i + 1], vl[i + 2])) return reduce(add, a)