21 & 22
|
Po Szerokość: | Wysokość: | Rozmiar: 338 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 362 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 317 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 343 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 327 KiB |
|
|
@ -0,0 +1,67 @@
|
|||
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)
|
||||
noFill()
|
||||
strokeWeight(3)
|
||||
stroke(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
|
||||
a, b = random_pair(s / 5)
|
||||
vertex(a, b - mw)
|
||||
a, b = random_pair(s / 5)
|
||||
vertex(a - mw , b)
|
||||
a, b = random_pair(s / 5)
|
||||
vertex(a - mw, b + mh)
|
||||
a, b = random_pair(s / 5)
|
||||
vertex(a, b + mh - mw)
|
||||
a, b = random_pair(s / 5)
|
||||
vertex(a + mw, b + mh)
|
||||
a, b = random_pair(s / 5)
|
||||
vertex(a + mw, b)
|
||||
# vertex(0, 0)
|
||||
endShape(CLOSE) # encerra a forma a fechando no primeiro vértice
|
||||
popMatrix() # retorna o sistema de coordenadas anterior
|
||||
|
||||
def random_pair(r):
|
||||
return random(-r, r), random(-r, r)
|
||||
|
||||
def keyPressed():
|
||||
if key == 's':
|
||||
saveFrame("####.png")
|
||||
redraw()
|
||||
|
Po Szerokość: | Wysokość: | Rozmiar: 170 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 157 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 133 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 154 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 151 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 157 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 170 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 150 KiB |
|
Po Szerokość: | Wysokość: | Rozmiar: 146 KiB |
|
|
@ -0,0 +1,59 @@
|
|||
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)
|
||||
noFill()
|
||||
strokeWeight(3)
|
||||
stroke(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()
|
||||