kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
			
			
			
				main
			
			
		
		
							rodzic
							
								
									44a7ed7d9d
								
							
						
					
					
						commit
						97db538078
					
				|  | @ -0,0 +1,38 @@ | |||
| """ | ||||
| Alexandre B A Villares http://abav.lugaralgum.com - GPL v3  | ||||
| 
 | ||||
| A helper for the Processing gifAnimation library (https://github.com/jordanorelli) | ||||
| ported to Processing 3 by 01010101 (https://github.com/01010101) | ||||
| Download the library from https://github.com/01010101/GifAnimation/archive/master.zip | ||||
| This helper was inspired by an example by Art Simon https://github.com/APCSPrinciples/AnimatedGIF/ | ||||
| 
 | ||||
| Put  at the start of your sketch: | ||||
|    add_library('gifAnimation') | ||||
|    from gif_exporter import gif_export | ||||
| and at the end of draw(): | ||||
|     gif_export(GifMaker) | ||||
| """ | ||||
| 
 | ||||
| def gif_export(GifMaker,             # gets a reference to the library | ||||
|                filename="exported",  # .gif will be added | ||||
|                repeat=0,             # 0 makes it an "endless" animation | ||||
|                quality=128,          # quality range 0 - 255 | ||||
|                delay=170,            # this is quick | ||||
|                finish=False):            # 0 will stop on keyPressed or frameCount >= 100000 | ||||
|     global gifExporter | ||||
|     try: | ||||
|         gifExporter | ||||
|     except NameError: | ||||
|         gifExporter = GifMaker(this, filename + ".gif") | ||||
|         gifExporter.setRepeat(repeat) | ||||
|         gifExporter.setQuality(quality) | ||||
|         gifExporter.setDelay(delay) | ||||
|         gif_export._frame = frameCount | ||||
|         print("gif start") | ||||
| 
 | ||||
|     gifExporter.addFrame() | ||||
|     if finish: | ||||
|         gifExporter.finish() | ||||
|         print("gif saved") | ||||
|         del(gifExporter) | ||||
|   | ||||
										
											Plik binarny nie jest wyświetlany.
										
									
								
							| Po Szerokość: | Wysokość: | Rozmiar: 3.4 MiB | 
|  | @ -0,0 +1,79 @@ | |||
| # Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day | ||||
| SKETCH_NAME = "s197b"  # 20180713 | ||||
| OUTPUT = ".gif" | ||||
| 
 | ||||
| from gif_export_wrapper import * | ||||
| add_library('gifAnimation') | ||||
| 
 | ||||
| cycles = 5 | ||||
| hatches = [] | ||||
| global_rot = 0 | ||||
| noise_scale = 0.04 | ||||
| 
 | ||||
| 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(00))) | ||||
| 
 | ||||
| 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) | ||||
|             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) | ||||
|                     wx = cos(global_rot + i/10. + j/10.)  | ||||
|                     #wy = sin(global_rot ) | ||||
|                     d = s * wx # * 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) | ||||
|     ) | ||||
		Ładowanie…
	
		Reference in New Issue
	
	 Alexandre B A Villares
						Alexandre B A Villares