示例#1
0
 def generatePaths(self, layers):
     color1 = 0 #random.random()
     color2 = 0.5
     color3 = 1
     modelPlotter = vtkLinePlotter()
     supportPlotter = vtkLinePlotter()
     basePlotter = vtkLinePlotter()
     base = False
     support = False  
     for layer in layers: # layer
         for path in layer.getModelPaths(): # path
             vectors = path.read()
             for i in range(len(vectors) - 1): # vector
                 vec1 = [0, 0, 0]
                 vec2 = [0, 0, 0]
                 vec1[0] = vectors[i].x
                 vec1[1] = vectors[i].y
                 vec1[2] = vectors[i].z
                 vec2[0] = vectors[i + 1].x
                 vec2[1] = vectors[i + 1].y
                 vec2[2] = vectors[i + 1].z
                 modelPlotter.PlotLine(vec1, vec2, color1)
         for path in layer.getSupportPaths(): # path
             vectors = path.read()
             for i in range(len(vectors) - 1): # vector
                 vec1 = [0, 0, 0]
                 vec2 = [0, 0, 0]
                 vec1[0] = vectors[i].x
                 vec1[1] = vectors[i].y
                 vec1[2] = vectors[i].z
                 vec2[0] = vectors[i + 1].x
                 vec2[1] = vectors[i + 1].y
                 vec2[2] = vectors[i + 1].z
                 supportPlotter.PlotLine(vec1, vec2, color2)
                 support = True
         for path in layer.getBasePaths(): # path
             vectors = path.read()
             for i in range(len(vectors) - 1): # vector
                 vec1 = [0, 0, 0]
                 vec2 = [0, 0, 0]
                 vec1[0] = vectors[i].x
                 vec1[1] = vectors[i].y
                 vec1[2] = vectors[i].z
                 vec2[0] = vectors[i + 1].x
                 vec2[1] = vectors[i + 1].y
                 vec2[2] = vectors[i + 1].z
                 basePlotter.PlotLine(vec1, vec2, color3)
                 base = True
     polydata, actor = modelPlotter.CreateActor()
     self._slice_vtkpolydata = polydata
     self._slice_actor = actor
     if support:
         polydata, actor = supportPlotter.CreateActor()
         self._support_vtkpolydata = polydata
         self._support_actor = actor
     if base:
         polydata, actor = basePlotter.CreateActor()
         self._base_vtkpolydata = polydata
         self._base_actor = actor
示例#2
0
def dibuixa(polygon, z=0, color=0.5):
    plot = vtkLinePlotter()
    contour = polygon.exterior.xy
    x = contour[0]
    y = contour[1]
    for i in range(len(x) - 1):
        vec1 = [0, 0, z]
        vec2 = [0, 0, z]
        vec1[0] = x[i]
        vec1[1] = y[i]
        vec2[0] = x[i + 1]
        vec2[1] = y[i + 1]
        plot.PlotLine(vec1, vec2, color)
        # color += 1.0/len(points)

    holes = polygon.interiors
    if len(holes) > 0:
        for hole in holes:
            x = hole.xy[0]
            y = hole.xy[1]
            for i in range(len(x) - 1):
                vec1 = [0, 0, z]
                vec2 = [0, 0, z]
                vec1[0] = x[i]
                vec1[1] = y[i]
                vec2[0] = x[i + 1]
                vec2[1] = y[i + 1]
                plot.PlotLine(vec1, vec2, color)
    polydata, actor = plot.CreateActor()
    return actor
示例#3
0
def plot3d(x, y, z=0):
    plot = vtkLinePlotter()
    color = 0
    for i in range(len(x) - 1):
        vec1 = [0, 0, z]
        vec2 = [0, 0, z]
        vec1[0] = x[i]
        vec1[1] = y[i]
        vec2[0] = x[i + 1]
        vec2[1] = y[i + 1]
        plot.PlotLine(vec1, vec2, color)
        color += 1.0 / len(x)
    polydata, actor = plot.CreateActor()
    return actor