kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			Update sketch_2020_03_05a.pyde
							rodzic
							
								
									ffe4e69fd9
								
							
						
					
					
						commit
						a2192a1da0
					
				|  | @ -1,15 +1,14 @@ | |||
| # add_library('GifAnimation') | ||||
| # from gif_animation_helper import gif_export | ||||
| add_library('GifAnimation') | ||||
| from gif_animation_helper import gif_export | ||||
| 
 | ||||
| from arcs import * | ||||
| 
 | ||||
| many_arrows = [] | ||||
| num_arrows, num_transitions = 3, 4 | ||||
| num_arrows, num_transitions = 5, 3 | ||||
| i, t = 0, 0 | ||||
| 
 | ||||
| def setup(): | ||||
|     size(400, 400) | ||||
|     # colorMode(HSB) | ||||
|     strokeJoin(ROUND) | ||||
|     frameRate(30) | ||||
|     smooth(8) | ||||
|  | @ -27,7 +26,8 @@ def create_arrows(): | |||
| 
 | ||||
| def draw(): | ||||
|     global t, i | ||||
|     background(200) | ||||
|     colorMode(RGB) | ||||
|     background(235, 230, 235) | ||||
|     if t <= width: | ||||
|         tt = map(t, 0, width, 0, 1) | ||||
|     else: | ||||
|  | @ -37,34 +37,29 @@ def draw(): | |||
|     for a, b in zip(ini_arrows, fin_arrows): | ||||
|         mid_arrow = lerp_arrow(a, b, tt) | ||||
|         rad, start, sweep, thick, h = mid_arrow | ||||
|         noFill() | ||||
|         strokeWeight(4) | ||||
|         strokeWeight(2) | ||||
|         for m in range(10): | ||||
|             ta = tt * m | ||||
|             if thick > 0: | ||||
|             start = TWO_PI * tt | ||||
|                 start = TWO_PI * ta  | ||||
|             else: | ||||
|             start = TWO_PI * -tt | ||||
|              | ||||
|         while start > TWO_PI: | ||||
|             start -= TWO_PI | ||||
|         while start < -TWO_PI: | ||||
|             start += TWO_PI | ||||
|              | ||||
|                 start = TWO_PI * -ta             | ||||
|             mid_arrow[1] = start | ||||
|         if mouse_on_arrow(mid_arrow): | ||||
|             stroke(255, 150) | ||||
|         else: | ||||
|             stroke(0, 150) | ||||
|              | ||||
|             noFill() | ||||
|         arc_arrow(width / 2, height / 2, rad, start, sweep, thick) | ||||
|             colorMode(HSB) | ||||
|             stroke(h, 200, 200) | ||||
|             arc_arrow(width / 2, height / 2, rad * ta / 5., start, sweep, thick) | ||||
| 
 | ||||
|     if t < width: | ||||
|         t = lerp(t, width + 1, .01) | ||||
|         t = lerp(t, width + 1, .02) | ||||
|     else: | ||||
|         t = 0 | ||||
|         i = (i + 1) % num_transitions | ||||
|     #     if i == 0: | ||||
|     #         gif_export(GifMaker, finish=True) | ||||
|     # gif_export(GifMaker, filename="sketch") | ||||
|         if i == 0: | ||||
|             gif_export(GifMaker, finish=True) | ||||
|     if frameCount % 2: | ||||
|         gif_export(GifMaker, filename="sketch") | ||||
| 
 | ||||
| def lerp_arrow(a, b, t): | ||||
|     result = [] | ||||
|  | @ -81,24 +76,6 @@ def random_arrow(): | |||
|             random(256)  # hue | ||||
|             ] | ||||
| 
 | ||||
| def mouse_on_arrow(a, precision=10): | ||||
|     mx, my = width / 2, height / 2 | ||||
|     rad, start, sweep, thick, _ = a | ||||
|     # start += thick * radians(frameCount % 361) / 10. | ||||
|     same_rad = abs(abs(rad) - dist(mouseX, mouseY, mx, my)) < precision | ||||
|     mouse_ang = atan2(mouseY - my, mouseX - mx) | ||||
|     line(mouseX, mouseY, mx, my) | ||||
|     textSize(14) | ||||
|     fill(255, 0, 0) | ||||
|     text(str(int(degrees(mouse_ang))), mouseX, mouseY) | ||||
|     in_sweep = start < mouse_ang < degrees(start + sweep) | ||||
|     x, y = point_on_arc(mx, my, abs(rad), start) | ||||
|     text(str(int(degrees(start))), x, y) | ||||
|     x, y = point_on_arc(mx, my, abs(rad), start + sweep) | ||||
|     text(str(int(degrees(start+sweep))), x, y) | ||||
|     # return same_rad and in_sweep | ||||
|     return in_sweep | ||||
| 
 | ||||
| 
 | ||||
| def keyPressed(): | ||||
| 
 | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Alexandre B A Villares
						Alexandre B A Villares