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)
 |