Issue #10199: Fixing r86095 - svn did not like combining rename and change of directory.
This commit is contained in:
parent
77d4dc0c1b
commit
f4b321b31e
|
@ -1,119 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
""" 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()
|
|
Loading…
Reference in New Issue