Buckets:
MisterAI/LocalAI_Demo_backends / cpu-diffusers.upgrade-tmp /python /lib /python3.10 /turtledemo /lindenmayer.py
| #!/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() | |
Xet Storage Details
- Size:
- 2.43 kB
- Xet hash:
- cada602b9f423bf568b777649acbf382fe6d1d89faff1bcd29a0e3abee3d5515
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.