Esempio n. 1
0
 def plot(self):
     from compas.plotters import MeshPlotter
     plotter = MeshPlotter(self)
     plotter.draw_vertices()
     plotter.draw_edges()
     plotter.draw_faces()
     plotter.show()
Esempio n. 2
0
 def plot(self):
     from compas.plotters import MeshPlotter
     plotter = MeshPlotter(self, figsize=(12, 8), tight=True)
     vertexcolor = {}
     vertexcolor.update({
         key: '#00ff00'
         for key in self.vertices_where({'is_fixed': True})
     })
     vertexcolor.update({
         key: '#0000ff'
         for key in self.vertices_where({'is_external': True})
     })
     vertexcolor.update({
         key: '#ff0000'
         for key in self.vertices_where({'is_anchor': True})
     })
     plotter.draw_vertices(facecolor=vertexcolor)
     plotter.draw_edges(keys=list(self.edges_where({'is_edge': True})))
     plotter.draw_faces(keys=list(self.faces_where({'is_loaded': True})))
     plotter.show()
vertexcolor = {}
vertexcolor.update(
    {key: '#00ff00'
     for key in form.vertices_where({'is_fixed': True})})
vertexcolor.update(
    {key: '#0000ff'
     for key in form.vertices_where({'is_external': True})})
vertexcolor.update(
    {key: '#ff0000'
     for key in form.vertices_where({'is_anchor': True})})

radius = {key: 0.05 for key in form.vertices()}
radius.update({key: 0.1 for key in form.vertices_where({'is_anchor': True})})

plotter.draw_vertices(facecolor=vertexcolor, radius=radius)

plotter.draw_edges(
    keys=list(form.edges_where({'is_edge': True})),
    color={key: '#00ff00'
           for key in form.edges_where({'is_external': True})},
    width={key: 2.0
           for key in form.edges_where({'is_external': True})})

plotter.draw_faces(facecolor={
    key: (1.0, 0.9, 0.9)
    for key in form.faces_where({'is_loaded': False})
}, )

plotter.show()
Esempio n. 4
0
# Main
# ==============================================================================

if __name__ == "__main__":

    import compas
    from compas.datastructures import Mesh
    from compas.plotters import MeshPlotter
    from compas.topology import mesh_quads_to_triangles

    mesh = Mesh.from_obj(compas.get('faces.obj'))

    mesh_quads_to_triangles(mesh)

    split = mesh.split_edge_tri(15, 20)

    facecolor = {
        key: '#cccccc' if key != split else '#ff0000'
        for key in mesh.vertices()
    }

    plotter = MeshPlotter(mesh, figsize=(10, 7))

    plotter.draw_vertices(text={key: key
                                for key in mesh.vertices()},
                          radius=0.2,
                          facecolor=facecolor)
    plotter.draw_faces(text={fkey: fkey for fkey in mesh.faces()})

    plotter.show()
Esempio n. 5
0
# ==============================================================================
# Main
# ==============================================================================

if __name__ == '__main__':

    from compas.datastructures import Mesh
    from compas.geometry import conforming_delaunay_triangle
    from compas.plotters import MeshPlotter

    points = [[2.994817685045075, 10.855606612493078, 0.0],
              [4.185204599300653, 9.527867361977242, 0.0],
              [4.414125159734419, 10.718254276232818, 0.0],
              [5.925000858597267, 9.344730913630228, 0.0],
              [8.900968144236211, 10.809822500406325, 0.0],
              [9.496161601363999, 8.566401008155429, 0.0],
              [7.710581229980631, 7.9254234389408875, 0.0],
              [7.847933566240888, 6.414547740078039, 0.0],
              [3.9104999267801377, 4.9036720412151915, 0.0],
              [5.2909301507195865, 6.342692886748852, 0.0]]
    segments = list(pairwise(list(range(len(points))) + [0]))

    vertices, faces = conforming_delaunay_triangle(points, segments)

    mesh = Mesh.from_vertices_and_faces(vertices, faces)

    plotter = MeshPlotter(mesh)
    plotter.draw_faces()
    plotter.draw_vertices(text='key')
    plotter.show()
Esempio n. 6
0
import compas
from compas.datastructures import Mesh
from compas.plotters import MeshPlotter

mesh = Mesh.from_obj(compas.get('faces.obj'))

plotter = MeshPlotter(mesh)

plotter.draw_vertices()
plotter.draw_faces(
    text={fkey: '%.1f' % mesh.face_area(fkey)
          for fkey in mesh.faces()})
plotter.draw_edges()

plotter.show()
import compas
from compas.datastructures import Mesh
from compas.plotters import MeshPlotter

mesh = Mesh.from_obj(compas.get('faces.obj'))

key = 12
nbrs = mesh.face_neighbours(key)

text = {nbr: str(nbr) for nbr in nbrs}
text[key] = str(key)

color = {nbr: '#cccccc' for nbr in nbrs}
color[key] = '#ff0000'

plotter = MeshPlotter(mesh)
plotter.draw_vertices()
plotter.draw_faces(text=text, facecolor=color)
plotter.draw_edges()
plotter.show()
Esempio n. 8
0
    for u, v in mesh.edges():
        lines.append({
            'start': mesh.vertex_coordinates(u, 'xy'),
            'end': mesh.vertex_coordinates(v, 'xy'),
            'color': '#cccccc',
            'width': 1.0,
        })

    smooth_centerofmass(vertices, adjacency, fixed=fixed, kmax=100)

    for key, attr in mesh.vertices(True):
        attr['x'] = vertices[key][0]
        attr['y'] = vertices[key][1]
        attr['z'] = vertices[key][2]

    plotter = MeshPlotter(mesh)

    plotter.draw_lines(lines)
    plotter.draw_vertices(
        text={key: mesh.vertex_degree(key)
              for key in mesh.vertices()},
        facecolor={key: '#ff0000'
                   for key in fixed})
    plotter.draw_edges()
    plotter.draw_faces(text={
        key: "{:.1f}".format(mesh.face_area(key))
        for key in mesh.faces()
    })

    plotter.show()
Esempio n. 9
0
    points = [mesh.vertex_coordinates(key) for key in mesh.vertices()]
    faces = delaunay_from_points(points)
    mesh = Mesh.from_vertices_and_faces(points, faces)

    dual = mesh_dual(mesh)

    # network = FaceNetwork.from_vertices_and_faces(points, faces)
    # network_find_faces(network)
    # dual = network_dual(network)

    lines = []
    for u, v in mesh.edges():
        lines.append({
            'start': mesh.vertex_coordinates(u, 'xy'),
            'end': mesh.vertex_coordinates(v, 'xy'),
            'color': '#cccccc',
            'width': 0.5
        })

    plotter = MeshPlotter(dual, figsize=(10, 7))

    plotter.draw_lines(lines)
    plotter.draw_vertices(facecolor='#eeeeee',
                          edgecolor='#000000',
                          radius=0.05)
    plotter.draw_faces(facecolor='#eeeeee', edgecolor='#eeeeee', text='key')
    plotter.draw_edges()

    plotter.show()
Esempio n. 10
0
import compas
from compas.datastructures import Mesh
from compas.plotters import MeshPlotter

mesh = Mesh.from_obj(compas.get('faces.obj'))

key = 17
nbrs = mesh.vertex_faces(key, ordered=True)

plotter = MeshPlotter(mesh)

plotter.draw_vertices(
    text={17: '17'},
    facecolor={17: '#ff0000'},
    radius=0.2
)
plotter.draw_faces(
    text={nbr: str(index) for index, nbr in enumerate(nbrs)},
    facecolor={nbr: '#cccccc' for nbr in nbrs}
)
plotter.draw_edges()
plotter.show()
Esempio n. 11
0
force = ForceDiagram.from_formdiagram(form)

horizontal(form, force, alpha=100)
scale = vertical_from_zmax(form, 3.0)

# ==============================================================================
# visualise
# ==============================================================================

z = form.get_vertices_attribute('z')
zmin = min(z)
zmax = max(z)

plotter = MeshPlotter(form, figsize=(12, 8), tight=True)

plotter.draw_vertices(
    keys=list(form.vertices_where({'is_external': False})),
    facecolor={key: i_to_black((attr['z'] - zmin) / (zmax - zmin)) for key, attr in form.vertices_where({'is_external': False}, True)},
    radius=0.1
)

plotter.draw_edges(
    keys=list(form.edges_where({'is_edge': True})),
    color={key: '#00ff00' for key in form.edges_where({'is_external': True})},
    width={key: 2.0 for key in form.edges_where({'is_external': True})}
)

plotter.draw_faces(keys=list(form.faces_where({'is_loaded': True})))

plotter.show()
Esempio n. 12
0
        [0, 0, 0],
        [1, 0, 0],
        [2, 0, 0],
        [3, 0, 0],
        [3, 1, 0],
        [0, 1, 0],
        [0, 0.5, 0],
        [0, 0.25, 0],
        [4, 0, 0],
        [4, 1, 0],
    ]

    faces = [[0, 1, 2, 3, 4, 5, 6, 7], [3, 8, 9, 4]]

    sources = [1, 2, 6, 7]

    mesh = Mesh.from_vertices_and_faces(vertices, faces)

    #quadrangulate_face(mesh, 0, sources)
    quadrangulate_mesh(mesh, sources)
    # for vkey in mesh.vertices():
    # 	print 'vkey', vkey, mesh.vertex_faces(vkey)
    # for fkey in mesh.faces():
    # 	print 'fkey', fkey, mesh.face_vertices(fkey)

    plotter = MeshPlotter(mesh)
    plotter.draw_vertices(text='key')
    plotter.draw_edges()
    plotter.draw_faces(text='key')
    plotter.show()
Esempio n. 13
0
import compas
from compas.datastructures import Mesh
from compas.plotters import MeshPlotter

mesh = Mesh.from_obj(compas.get('faces.obj'))

key, fkeys = mesh.insert_vertex(12, return_fkeys=True)

plotter = MeshPlotter(mesh)
plotter.draw_vertices(radius=0.15, text={key: str(key)})
plotter.draw_faces(text={fkey: fkey for fkey in fkeys})
plotter.show()