Пример #1
0
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))
Пример #2
0
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
Пример #3
0
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)