-
Notifications
You must be signed in to change notification settings - Fork 0
/
sierpinski.py
35 lines (30 loc) · 965 Bytes
/
sierpinski.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# sierpinski.py
from turtle import Turtle, setworldcoordinates, exitonclick
class SierpinskiTriangle(Turtle):
size = 2
def __init__(self, n, x, y):
Turtle.__init__(self, visible=False)
self.n = n
self.speed(0)
self.penup()
self.goto(x, y)
def draw(self):
if self.n == 0:
self.begin_fill()
for i in range(3):
self.forward(SierpinskiTriangle.size)
self.left(120)
self.end_fill()
else:
for i in range(3):
SierpinskiTriangle(self.n - 1,
self.xcor(),
self.ycor()).draw()
self.forward(SierpinskiTriangle.size ** self.n)
self.left(120)
def main():
setworldcoordinates(0, 0, 75, 75)
SierpinskiTriangle(5, 5, 5).draw()
exitonclick()
if __name__ == "__main__":
main()