Skip to content

Instantly share code, notes, and snippets.

@initbar
Created October 20, 2020 15:31
Show Gist options
  • Select an option

  • Save initbar/6714e5fbf6d30feaaeb6265b28666c9f to your computer and use it in GitHub Desktop.

Select an option

Save initbar/6714e5fbf6d30feaaeb6265b28666c9f to your computer and use it in GitHub Desktop.

Revisions

  1. initbar created this gist Oct 20, 2020.
    45 changes: 45 additions & 0 deletions golden_ratio.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    import turtle


    def fib():
    i, j = 0, 1
    yield i
    while True:
    i, j = j, i + j
    yield i


    if __name__ == "__main__":
    limit = 1_000_000
    rate = 0.001
    f = fib()

    t = turtle.Turtle()
    t.hideturtle()
    t.speed("fastest")

    # slow impl
    # n = next(f)
    # for i in range(5000):
    # t.forward(rate)
    # if i >= n:
    # n = next(f)
    # t.right(90)
    # t.forward(rate)

    # faster impl
    t = turtle.Turtle()
    t.hideturtle()
    f = fib()

    # find sequences until limit
    for seq in f:
    if seq > limit:
    break
    t.forward(rate * seq)
    t.right(90)

    t.getscreen()._root.mainloop()
    t.done()
    # t.getscreen()
    # t.getcanvas().postscript(file="test.png")