Po Szerokość: | Wysokość: | Rozmiar: 150 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 144 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 150 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 133 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 132 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 138 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 135 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 147 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 145 KiB |
|
@ -0,0 +1,58 @@
|
|||
from random import choice
|
||||
|
||||
def setup():
|
||||
size(600, 600)
|
||||
noLoop()
|
||||
rectMode(CENTER)
|
||||
strokeJoin(ROUND)
|
||||
blendMode(MULTIPLY)
|
||||
|
||||
def draw():
|
||||
background(255)
|
||||
grid(width / 2, width / 2, 4, width)
|
||||
|
||||
def grid(xo, yo, n, tw, e=None):
|
||||
"""
|
||||
Faça o desenho do grid baseado em uma subdivisão (grade) recursiva
|
||||
"""
|
||||
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 > 30 and random(10) < 8: # faz subdivisão recursiva
|
||||
grid(x, y, 3, cw)
|
||||
else: # faz um elemento "sozinho"
|
||||
poly_arrow(x, y, cw, i, j)
|
||||
|
||||
|
||||
|
||||
def poly_arrow(x, y, s, i, j):
|
||||
w = s / (1 + i) # x / s)
|
||||
h = s / (1 + j ) # y / s)
|
||||
noStroke()
|
||||
fill(64 + i * 64, 64 + j * 64, 200)
|
||||
""" Seta na posição x, y com largura w e altura h"""
|
||||
mw = w
|
||||
mh = h
|
||||
pushMatrix() # preserva o sistema de coordenadas atual
|
||||
translate(x, y) # translada a origem do sistema de coordenadas
|
||||
r = choice((0, 1, 2, 4))
|
||||
rotate(r * HALF_PI)
|
||||
beginShape() # começa a desenhar a forma, inicia um polígono
|
||||
vertex(0, -0 - mw)
|
||||
vertex(-mw , 0)
|
||||
vertex(-mw, mh)
|
||||
vertex(0, mh - mw)
|
||||
vertex(mw, mh)
|
||||
vertex(mw, 0)
|
||||
# vertex(0, 0)
|
||||
endShape(CLOSE) # encerra a forma a fechando no primeiro vértice
|
||||
popMatrix() # retorna o sistema de coordenadas anterior
|
||||
|
||||
|
||||
def keyPressed():
|
||||
if key == 's':
|
||||
saveFrame("####.png")
|
||||
redraw()
|