Alexandre B A Villares 2019-10-01 23:44:33 -03:00
rodzic 98b51bfaa2
commit c94aa13977
6 zmienionych plików z 111 dodań i 1 usunięć

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 13 KiB

Wyświetl plik

@ -10,7 +10,7 @@ def desenho():
metade, quarto = width / 2, width / 4
noStroke() # desliga o traço
fill(100) # preenchimento cinza escuro
rect(0, metade, metade, metade) # fundo para casinha
rect(0, metade, metade, metade) # fundo para grade
fill(0) # preenchimento preto
rect(metade, 0, metade, metade) # fundo preto para o olho
olho(metade + quarto, quarto, 200)

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 42 KiB

Wyświetl plik

@ -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

Wyświetl plik

@ -0,0 +1,51 @@
from random import choice
from elementos import olho, casinha, grade_s, estrela
def setup():
size(600, 600)
noLoop()
rectMode(CENTER)
noStroke()
def draw():
background(200)
grade(300, 300, 3, 600.)
def grade(xo, yo, n, tw):
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
if cw > 50 and random(10) < 5:
grade(x, y, 3, cw)
else:
o = (i + j) % 4
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_s(x, y, 4, w)
elif option == 2:
casinha(x, y, w / 2)
else:
estrela(x, y, choice((5, 7, 9, 11)), w/3, w/4)
def keyPressed():
saveFrame("####.png")
redraw()