kopia lustrzana https://github.com/villares/sketch-a-day
Create sketch_191029a.pyde
rodzic
3993584e89
commit
7dfeef603e
|
|
@ -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()
|
||||
Ładowanie…
Reference in New Issue