| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  | from random import choice | 
					
						
							|  |  |  | from elementos import casinha, estrela, poly_arrow | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def setup(): | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |     size(768, 768) | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |     noLoop() | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |     colorMode(HSB) | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |     rectMode(CENTER) | 
					
						
							|  |  |  |     strokeJoin(ROUND) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def draw(): | 
					
						
							|  |  |  |     background(255) | 
					
						
							|  |  |  |     grade(width / 2., width / 2., 4, width) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def grade(xo, yo, n, tw, e=None): | 
					
						
							|  |  |  |     cw = tw / n | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |     offset = (cw - tw) / 2 | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |     for i in range(n): | 
					
						
							|  |  |  |         x = xo + offset + cw * i | 
					
						
							|  |  |  |         for j in range(n): | 
					
						
							|  |  |  |             y = yo + offset + cw * j | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |             o = 1 + (i + j * 2) % 8 | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |             noFill() | 
					
						
							|  |  |  |             if e is not None: | 
					
						
							|  |  |  |                 element(x, y, cw, e) | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |             elif cw > 10 and random(10) < 6: | 
					
						
							|  |  |  |                 grade(x, y, 4, cw) | 
					
						
							|  |  |  |             elif cw > 20 and random(10) < 6: | 
					
						
							|  |  |  |                 grade(x, y, 2, cw + 1, 0) | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |             else: | 
					
						
							|  |  |  |                 element(x, y, cw, o) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def element(x, y, w, option): | 
					
						
							|  |  |  |     stroke(0) | 
					
						
							|  |  |  |     strokeWeight(1) | 
					
						
							|  |  |  |     p = choice((0, 1, 2)) | 
					
						
							|  |  |  |     pushMatrix() | 
					
						
							|  |  |  |     translate(x, y) | 
					
						
							|  |  |  |     rotate(HALF_PI * p) | 
					
						
							|  |  |  |     if option == 0: | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |         fill(0) | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |         poly_arrow(0, 0, w) | 
					
						
							|  |  |  |         # estrela(x, y, p, choice((w/6, w*.1, w*.2)), w/3) | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         # casinha(x, y, choice((w/2, w*.9, w*.6))) | 
					
						
							| 
									
										
										
										
											2019-10-10 03:54:39 +00:00
										 |  |  |         # fill(option * 32, 200, 200) | 
					
						
							|  |  |  |         fill(option * 8, 100) | 
					
						
							|  |  |  |         noStroke() | 
					
						
							|  |  |  |         poly_arrow(0, 0, w * 1.5) | 
					
						
							| 
									
										
										
										
											2019-10-09 22:33:46 +00:00
										 |  |  |     popMatrix() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def keyPressed(): | 
					
						
							|  |  |  |     if key == 's': | 
					
						
							|  |  |  |         saveFrame("####.png") | 
					
						
							|  |  |  |     redraw() |