kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
			
			
			
				main
			
			
		
		
							rodzic
							
								
									2a5505f8f0
								
							
						
					
					
						commit
						b545a7f1e8
					
				|  | @ -0,0 +1,44 @@ | |||
| """ | ||||
| Alexandre B A Villares http://abav.lugaralgum.com - GPL v3  | ||||
| 
 | ||||
| A helper for the Processing gifAnimation library https://github.com/extrapixel/gif-animation/tree/3.0 | ||||
| Download from https://github.com/villares/processing-play/blob/master/export_GIF/unzip_and_move_to_libraries_GifAnimation.zip | ||||
| This helper was inspired by an example by Art Simon https://github.com/APCSPrinciples/AnimatedGIF/ | ||||
| 
 | ||||
| v2019_09_23 | ||||
| 
 | ||||
| # add at the start of your sketch: | ||||
|   add_library('gifAnimation') | ||||
|   from gif_animation_helper import gif_export | ||||
| # add at the end of draw(): | ||||
|   gif_export(GifMaker, "filename") | ||||
| """ | ||||
| 
 | ||||
| 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=100,          # quality range 0 - 255 | ||||
|                delay=50,            # this is quick | ||||
|                frames=0,             # 0 will stop on keyPressed or frameCount >= 100000 | ||||
|                finish=False):        # force stop | ||||
|     global gifExporter | ||||
|     try: | ||||
|         gifExporter | ||||
|     except NameError: | ||||
|         gifExporter = GifMaker(this, filename + ".gif") | ||||
|         gifExporter.setRepeat(repeat) | ||||
|         gifExporter.setQuality(quality) | ||||
|         gifExporter.setDelay(delay) | ||||
|         print("gif recording started") | ||||
| 
 | ||||
| 
 | ||||
|     gifExporter.addFrame() | ||||
| 
 | ||||
|     if (frames == 0 and keyPressed and key == "e" or | ||||
|         frames != 0 and frameCount >= frames): | ||||
|         finish = True | ||||
|                  | ||||
|     if finish: | ||||
|         gifExporter.finish() | ||||
|         print("gif saved, exit") | ||||
|         exit() | ||||
										
											Plik binarny nie jest wyświetlany.
										
									
								
							| Po Szerokość: | Wysokość: | Rozmiar: 4.1 MiB | 
|  | @ -0,0 +1,69 @@ | |||
| # inspired by https://twitter.com/beesandbombs/status/1247567578802855938?s=20 | ||||
| add_library('GifAnimation') | ||||
| from gif_animation_helper import gif_export | ||||
| 
 | ||||
| s_size = 50 | ||||
| COLORS = [color(255, 255, 0), | ||||
|           color(255, 0, 0), | ||||
|           color(0, 0, 255), | ||||
|           ] | ||||
| 
 | ||||
| def setup(): | ||||
|     size(400, 400) | ||||
|     blendMode(ADD)  # DIFFERENCE # ECVLUSION | ||||
|     rectMode(CENTER) | ||||
|     init() | ||||
| 
 | ||||
| def init(): | ||||
|     from itertools import product | ||||
|     global origin, target, current | ||||
|     origin = [] | ||||
|     target = [] | ||||
|     # grid = ((-1, -1), (-1, 0), (0, 0), (0, -1)) | ||||
|     grid = product(range(-2, 2), repeat=2) | ||||
| 
 | ||||
|     for p in grid: | ||||
|         h_size = s_size / 2 | ||||
|         off_x, off_y = h_size + p[0] * s_size, h_size + p[1] * s_size | ||||
|         for _ in COLORS: | ||||
|             origin.append((width / 2. + off_x, | ||||
|                            height / 2. + off_y, | ||||
|                            0, | ||||
|                            s_size)) | ||||
|             target.append((random(s_size, width - s_size), | ||||
|                            random(s_size, height - s_size), | ||||
|                            random(-HALF_PI, HALF_PI), | ||||
|                            random(s_size, s_size * 1.5))) | ||||
|     current = origin[:] | ||||
| 
 | ||||
| def draw(): | ||||
|     background(0) | ||||
|     noFill() | ||||
|     strokeWeight(5) | ||||
|     t = .5 - cos(radians(frameCount % 360)) / 2.  # map(mouseX, 0, width, 0, 1) | ||||
|     for i, origin_i in enumerate(origin): | ||||
|         stroke(COLORS[i % len(COLORS)]) | ||||
|         x, y, r, s = lerp_sequence(origin_i, target[i], t) | ||||
|         pushMatrix() | ||||
|         translate(x, y) | ||||
|         rotate(r) | ||||
|         circle(0, 0, s) | ||||
|         popMatrix() | ||||
| 
 | ||||
|     if frameCount < 360: | ||||
|         if frameCount % 2: | ||||
|            gif_export(GifMaker, "animation") | ||||
|     else: | ||||
|         gif_export(GifMaker, "animation", finish=True) | ||||
| 
 | ||||
|     # if frameCount % 360 == 0: | ||||
|     #     init() | ||||
| 
 | ||||
| def lerp_sequence(a, b, t): | ||||
|     c = [] | ||||
|     for c_a, c_b in zip(a, b): | ||||
|         c.append(lerp(c_a, c_b, t)) | ||||
|     return c | ||||
| 
 | ||||
| def keyPressed(): | ||||
|     init() | ||||
		Ładowanie…
	
		Reference in New Issue
	
	 villares
						villares