Example #1
0
 def test_cells_between_poles_relative_to_sites_produced(self):
     total_desired_cells = 300
     increment = 20
     scale = 2
     repetitions = 3
     num_sites = list()
     num_sites_ratio = list()
     times = list()
     times_ratios = list()
     for r in range(repetitions):
         existing_points = list()
         t0 = timeit.default_timer()
         pdp.variable_row_poisson_discs_placement(existing_points, total_desired_cells)
         t1 = timeit.default_timer()
         t_diff = t1 - t0
         num_sites.append(len(existing_points))
         num_sites_ratio.append(len(existing_points)/float(total_desired_cells))
         times.append(t_diff)
         times_ratios.append(t_diff/float(total_desired_cells))
         #cells_between_poles += increment
         print("{0} of {1}: cells {2}, site {3}, time {4}, time ratio {5})".format(r+1, repetitions, total_desired_cells, len(existing_points), t_diff, t_diff/float(total_desired_cells)))
         total_desired_cells *= scale
     #print("Number of sites ({0} increment, ending {1}):".format(increment, cells_between_poles))
     print("Number of sites ({0}* scaling, ending {1}):".format(scale, total_desired_cells))
     print(num_sites)
     print("Sites per total_desired_cells:")
     print(num_sites_ratio)
     print("Generation times:")
     print(times)
     print("Time per total_desired_cells")
     print(times_ratios)
Example #2
0
    def __init__(self, seed=117, total_cells_desired=2000):
        random.seed(seed)
        print("World {}".format(seed))
        # Remember cell generation param as it may be needed when refining
        self.total_cells_desired = total_cells_desired
        # Generate random points distributed across sphere surface
        self.voronoi_sites = list()
        print("Generating voronoi sites...")
        self.voronoi_sites = pdp.variable_row_poisson_discs_placement(self.voronoi_sites, self.total_cells_desired)
        print("Total sites: {0}".format(len(self.voronoi_sites)))

        # Create voronoi diagram
        self.all_boundary_nodes = list()
        self.all_cells = list()
        self.all_centre_nodes = dict()
        self.all_edges = list()
        self.edges_by_location = dict()
        self.boundary_nodes_by_location = dict()

        # Uses self.voronoi_sites to populate
        self.generate_voronoi_nodes()
        print("Total boundary nodes: {0}".format(len(self.all_boundary_nodes)))