mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Co-authored-by: Wulian <xiguawulian@gmail.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			911 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			911 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""turtledemo/chaos.py
 | 
						|
 | 
						|
A demonstration of chaos.
 | 
						|
"""
 | 
						|
from turtle import *
 | 
						|
 | 
						|
N = 80
 | 
						|
 | 
						|
def f(x):
 | 
						|
    return 3.9*x*(1-x)
 | 
						|
 | 
						|
def g(x):
 | 
						|
    return 3.9*(x-x**2)
 | 
						|
 | 
						|
def h(x):
 | 
						|
    return 3.9*x-3.9*x*x
 | 
						|
 | 
						|
def jumpto(x, y):
 | 
						|
    penup(); goto(x,y)
 | 
						|
 | 
						|
def line(x1, y1, x2, y2):
 | 
						|
    jumpto(x1, y1)
 | 
						|
    pendown()
 | 
						|
    goto(x2, y2)
 | 
						|
 | 
						|
def coosys():
 | 
						|
    line(-1, 0, N+1, 0)
 | 
						|
    line(0, -0.1, 0, 1.1)
 | 
						|
 | 
						|
def plot(fun, start, color):
 | 
						|
    pencolor(color)
 | 
						|
    x = start
 | 
						|
    jumpto(0, x)
 | 
						|
    pendown()
 | 
						|
    dot(5)
 | 
						|
    for i in range(N):
 | 
						|
        x=fun(x)
 | 
						|
        goto(i+1,x)
 | 
						|
        dot(5)
 | 
						|
 | 
						|
def main():
 | 
						|
    reset()
 | 
						|
    setworldcoordinates(-1.0,-0.1, N+1, 1.1)
 | 
						|
    speed(0)
 | 
						|
    hideturtle()
 | 
						|
    coosys()
 | 
						|
    plot(f, 0.35, "blue")
 | 
						|
    plot(g, 0.35, "green")
 | 
						|
    plot(h, 0.35, "red")
 | 
						|
    # Now zoom in:
 | 
						|
    for s in range(100):
 | 
						|
        setworldcoordinates(0.5*s,-0.1, N+1, 1.1)
 | 
						|
    return "Done!"
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    main()
 | 
						|
    mainloop()
 |