@window.event def on_init(): gl.glEnable(gl.GL_DEPTH_TEST) @window.event def on_key_press(key, modifiers): if key == app.window.key.SPACE: transform.reset() transform = PanZoom(OrthographicProjection(Position())) triangles = TriangleCollection("agg", transform=transform, color='shared') paths = PathCollection("agg", transform=transform, color='shared') paths["linewidth"] = 10 P = star() I = triangulate(P) n = 64 for i in range(n): c = i/float(n) d = i x,y = np.random.uniform(0,800,2) s = 25 triangles.append(P*s+(x,y,d), I, color=(0,0,0,.5)) paths.append(P*s+(x,y,(d-1)), closed=True, color=(0,0,0,1)) window.attach(paths["transform"]) window.attach(paths["viewport"]) app.run()
points /= np.linalg.norm(points, axis=1)[:, np.newaxis] # Voronoi cells sv = SphericalVoronoi(points, 2, (0, 0, 0)) sv.sort_vertices_of_regions() for region in sv.regions: z = np.random.uniform(0, 1) V = (1.0 + 0.1 * z) * sv.vertices[region] color = (0.75 + 0.25 * z, 0.25 + 0.75 * z, 0.25 + 0.75 * z, 1) I = np.zeros((len(V) - 2, 3)) I[:, 1] = 1 + np.arange(len(I)) I[:, 2] = 1 + I[:, 1] cells.append(V, I.ravel(), color=color) outlines.append(V, color=(0, 0, 0, 1), closed=True) V_ = [] for v1, v2 in zip(V[:-1], V[1:]): V_.extend(((0, 0, 0), v1, v2)) V_.extend(((0, 0, 0), V[-1], V[0])) V_ = np.array(V_) I = np.arange(len(V_)) cells.append(V_, I, color=color) outlines.append(V_, color=(0, 0, 0, 1), closed=True) window.attach(outlines["transform"]) window.attach(outlines["viewport"])
points /= np.linalg.norm(points, axis=1)[:, np.newaxis] # Voronoi cells sv = SphericalVoronoi(points, 2, (0, 0, 0)) sv.sort_vertices_of_regions() for region in sv.regions: z = np.random.uniform(0, 1) V = (1.0 + 0.1 * z) * sv.vertices[region] color = (.75 + .25 * z, .25 + .75 * z, .25 + .75 * z, 1) I = np.zeros((len(V) - 2, 3)) I[:, 1] = 1 + np.arange(len(I)) I[:, 2] = 1 + I[:, 1] cells.append(V, I.ravel(), color=color) outlines.append(V, color=(0, 0, 0, 1), closed=True) V_ = [] for v1, v2 in zip(V[:-1], V[1:]): V_.extend(((0, 0, 0), v1, v2)) V_.extend(((0, 0, 0), V[-1], V[0])) V_ = np.array(V_) I = np.arange(len(V_)) cells.append(V_, I, color=color) outlines.append(V_, color=(0, 0, 0, 1), closed=True) window.attach(outlines["transform"]) window.attach(outlines["viewport"]) app.run()