kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
		
			
				
	
	
		
			65 wiersze
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			65 wiersze
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
| # Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day
 | |
| SKETCH_NAME = "s188"  # 20180705
 | |
| OUTPUT = ".gif"
 | |
| 
 | |
| from gif_export_wrapper import *
 | |
| add_library('gifAnimation')
 | |
| 
 | |
| num_hatches = 10
 | |
| hatches = []
 | |
| global_rot = 0
 | |
| 
 | |
| def setup():
 | |
|     print_text_for_readme(SKETCH_NAME, OUTPUT)
 | |
|     size(500, 500)
 | |
|     # smooth(4)
 | |
|     for _ in range(num_hatches):
 | |
|         hatches.append(Hatch())
 | |
| 
 | |
| def draw():
 | |
|     global global_rot
 | |
|     background(200)
 | |
|     stroke(0)
 | |
|     for i, h in enumerate(hatches):
 | |
|         h.plot()
 | |
| 
 | |
|     global_rot += 0.05
 | |
| 
 | |
|     gif_export(GifMaker, filename=SKETCH_NAME)
 | |
| 
 | |
|     if global_rot > TWO_PI:
 | |
|         gif_export(GifMaker, finish=True)
 | |
|         noLoop()
 | |
| 
 | |
| 
 | |
| class Hatch:
 | |
| 
 | |
|     def __init__(self):
 | |
|         self.n = int(random(20, 60))
 | |
|         self.space = random(5, 15)
 | |
|         self.half = self.n * self.space / 2.
 | |
|         self.x = random(self.half, width - self.half)
 | |
|         self.y = random(self.half, height - self.half)
 | |
|         self.rot = random(TWO_PI)
 | |
| 
 | |
|     def plot(self):
 | |
|         with pushMatrix():
 | |
|             translate(self.x, self.y)
 | |
|             rotate(self.rot + global_rot)
 | |
|             s, l = self.space, self.half
 | |
|             #ellipse(0, 0, 5,5)
 | |
| 
 | |
|             for i in range(self.n):
 | |
|                 stroke(map(i, 0, self.n, 0, 255))
 | |
|                 line(s * i - l, -l, s * i - l, l)
 | |
| 
 | |
| 
 | |
| def print_text_for_readme(name, output):
 | |
|     println("""
 | |
| 
 | |
| 
 | |
| {1}: [code](https://github.com/villares/sketch-a-day/tree/master/{0}) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)]
 | |
| 
 | |
| """.format(name, name[1:], output)
 | |
|     )
 |