From f81da4871db5e058a8897b60e5713043e2f7d088 Mon Sep 17 00:00:00 2001 From: Alexandre Villares Date: Mon, 19 Nov 2018 22:41:07 -0200 Subject: [PATCH] s325 --- s325/arcs.py | 18 ++++++++++++ s325/node.py | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ s325/s325.png | Bin 0 -> 53584 bytes s325/s325.pyde | 65 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 158 insertions(+) create mode 100644 s325/arcs.py create mode 100644 s325/node.py create mode 100644 s325/s325.png create mode 100644 s325/s325.pyde diff --git a/s325/arcs.py b/s325/arcs.py new file mode 100644 index 00000000..3196d91a --- /dev/null +++ b/s325/arcs.py @@ -0,0 +1,18 @@ +ROTATION = {0 : 0, BOTTOM : 0, DOWN : 0, + 1 : HALF_PI, LEFT : HALF_PI, + 2 : PI, TOP : PI, UP : PI, + 3 : PI + HALF_PI, RIGHT: PI + HALF_PI, + BOTTOM + RIGHT : 0, DOWN + RIGHT : 0, + BOTTOM + LEFT : HALF_PI, DOWN + LEFT : HALF_PI, + TOP + LEFT : PI, UP + LEFT : PI, + TOP + RIGHT: PI + HALF_PI, UP + RIGHT: PI + HALF_PI, + } + +def quarter_circle(x, y, radius, quadrant): + circle_arc(x, y, radius, ROTATION[quadrant], HALF_PI) + +def half_circle(x, y, radius, quadrant): + circle_arc(x, y, radius, ROTATION[quadrant], PI) + +def circle_arc(x, y, radius, start_ang, sweep_ang): + arc(x, y, radius * 2, radius * 2, start_ang, start_ang + sweep_ang) diff --git a/s325/node.py b/s325/node.py new file mode 100644 index 00000000..4da76916 --- /dev/null +++ b/s325/node.py @@ -0,0 +1,75 @@ +from random import choice +from arcs import quarter_circle, half_circle, circle_arc + +class Node(): + nodes = [] + + def __init__(self, x, y): + self.x = Node.border + Node.spacing / 2. + x * Node.spacing - width / 2. + self.y = Node.border + Node.spacing / 2. + y * Node.spacing - height / 2. + self.size_ = 1 + self.rot0 = choice((0, HALF_PI)) #, PI, PI + HALF_PI)) + self.rot1 = choice((HALF_PI , PI)) #, PI + HALF_PI)) + self.type = choice(("a", "c", "b", "c", "d", "d", "e" )) + + def plot(self, ang): + """ draws node """ + with pushMatrix(): + translate(self.x, self.y) + rotate(self.rot1) + noFill() #stroke(0) + siz = Node.spacing * self.size_ + t = 5 * cos(ang) + l = siz / 2. + a = l / 2. - t + c = l / 2. + t + # stroke(0, 0, 200, 50) + # rect(0, 0, siz, siz) + stroke(0, 50, 100) + for i in range(-4, 5, 4): # (-28, 29, 7): + stroke((frameCount + i * 8) % 256, 255, 255) + if self.type == "a": + #quarter_circle(l, l, siz - c + i, TOP + LEFT) + #quarter_circle(l, -l, siz - c + i, BOTTOM + LEFT) + i *= -1 + quarter_circle(l, l, c + i, TOP + LEFT) + quarter_circle(-l, -l, c + i, BOTTOM + RIGHT) + quarter_circle(-l, l, c + i, TOP + RIGHT) + quarter_circle(l, -l, c + i, BOTTOM + LEFT) + elif self.type == "b": + half_circle(-l, 0, a + i, RIGHT) + half_circle(l, 0, a + i, LEFT) + half_circle(0, l, a + i, TOP) + half_circle(0, -l, a + i, BOTTOM) + elif self.type == "c": + half_circle(l, 0, a + i, LEFT) + half_circle(-l, 0, a + i, RIGHT) + line(a + i, -l, a + i, l) + i *= -1 + line(-a + i, -l, -a + i, l) + elif self.type == "d": + quarter_circle(-l, l, siz - c + i, TOP + RIGHT) + quarter_circle(l, -l, siz - c + i, BOTTOM + LEFT) + i *= -1 + quarter_circle(-l, l, c + i, TOP + RIGHT) + quarter_circle(l, -l, c + i, BOTTOM + LEFT) + else: + line(-l, a + i, l, a + i) + line(a + i, -l, a + i, l) + i *= -1 + line(-l, -a + i, l, -a + i) + line(-a + i, -l, -a + i, l) + + + @classmethod + def init_grid(cls, grid_size, border): + cls.border = border + cls.spacing = (width - cls.border * 2) / grid_size + cls.nodes = [] + for x in range(grid_size): + for y in range(grid_size): + new_node = cls(x, y) + cls.nodes.append(new_node) + + + diff --git a/s325/s325.png b/s325/s325.png new file mode 100644 index 0000000000000000000000000000000000000000..82005c1e9d48d4b4898380b8e43cf5c6f6fa9873 GIT binary patch literal 53584 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%0ACR$ydy`g_=;KZue!-fZjh>ja^ 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 L8)LZP{lxzPLt{uW literal 0 HcmV?d00001 diff --git a/s325/s325.pyde b/s325/s325.pyde new file mode 100644 index 00000000..6880325e --- /dev/null +++ b/s325/s325.pyde @@ -0,0 +1,65 @@ +# Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day +SKETCH_NAME = "s325" # 2018119 +OUTPUT = ".png" + +GRID_SIZE = 10 +BORDER = 50. + +add_library('peasycam') +from random import seed +from random import choice +from node import Node + +def setup(): + size(500, 500, P3D) + strokeWeight(2) + strokeCap(SQUARE) + rectMode(CENTER) + colorMode(HSB) + frameRate(10) + random_seed(101) + Node.init_grid(GRID_SIZE, BORDER) + cam = PeasyCam(this, 600) + +def draw(): + #translate(width/2, height/2) + translate(0, 0, -160) + background(0) + ang = 0 #frameCount/31. #map(mouseX, 0, width, 0, TWO_PI) + for ang in range(0, 34, 8): + with pushMatrix(): + translate(0, 0, ang * 10) + for node in Node.nodes: + node.plot(ang/10.) + + # if ang < TWO_PI: + # pass + # saveFrame("###.png") + # else: + # noLoop() + +def keyPressed(): + if key == "n": + Node.init_grid(GRID_SIZE, BORDER) + if key == "s": saveFrame("###.png") + + +def random_seed(s=None): + global rnd_seed + if s: + rnd_seed = s + seed(rnd_seed) + randomSeed(rnd_seed) + else: + seed(rnd_seed) + randomSeed(rnd_seed) + +# print text to add to the project's README.md +def settings(): + println( +""" +![{0}]({0}/{0}{2}) + +{1}: [code](https://github.com/villares/sketch-a-day/tree/master/{0}) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] +""".format(SKETCH_NAME, SKETCH_NAME[1:], OUTPUT) + )