kopia lustrzana https://github.com/villares/sketch-a-day
41 wiersze
1.2 KiB
Python
41 wiersze
1.2 KiB
Python
from random import choice
|
|
from polys import poly, poly_arc_augmented
|
|
|
|
|
|
class Ensamble:
|
|
W, H = 700, 700
|
|
SPACING, MARGIN = 150, 150
|
|
rad_list = [60, 40, 20]
|
|
X_LIST = [x for x in range(MARGIN, 1 + W - MARGIN, SPACING)]
|
|
Y_LIST = [y for y in range(MARGIN, 1 + H - MARGIN, SPACING)]
|
|
|
|
def __init__(self):
|
|
self.create_list()
|
|
|
|
def __eq__(self, other):
|
|
return self.p_list == other.p_list
|
|
|
|
def plot(self):
|
|
rad_list = self.rad_list
|
|
noFill()
|
|
strokeWeight(10)
|
|
stroke(200, 0, 0)
|
|
strokeJoin(ROUND)
|
|
poly(self.p_list)
|
|
strokeWeight(4)
|
|
stroke(0, 0, 0)
|
|
for _ in rad_list:
|
|
poly_arc_augmented(self.p_list, rad_list)
|
|
rad_list[:] = [rad_list[-1]] + rad_list[:-1]
|
|
|
|
def create_list(self):
|
|
self.p_list = []
|
|
for r in self.rad_list:
|
|
new_p = PVector(choice(self.X_LIST),
|
|
choice(self.Y_LIST))
|
|
while new_p in self.p_list:
|
|
ellipse(new_p.x, new_p.y, 10, 10)
|
|
new_p = PVector(choice(self.X_LIST),
|
|
choice(self.Y_LIST))
|
|
self.p_list.append(new_p)
|