From 7dfeef603e0736b9fd2ea7d017c8f7ed52aa9cf5 Mon Sep 17 00:00:00 2001 From: Alexandre B A Villares Date: Tue, 29 Oct 2019 23:40:01 -0200 Subject: [PATCH] Create sketch_191029a.pyde --- 2019/sketch_191029a/sketch_191029a.pyde | 57 +++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 2019/sketch_191029a/sketch_191029a.pyde diff --git a/2019/sketch_191029a/sketch_191029a.pyde b/2019/sketch_191029a/sketch_191029a.pyde new file mode 100644 index 00000000..55312033 --- /dev/null +++ b/2019/sketch_191029a/sketch_191029a.pyde @@ -0,0 +1,57 @@ +# Baseado no L-System apresentado pela Tatasz na +# Noite de Processing hoje! + +axiom = "F+G+G" +sentence = axiom +stroke_len = 300 +angle = radians(-120) + +# rule_a = ("F", "G") +# rule_b = ("F+GF[-G+]+FF", "GGFG") +rule_a = ("F", "G") +rule_b = ("F+G-F-G++FF", "GFG") + +def setup(): + size (600, 600) + background(220, 220, 200) + scale(.35) + translate(width - 400, height - 400) + strokeWeight(2) + generate(5) + plot() + +def generate(n): + global stroke_len, sentence + for c in range(n): + stroke_len *= 0.5 + nextSentence = "" + for c in sentence: + found = False + for c_a, c_b in zip(rule_a, rule_b): + if c == c_a: + found = True + nextSentence += c_b + break + if not found: + nextSentence += c + sentence = nextSentence + +def plot(): + for c in sentence: + if c == "F": + stroke(0) + line(0, 0, 0, -stroke_len) + translate(0, -stroke_len) + # ellipse(0, 0, 10, 10) + elif c == "G": + stroke(0, 0, 255) + line(0, 0, 0, -stroke_len) + translate(0, -stroke_len) + elif c == "+": + rotate(angle) + elif c == "-": + rotate(-angle) + elif c == "[": + pushMatrix() + elif c == "]": + popMatrix()