def plot(self): from compas.plotters import MeshPlotter plotter = MeshPlotter(self) plotter.draw_vertices() plotter.draw_edges() plotter.draw_faces() plotter.show()
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()
# 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()
# ============================================================================== # 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()
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()
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()
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()
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()
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()
[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()
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()