23 lines
754 B
Text
23 lines
754 B
Text
def setup():
|
|
size(500, 500)
|
|
generate_voronoi_diagram(width, height, 25)
|
|
saveFrame("VoronoiDiagram.png")
|
|
|
|
def generate_voronoi_diagram(w, h, num_cells):
|
|
nx, ny, nr, ng, nb = [], [], [], [], []
|
|
for i in range(num_cells):
|
|
nx.append(int(random(w)))
|
|
ny.append(int(random(h)))
|
|
nr.append(int(random(256)))
|
|
ng.append(int(random(256)))
|
|
nb.append(int(random(256)))
|
|
for y in range(h):
|
|
for x in range(w):
|
|
dmin = dist(0, 0, w - 1, h - 1)
|
|
j = -1
|
|
for i in range(num_cells):
|
|
d = dist(0, 0, nx[i] - x, ny[i] - y)
|
|
if d < dmin:
|
|
dmin = d
|
|
j = i
|
|
set(x, y, color(nr[j], ng[j], nb[j]))
|