diff --git a/2019/sketch_191021a/0009.png b/2019/sketch_191021a/0009.png new file mode 100644 index 00000000..1a85b039 Binary files /dev/null and b/2019/sketch_191021a/0009.png differ diff --git a/2019/sketch_191021a/0010.png b/2019/sketch_191021a/0010.png new file mode 100644 index 00000000..d8a1fd51 Binary files /dev/null and b/2019/sketch_191021a/0010.png differ diff --git a/2019/sketch_191021a/0011.png b/2019/sketch_191021a/0011.png new file mode 100644 index 00000000..229713f1 Binary files /dev/null and b/2019/sketch_191021a/0011.png differ diff --git a/2019/sketch_191021a/0012.png b/2019/sketch_191021a/0012.png new file mode 100644 index 00000000..0507f4d0 Binary files /dev/null and b/2019/sketch_191021a/0012.png differ diff --git a/2019/sketch_191021a/sketch_191020a.png b/2019/sketch_191021a/sketch_191020a.png new file mode 100644 index 00000000..d58bfb60 Binary files /dev/null and b/2019/sketch_191021a/sketch_191020a.png differ diff --git a/2019/sketch_191021a/sketch_191021a.pyde b/2019/sketch_191021a/sketch_191021a.pyde new file mode 100644 index 00000000..337830d1 --- /dev/null +++ b/2019/sketch_191021a/sketch_191021a.pyde @@ -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() diff --git a/2019/sketch_191022a/0015.png b/2019/sketch_191022a/0015.png new file mode 100644 index 00000000..7e5ca1be Binary files /dev/null and b/2019/sketch_191022a/0015.png differ diff --git a/2019/sketch_191022a/0016.png b/2019/sketch_191022a/0016.png new file mode 100644 index 00000000..ad485c8f Binary files /dev/null and b/2019/sketch_191022a/0016.png differ diff --git a/2019/sketch_191022a/0017.png b/2019/sketch_191022a/0017.png new file mode 100644 index 00000000..9c09859d Binary files /dev/null and b/2019/sketch_191022a/0017.png differ diff --git a/2019/sketch_191022a/0018.png b/2019/sketch_191022a/0018.png new file mode 100644 index 00000000..539e1610 Binary files /dev/null and b/2019/sketch_191022a/0018.png differ diff --git a/2019/sketch_191022a/0019.png b/2019/sketch_191022a/0019.png new file mode 100644 index 00000000..84346671 Binary files /dev/null and b/2019/sketch_191022a/0019.png differ diff --git a/2019/sketch_191022a/0020.png b/2019/sketch_191022a/0020.png new file mode 100644 index 00000000..e7fefe4b Binary files /dev/null and b/2019/sketch_191022a/0020.png differ diff --git a/2019/sketch_191022a/0022.png b/2019/sketch_191022a/0022.png new file mode 100644 index 00000000..41143be1 Binary files /dev/null and b/2019/sketch_191022a/0022.png differ diff --git a/2019/sketch_191022a/0023.png b/2019/sketch_191022a/0023.png new file mode 100644 index 00000000..973bda88 Binary files /dev/null and b/2019/sketch_191022a/0023.png differ diff --git a/2019/sketch_191022a/sketch_191022a.png b/2019/sketch_191022a/sketch_191022a.png new file mode 100644 index 00000000..f0a94ced Binary files /dev/null and b/2019/sketch_191022a/sketch_191022a.png differ diff --git a/2019/sketch_191022a/sketch_191022a.pyde b/2019/sketch_191022a/sketch_191022a.pyde new file mode 100644 index 00000000..95661037 --- /dev/null +++ b/2019/sketch_191022a/sketch_191022a.pyde @@ -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()