Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision b3c7d37c5ac8dbba4f1ebcf279bfceb570fb6c19 authored by Mariatta on 01 August 2017, 02:55:20 UTC, committed by GitHub on 01 August 2017, 02:55:20 UTC
Use the copy provided in https://bugs.python.org/issue25910GH-msg295200 (cherry picked from commit 8474d87165593bac2bc231287f42c4cff3fd6aaf)
1 parent 3e37f4a
Tip revision: b3c7d37c5ac8dbba4f1ebcf279bfceb570fb6c19 authored by Mariatta on 01 August 2017, 02:55:20 UTC
bpo-25910: Update LICENSE (GH-2873) (GH-2969)
bpo-25910: Update LICENSE (GH-2873) (GH-2969)
Tip revision: b3c7d37
tdemo_lindenmayer_indian.py
#!/usr/bin/env python
""" turtle-example-suite:
xtx_lindenmayer_indian.py
Each morning women in Tamil Nadu, in southern
India, place designs, created by using rice
flour and known as kolam on the thresholds of
their homes.
These can be described by Lindenmayer systems,
which can easily be implemented with turtle
graphics and Python.
Two examples are shown here:
(1) the snake kolam
(2) anklets of Krishna
Taken from Marcia Ascher: Mathematics
Elsewhere, An Exploration of Ideas Across
Cultures
"""
################################
# Mini Lindenmayer tool
###############################
from turtle import *
def replace( seq, replacementRules, n ):
for i in range(n):
newseq = ""
for element in seq:
newseq = newseq + replacementRules.get(element,element)
seq = newseq
return seq
def draw( commands, rules ):
for b in commands:
try:
rules[b]()
except TypeError:
try:
draw(rules[b], rules)
except:
pass
def main():
################################
# Example 1: Snake kolam
################################
def r():
right(45)
def l():
left(45)
def f():
forward(7.5)
snake_rules = {"-":r, "+":l, "f":f, "b":"f+f+f--f--f+f+f"}
snake_replacementRules = {"b": "b+f+b--f--b+f+b"}
snake_start = "b--f--b--f"
drawing = replace(snake_start, snake_replacementRules, 3)
reset()
speed(3)
tracer(1,0)
ht()
up()
backward(195)
down()
draw(drawing, snake_rules)
from time import sleep
sleep(3)
################################
# Example 2: Anklets of Krishna
################################
def A():
color("red")
circle(10,90)
def B():
from math import sqrt
color("black")
l = 5/sqrt(2)
forward(l)
circle(l, 270)
forward(l)
def F():
color("green")
forward(10)
krishna_rules = {"a":A, "b":B, "f":F}
krishna_replacementRules = {"a" : "afbfa", "b" : "afbfbfbfa" }
krishna_start = "fbfbfbfb"
reset()
speed(0)
tracer(3,0)
ht()
left(45)
drawing = replace(krishna_start, krishna_replacementRules, 3)
draw(drawing, krishna_rules)
tracer(1)
return "Done!"
if __name__=='__main__':
msg = main()
print msg
mainloop()
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...