From 58add018a0aae12a83c49419161259744c4c5353 Mon Sep 17 00:00:00 2001 From: Alexandre B A Villares Date: Sun, 28 Oct 2018 23:16:51 -0300 Subject: [PATCH] 303 --- s303/line_geometry.py | 140 ++++++++++++++++++++++++++++++++++++++++++ s303/s303.png | Bin 0 -> 93516 bytes s303/s303.pyde | 123 +++++++++++++++++++++++++++++++++++++ 3 files changed, 263 insertions(+) create mode 100644 s303/line_geometry.py create mode 100644 s303/s303.png create mode 100644 s303/s303.pyde diff --git a/s303/line_geometry.py b/s303/line_geometry.py new file mode 100644 index 00000000..92b4ea47 --- /dev/null +++ b/s303/line_geometry.py @@ -0,0 +1,140 @@ + +def create_points(non_intersecting=True): + background(200) + done = False + while not done: + poly_points = [PVector(random(BORDER, width - BORDER), + random(BORDER, height - BORDER) + ) + for _ in range(NUM)] + ed = edges(poly_points) + done = True + if non_intersecting: + for p1, p2 in ed[::-1]: + for p3, p4 in ed[2::]: + # test only non consecutive edges + if (p1 != p3) and (p2 != p3) and (p1 != p4): + if line_instersect(Line(p1, p2), Line(p3, p4)): + done = False + break + return poly_points + +def is_inside(x, y, poly_points): + min_, max_ = min_max(poly_points) + if x < min_.x or y < min_.y or x > max_.x or y > max_.y: + return False + + a = PVector(x, min_.y) + b = PVector(x, max_.y) + v_lines = inter_lines(Line(a, b), poly_points) + if not v_lines: + return False + + a = PVector(min_.x, y) + b = PVector(max_.x, y) + h_lines = inter_lines(Line(a, b), poly_points) + if not h_lines: + return False + + for v in v_lines: + for h in h_lines: + if line_instersect(v, h): + return True + + return False + + +def inter_lines(L, poly_points): + inter_points = [] + for p1, p2 in edges(poly_points): + inter = line_instersect(Line(p1, p2), L) + if inter: + inter_points.append(inter) + if not inter_points: + return [] + inter_lines = [] + if len(inter_points) > 1: + inter_points.sort() + pairs = zip(inter_points[::2], inter_points[1::2]) + for p1, p2 in pairs: + if p2: + inter_lines.append(Line(PVector(p1.x, p1.y), + PVector(p2.x, p2.y))) + return inter_lines + + +class Line(): + """ I should change this to a named tuple... """ + def __init__(self, p1, p2): + self.p1 = p1 + self.p2 = p2 + + def plot(self): + line(self.p1.x, self.p1.y, self.p2.x, self.p2.y) + +def line_instersect(line_a, line_b): + """ + code adapted from Bernardo Fontes + https://github.com/berinhard/sketches/ + """ + + x1, y1 = line_a.p1.x, line_a.p1.y + x2, y2 = line_a.p2.x, line_a.p2.y + x3, y3 = line_b.p1.x, line_b.p1.y + x4, y4 = line_b.p2.x, line_b.p2.y + + try: + uA = ((x4-x3)*(y1-y3) - (y4-y3)*(x1-x3)) / ((y4-y3)*(x2-x1) - (x4-x3)*(y2-y1)); + uB = ((x2-x1)*(y1-y3) - (y2-y1)*(x1-x3)) / ((y4-y3)*(x2-x1) - (x4-x3)*(y2-y1)); + except ZeroDivisionError: + return + + if not(0 <= uA <= 1 and 0 <= uB <= 1): + return + + x = line_a.p1.x + uA * (line_a.p2.x - line_a.p1.x) + y = line_a.p1.y + uA * (line_a.p2.y - line_a.p1.y) + + return PVector(x, y) + + +def edges(poly_points): + return pairwise(poly_points) + [(poly_points[-1], poly_points[0])] + +def pairwise(iterable): + import itertools + "s -> (s0,s1), (s1,s2), (s2, s3), ..." + a, b = itertools.tee(iterable) + next(b, None) + return zip(a, b) + +def min_max(points): + points = iter(points) + try: + p = points.next() + min_x, min_y = max_x, max_y = p.x, p.y + except StopIteration: + raise ValueError, "min_max requires at least one point" + for p in points: + if p.x < min_x: + min_x = p.x + elif p.x > max_x: + max_x = p.x + if p.y < min_y: + min_y = p.y + elif p.y > max_y: + max_y = p.y + return (PVector(min_x, min_y), + PVector(max_x, max_y)) + +def par_hatch(points, divisions, *sides): + lines = [] + if not sides: sides = [0] + for s in sides: + a, b = points[-1 + s].v, points[+0 + s].v + d, c = points[-2 + s].v, points[-3 + s].v + for i in range(1, divisions): + s0 = PVector.lerp(a, b, i/float(divisions)) + s1 = PVector.lerp(d, c, i/float(divisions)) + lines.append(Line(s0, s1)) + return lines diff --git a/s303/s303.png b/s303/s303.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9144f828fce7029b2d8f44b45d82a4b20eebba GIT binary patch literal 93516 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

h@h!i7bPH}4N;eOXxLLpj-#vfJ4fR9r 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 F{{vS-Emi;k literal 0 HcmV?d00001 diff --git a/s303/s303.pyde b/s303/s303.pyde new file mode 100644 index 00000000..ad80d3dc --- /dev/null +++ b/s303/s303.pyde @@ -0,0 +1,123 @@ +# Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day +SKETCH_NAME = "s303" # 20181028 +OUTPUT = ".png" +GRID_SIZE = 24 + +from line_geometry import Line +from line_geometry import par_hatch + +rule = lambda x, y: (x - y) % 3 == 0 + +def setup(): + global xo, yo + size(500, 500) + smooth(8) + init_grid(GRID_SIZE) + +def draw(): + background(0) + stroke(255) + for c in Cell.cells: + c.plot() + +def init_grid(grid_size): + Cell.border = 50. + Cell.spacing = (width - Cell.border *2) / grid_size + Cell.cells = [] + + for x in range(0, grid_size, 2): + for y in range(0, grid_size, 2): + new_cell = Cell(x, y) + Cell.cells.append(new_cell) + Cell.grid[x, y] = new_cell + + Node.nodes = [] + for x in range(-1, grid_size+1, 2): + for y in range(-1, grid_size+1, 2): + new_node = Node(x, y) + #Cell.cells.append(new_node) # mudar! + Cell.grid[x, y] = new_node # extrarir do dict + + for c in Cell.cells: + c.update_vers() + +class Node(): + nodes = [] + grid = dict() + + def __init__(self, x, y): + self.ix = x + self.iy = y + self.px = Cell.border + Cell.spacing + x * Cell.spacing + self.py = Cell.border + Cell.spacing + y * Cell.spacing + if rule(x, y): + self.px += random(-10, 10) + self.py += random(-10, 10) + self.x = self.px + self.y = self.py + self.v = PVector(self.x, self.y) + +class Cell(): + cells = [] + grid = dict() + vers = [] + + def __init__(self, x, y): + self.ix = x + self.iy = y + self.px = Cell.border + Cell.spacing + x * Cell.spacing + self.py = Cell.border + Cell.spacing + y * Cell.spacing + self.vers = [] + + def plot(self): + strokeWeight(1) + for l in self.lines: + l.plot() + beginShape() + noFill() + for p in self.vers: + if rule(p.ix, p.iy): + ellipse(p.x, p.y, 10, 10) + strokeWeight(2) + for p in self.vers: + vertex(p.x, p.y) + endShape(CLOSE) + + def update_vers(self): + self.v0 = Cell.grid.get((self.ix-1, self.iy-1)) + self.v1 = Cell.grid.get((self.ix-1, self.iy+1)) + self.v3 = Cell.grid.get((self.ix+1, self.iy-1)) + self.v2 = Cell.grid.get((self.ix+1, self.iy+1)) + # if random(10) > 2: + self.vers = [self.v0, self.v1, self.v2, self.v3] + # elif random(2) > 1: + # self.vers = [self.v0, self.v1, self.v1, self.v3] + # else: + # self.vers = [self.v0, self.v2, self.v2, self.v3] + self.hatch() + + def hatch(self): + poly_points = self.vers + # min_, max_ = min_max(poly_points) + self.lines = [] + n = int(random(5, 12)) + r = random(10) + if r > 5: + self.lines.extend(par_hatch(poly_points, n, 0)) + if r < 6: + self.lines.extend(par_hatch(poly_points, n, 1)) + +def keyPressed(): + if key == "n": + init_grid(GRID_SIZE) + if key == "s": saveFrame("###.png") + +# 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) + )