kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
		
			
				
	
	
		
			71 wiersze
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			71 wiersze
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
| # Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day
 | |
| SKETCH_NAME = "s087"  # 180328
 | |
| 
 | |
| add_library('gifAnimation')
 | |
| from gif_exporter import gif_export
 | |
| from slider import Slider
 | |
| from shapes import *
 | |
| 
 | |
| A = Slider(1, 40, 10, 'q', 'a')
 | |
| B = Slider(1, 40, 10, 'w', 's')
 | |
| C = Slider(1, 40, 10, 'e', 'd')
 | |
| D = Slider(1, 40, 10, 'r', 'f')
 | |
| 
 | |
| SHAPES = [ellipse,
 | |
|           rect,
 | |
|           exes,
 | |
|           losang]
 | |
| 
 | |
| COLORS = [color(0), color(0), color(0),
 | |
|           color(255), color(255),
 | |
|           color(200, 0, 100),
 | |
|           ]
 | |
| 
 | |
| def setup():
 | |
|     size(600, 600, P2D)
 | |
|     rectMode(CENTER)
 | |
| 
 | |
|     A.position(40, height - 70)
 | |
|     B.position(40, height - 30)
 | |
|     C.position(width - 140, height - 70)
 | |
|     D.position(width - 140, height - 30)
 | |
| 
 | |
| def draw():
 | |
|     background(200)
 | |
|     noFill()
 | |
| 
 | |
|     a = int(A.val)  # number of elements
 | |
|     b = int(B.val)  # size of elements
 | |
|     c = int(C.val)  # space between elements
 | |
|     d = int(D.val)  # number of grids
 | |
| 
 | |
|     randomSeed(int(d * 100))  # a different random seed
 | |
| 
 | |
|     for i in range(d):
 | |
|         tam = a * c
 | |
|         x = int(random(width - tam) / c) * c
 | |
|         y = int(random(height - tam) / c) * c
 | |
|         stroke(rnd_choice(COLORS))
 | |
|         strokeWeight(int(random(1, 3)))
 | |
|         random_a = rnd_choice(range(1, a + 1))
 | |
|         grid(x, y, random_a, b, c, rnd_choice(SHAPES))
 | |
| 
 | |
|     # uncomment next lines to export GIF
 | |
|     # if not frameCount % 30:
 | |
|     #     gif_export(GifMaker,
 | |
|     #                frames=2000,
 | |
|     #                delay=500,
 | |
|     #                filename=SKETCH_NAME)
 | |
| 
 | |
|     # Draws sliders and checks for mouse dragging or keystrokes
 | |
|     Slider.update_all()
 | |
| 
 | |
| def grid(x, y, num, size_, space, func):
 | |
|     for i in range(x, x + num * space, space):
 | |
|         for j in range(y, y + num * space, space):
 | |
|             func(i, j, size_, size_)
 | |
| 
 | |
| def rnd_choice(collection):
 | |
|     i = int(random(len(collection)))
 | |
|     return collection[i]
 |