Skip to content

Instantly share code, notes, and snippets.

@AlexZeGamer
Created April 18, 2022 19:19
Show Gist options
  • Select an option

  • Save AlexZeGamer/aeca7f09f76580657f1e2d7767b84ab2 to your computer and use it in GitHub Desktop.

Select an option

Save AlexZeGamer/aeca7f09f76580657f1e2d7767b84ab2 to your computer and use it in GitHub Desktop.

Revisions

  1. AlexZeGamer created this gist Apr 18, 2022.
    41 changes: 41 additions & 0 deletions sierpinski-triangle.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    from itertools import count
    from turtle import *
    import random

    # Based on this video by @mathletters on TikTok :
    # https://vm.tiktok.com/ZMLqmaYUt/

    title('Sierpinski Triangle')

    screen = getscreen()
    screen.screensize(2000, 2000)
    screen.setworldcoordinates(0,0,100,100)

    hideturtle()
    penup()
    speed(0)

    def draw_point(point):
    penup()
    goto((point))
    pendown()
    dot(2)
    penup()

    def middlepoint(point1, point2):
    return (point1[0]+point2[0])/2, (point1[1]+point2[1])/2

    corners = [(10,10), (90,10), (50,90)]

    last_point = (50,50)
    for i in count(0):
    # write i in the title
    title(f'Sierpinski Triangle - {i}')

    # randomly select one of the corners
    corner = random.choice(corners)

    # draw a point halfway between the last point and the selected corner
    current_point = middlepoint(last_point, corner)
    draw_point(current_point)
    last_point = current_point