kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
			
			
			
				main
			
			
		
		
							rodzic
							
								
									c94aa13977
								
							
						
					
					
						commit
						96ceda1371
					
				
										
											Plik binarny nie jest wyświetlany.
										
									
								
							| Po Szerokość: | Wysokość: | Rozmiar: 67 KiB | 
|  | @ -0,0 +1,59 @@ | |||
| # -*- encoding: utf-8 -*- | ||||
| 
 | ||||
| def casinha(x, y, tamanho): | ||||
|     """ Casinha na posição x, y com largura e altura 'tamanho' """ | ||||
|     metade = tamanho / 2 | ||||
|     pushMatrix()  # preserva o sistema de coordenadas atual | ||||
|     translate(x, y)  # translada a origem do sistema de coordenadas | ||||
|     beginShape()  # começa a desenhar a forma, inicia um polígono | ||||
|     vertex(0, -metade) | ||||
|     vertex(-metade, 0) | ||||
|     vertex(-metade, metade) | ||||
|     vertex(metade, metade) | ||||
|     vertex(metade, 0) | ||||
|     endShape(CLOSE)  # encerra a forma a fechando no primeiro vértice | ||||
|     popMatrix() # retorna o sistema de coordenadas anterior | ||||
|      | ||||
| def estrela(x_centro, y_centro, num_pontas, raio_a, raio_b): | ||||
|     """ | ||||
|     Desenha uma estrela com np pontas | ||||
|     raio a e raio b são os raios internos e das pontas | ||||
|     """ | ||||
|     n = num_pontas * 2 # dobro de pontos que as pontas | ||||
|     inc = radians(360. / n) # ângulo de eincremento entre os pontos | ||||
|     beginShape() # começa a desenhar a forma | ||||
|     ang = 0 # começando com o ângulo 0 | ||||
|     while ang < TWO_PI: | ||||
|         x = x_centro + sin(ang) * raio_a | ||||
|         y = y_centro + cos(ang) * raio_a | ||||
|         vertex(x, y) | ||||
|         ang += inc | ||||
|         x = x_centro + sin(ang) * raio_b | ||||
|         y = y_centro + cos(ang) * raio_b | ||||
|         vertex(x, y) | ||||
|         ang += inc | ||||
|     endShape(CLOSE) # encerra uma forma fechada | ||||
|      | ||||
|      | ||||
| def olho(x, y, largura, cor=color(100)): | ||||
|     """ Olho na posição x, y com largura e cor """ | ||||
|     pushStyle() # preserva os atributos gráficos atuais | ||||
|     noStroke() | ||||
|     fill(255) | ||||
|     ellipse(x, y, largura, largura * .45) | ||||
|     fill(cor) | ||||
|     circle(x, y, largura * .4) | ||||
|     fill(0) | ||||
|     circle(x, y, largura * .1) | ||||
|     popStyle() # retorna os atributos gráficos anteriores | ||||
|      | ||||
|      | ||||
| def grade_s(xo, yo, n, tam_total): | ||||
|     tam_celula = tam_total / n | ||||
|     desloc = (tam_celula - tam_total) / 2. | ||||
|     for i in range(n): | ||||
|         x = xo + desloc + tam_celula * i | ||||
|         for j in range(n): | ||||
|             y =  yo + desloc + tam_celula * j | ||||
|             rectMode(CENTER) | ||||
|             square(x, y, tam_celula * .6) | ||||
										
											Plik binarny nie jest wyświetlany.
										
									
								
							| Po Szerokość: | Wysokość: | Rozmiar: 56 KiB | 
|  | @ -0,0 +1,63 @@ | |||
| from random import choice | ||||
| from elementos import olho, casinha, grade_s, estrela | ||||
| 
 | ||||
| def setup(): | ||||
|     size(600, 600) | ||||
|     noLoop() | ||||
|     rectMode(CENTER) | ||||
|     noStroke() | ||||
| 
 | ||||
| def draw(): | ||||
|     background(255) | ||||
|     grade(300, 300, 3, 600.) | ||||
| 
 | ||||
| def grade(xo, yo, n, tw, e=None): | ||||
|     cw = tw / n | ||||
|     offset = (cw - tw) / 2. | ||||
|     for i in range(n): | ||||
|         x = xo + offset + cw * i | ||||
|         for j in range(n): | ||||
|             y = yo + offset + cw * j | ||||
|             o = (i + j) % 4 | ||||
|             if e is not None: | ||||
|                 element(x, y, cw, e) | ||||
|             elif cw > 50 and random(10) < 5: | ||||
|                 grade(x, y, 3, cw) | ||||
|             elif cw > 50: | ||||
|                 fill(255) | ||||
|                 grade(x, y, 3, cw, o) | ||||
|             else: | ||||
|                 fill(0) | ||||
|                 noStroke() | ||||
|                 element(x, y, cw, o) | ||||
| 
 | ||||
| def element(x, y, w, option): | ||||
|     if option == 0: | ||||
|         noStroke()  # desliga o traço | ||||
|         fill(0)  # preenchimento preto | ||||
|         rect(x, y, w, w)  # fundo | ||||
|         olho(x, y, w / 2, 200) | ||||
|     else: | ||||
|         # fill(255) # preenchimento branco | ||||
|         stroke(0)  # traço preto | ||||
|         strokeWeight(w / 20)  # espessura do traço | ||||
|         # if option == 1 and w > 50: | ||||
|         # fill(100) # preenchimento cinza escuro | ||||
|         #     noStroke() | ||||
|         # rect(x, y, w, w) # fundo | ||||
|         #     fill(255) | ||||
|         #     grade(x, y, 1, w) | ||||
|         if option == 1: | ||||
|             fill(100) | ||||
|             casinha(x, y, w / 2) | ||||
|         else: | ||||
|             radius_pairs = choice(((w / 3, w / 4), | ||||
|                                    (w / 5, w / 4), | ||||
|                                    (w / 5, w / 3), | ||||
|                                    )) | ||||
|             estrela(x, y, choice((5, 7, 9, 11)), *radius_pairs) | ||||
| 
 | ||||
| 
 | ||||
| def keyPressed(): | ||||
|     saveFrame("####.png") | ||||
|     redraw() | ||||
		Ładowanie…
	
		Reference in New Issue
	
	 Alexandre B A Villares
						Alexandre B A Villares