kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
		
			
				
	
	
		
			80 wiersze
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			80 wiersze
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
| # Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day
 | |
| SKETCH_NAME = "s196"  # 20180713
 | |
| OUTPUT = ".gif"
 | |
| 
 | |
| from gif_export_wrapper import *
 | |
| add_library('gifAnimation')
 | |
| 
 | |
| cycles = 5
 | |
| hatches = []
 | |
| global_rot = 0
 | |
| noise_scale = 0.035
 | |
| 
 | |
| def setup():
 | |
|     print_text_for_readme(SKETCH_NAME, OUTPUT)
 | |
|     size(500, 500, P2D)
 | |
|     blendMode(MULTIPLY)
 | |
|     noStroke()
 | |
|     
 | |
|     hatches.append(Hatch(color(0, 255, 255), # cian
 | |
|                          radians(275)))
 | |
|     hatches.append(Hatch(color(255, 0, 255), # magenta
 | |
|                          radians(45)))
 | |
|     hatches.append(Hatch(color(255, 255, 0), # yellow
 | |
|                          radians(90)))
 | |
| 
 | |
| def draw():
 | |
|     global global_rot
 | |
|     background(200)
 | |
| 
 | |
|     for i, h in enumerate(hatches):
 | |
|         h.plot()
 | |
| 
 | |
|     global_rot += 0.0314 
 | |
| 
 | |
|     if not frameCount % 5:
 | |
|         gif_export(GifMaker, filename=SKETCH_NAME)
 | |
| 
 | |
|     if global_rot > TWO_PI:
 | |
|         gif_export(GifMaker, finish=True)
 | |
|         noLoop()
 | |
| 
 | |
| 
 | |
| class Hatch():
 | |
| 
 | |
|     def __init__(self, c, rot):
 | |
|         self.n = width / 6
 | |
|         self.space = 10
 | |
|         l = self.n * self.space
 | |
|         self.x =  width  / 2
 | |
|         self.y = height  / 2 
 | |
|         self.rot = rot
 | |
|         self.c = c
 | |
|         #println((self.x, self.y, s))
 | |
| 
 | |
|     def plot(self):
 | |
|         with pushMatrix():
 | |
|             translate(self.x, self.y)
 | |
|             rotate(self.rot)
 | |
|             wx = cos(global_rot) * 2
 | |
|             wy = sin(global_rot) * 3
 | |
|             s, l = self.space, self.n * self.space
 | |
|             for i in range(1, self.n):
 | |
|                 for j in range(1, self.n):
 | |
|                     fill(self.c)
 | |
|                     d = 1.5 * s * noise(i * noise_scale - wx, j * noise_scale + wy)
 | |
|                     ellipse(
 | |
|                         s / 2 + s * i - l / 2. ,
 | |
|                         s / 2 + s * j - l / 2. ,
 | |
|                         d, d)
 | |
| 
 | |
| 
 | |
| 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)
 | |
|     )
 |