def divide_edges(gph, divs=4): ret = [] t_vals = (Interval() / divs)[1:] for spt, epts in gph.edges.items(): for ept in epts: ret.extend([Point.interpolate(spt, ept, t) for t in t_vals]) return ret """ SpatialGraph Inflation Routine Constructs and successively divides a SpatialGraph, reconstructing its edges based on proximity at each step. """ point_cloud = [Point.random(Interval(0, 10)) for n in range(4)] graph = SpatialGraph(point_cloud) add_proximity_connections(graph) count = 3 for n in range(count): inflated_graph = SpatialGraph(graph.nodes) for pt in divide_edges(graph): inflated_graph.add_node(pt) add_proximity_connections(inflated_graph) graph = inflated_graph for spt, epts in graph.edges.items(): outie.put([Segment(spt, ept) for ept in epts]) outie.draw()
import decodes from decodes.core import * from decodes.extensions.graph import SpatialGraph edges = [[Point(), Point(0, 1)], [Point(0, 1), Point(1, 1)], [Point(1, 1), Point()]] gph = SpatialGraph([Point()]) for spt, ept in edges: gph.add_edge(spt, ept) print gph
import decodes from decodes.core import * from decodes.extensions.graph import SpatialGraph edges = [ [Point(),Point(0,1)], [Point(0,1),Point(1,1)], [Point(1,1),Point()] ] gph = SpatialGraph([Point()]) for spt,ept in edges: gph.add_edge(spt,ept) print gph
ret = [] t_vals = (Interval() / divs)[1:] for spt, epts in gph.edges.items(): for ept in epts: ret.extend([Point.interpolate(spt, ept, t) for t in t_vals]) return ret """ SpatialGraph Inflation Routine Constructs and successively divides a SpatialGraph, reconstructing its edges based on proximity at each step. """ point_cloud = [Point.random(Interval(0, 10)) for n in range(4)] graph = SpatialGraph(point_cloud) add_proximity_connections(graph) count = 3 for n in range(count): inflated_graph = SpatialGraph(graph.nodes) for pt in divide_edges(graph): inflated_graph.add_node(pt) add_proximity_connections(inflated_graph) graph = inflated_graph for spt, epts in graph.edges.items(): outie.put([Segment(spt, ept) for ept in epts]) outie.draw()