From 4d5cc776c02c74674044c9ae119a28eeaed9933b Mon Sep 17 00:00:00 2001 From: Alexandre B A Villares Date: Thu, 8 Nov 2018 09:53:42 -0200 Subject: [PATCH] 314 --- README.md | 5 ++ s314/gif_exporter.py | 42 ++++++++++++ s314/line_geometry.py | 146 +++++++++++++++++++++++++++++++++++++++++ s314/s314.png | Bin 0 -> 186959 bytes s314/s314.pyde | 148 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 341 insertions(+) create mode 100644 s314/gif_exporter.py create mode 100644 s314/line_geometry.py create mode 100644 s314/s314.png create mode 100644 s314/s314.pyde diff --git a/README.md b/README.md index 8883b34a..e0fae172 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,11 @@ Hi! I'm [Alexandre Villares](https://abav.lugaralgum.com), let's see if I can ma If you enjoy this, be a [patreon](https://patreon.com/arteprog) or make a donation [here](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HCGAKACDMVNV2) +--- + +![s314](s314/s314.png) + +314: [code](https://github.com/villares/sketch-a-day/tree/master/s314) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)] --- diff --git a/s314/gif_exporter.py b/s314/gif_exporter.py new file mode 100644 index 00000000..9b48b504 --- /dev/null +++ b/s314/gif_exporter.py @@ -0,0 +1,42 @@ +""" +Alexandre B A Villares http://abav.lugaralgum.com - GPL v3 + +A helper for the Processing gifAnimation library https://github.com/extrapixel/gif-animation/tree/3.0 +Download from https://github.com/villares/processing-play/blob/master/export_GIF/unzip_and_move_to_libraries_GifAnimation.zip +This helper was inspired by an example by Art Simon https://github.com/APCSPrinciples/AnimatedGIF/ + +# add at the start of your sketch: + add_library('gifAnimation') + from gif_exporter import gif_export +# add at the end of draw(): + gif_export(GifMaker) +""" + +def gif_export(GifMaker, # gets a reference to the library + filename="exported", # .gif will be added + repeat=0, # 0 makes it an "endless" animation + quality=255, # quality range 0 - 255 + delay=200, # this is quick + frames=0, # 0 will stop on keyPressed or frameCount >= 100000 + finish=False): # force stop + global gifExporter + try: + gifExporter + except NameError: + gifExporter = GifMaker(this, filename + ".gif") + gifExporter.setRepeat(repeat) + gifExporter.setQuality(quality) + gifExporter.setDelay(delay) + + gifExporter.addFrame() + + if frames == 0: + if keyPressed or frameCount >= 100000: + finish = True + elif frameCount >= frames: + finish = True + + if finish: + gifExporter.finish() + print("gif saved") + exit() diff --git a/s314/line_geometry.py b/s314/line_geometry.py new file mode 100644 index 00000000..e8468e59 --- /dev/null +++ b/s314/line_geometry.py @@ -0,0 +1,146 @@ + +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 lerp(self, other, t): + p1 = PVector.lerp(self.p1, other.p1, t) + p2 = PVector.lerp(self.p2, other.p2, t) + return Line(p1, p2) + +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): + vectors = [PVector(p.x, p.y) for p in points] + lines = [] + if not sides: sides = [0] + for s in sides: + a, b = vectors[-1 + s], vectors[+0 + s] + d, c = vectors[-2 + s], vectors[-3 + s] + 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/s314/s314.png b/s314/s314.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e611d1794e9e2f808fb1fdbd732d0e24a0d325 GIT binary patch literal 186959 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