Mercurial > repos > rliterman > csp2
annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/turtledemo/chaos.py @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
rev | line source |
---|---|
jpayne@68 | 1 # File: tdemo_chaos.py |
jpayne@68 | 2 # Author: Gregor Lingl |
jpayne@68 | 3 # Date: 2009-06-24 |
jpayne@68 | 4 |
jpayne@68 | 5 # A demonstration of chaos |
jpayne@68 | 6 |
jpayne@68 | 7 from turtle import * |
jpayne@68 | 8 |
jpayne@68 | 9 N = 80 |
jpayne@68 | 10 |
jpayne@68 | 11 def f(x): |
jpayne@68 | 12 return 3.9*x*(1-x) |
jpayne@68 | 13 |
jpayne@68 | 14 def g(x): |
jpayne@68 | 15 return 3.9*(x-x**2) |
jpayne@68 | 16 |
jpayne@68 | 17 def h(x): |
jpayne@68 | 18 return 3.9*x-3.9*x*x |
jpayne@68 | 19 |
jpayne@68 | 20 def jumpto(x, y): |
jpayne@68 | 21 penup(); goto(x,y) |
jpayne@68 | 22 |
jpayne@68 | 23 def line(x1, y1, x2, y2): |
jpayne@68 | 24 jumpto(x1, y1) |
jpayne@68 | 25 pendown() |
jpayne@68 | 26 goto(x2, y2) |
jpayne@68 | 27 |
jpayne@68 | 28 def coosys(): |
jpayne@68 | 29 line(-1, 0, N+1, 0) |
jpayne@68 | 30 line(0, -0.1, 0, 1.1) |
jpayne@68 | 31 |
jpayne@68 | 32 def plot(fun, start, color): |
jpayne@68 | 33 pencolor(color) |
jpayne@68 | 34 x = start |
jpayne@68 | 35 jumpto(0, x) |
jpayne@68 | 36 pendown() |
jpayne@68 | 37 dot(5) |
jpayne@68 | 38 for i in range(N): |
jpayne@68 | 39 x=fun(x) |
jpayne@68 | 40 goto(i+1,x) |
jpayne@68 | 41 dot(5) |
jpayne@68 | 42 |
jpayne@68 | 43 def main(): |
jpayne@68 | 44 reset() |
jpayne@68 | 45 setworldcoordinates(-1.0,-0.1, N+1, 1.1) |
jpayne@68 | 46 speed(0) |
jpayne@68 | 47 hideturtle() |
jpayne@68 | 48 coosys() |
jpayne@68 | 49 plot(f, 0.35, "blue") |
jpayne@68 | 50 plot(g, 0.35, "green") |
jpayne@68 | 51 plot(h, 0.35, "red") |
jpayne@68 | 52 # Now zoom in: |
jpayne@68 | 53 for s in range(100): |
jpayne@68 | 54 setworldcoordinates(0.5*s,-0.1, N+1, 1.1) |
jpayne@68 | 55 return "Done!" |
jpayne@68 | 56 |
jpayne@68 | 57 if __name__ == "__main__": |
jpayne@68 | 58 main() |
jpayne@68 | 59 mainloop() |