def spec(turtle, level, n):
if level == 0:
return
height = math.sqrt(n**2 - (n/2)**2)
for i in range(120):
turtle.forward(n)
turtle.left(55)
turtle.forward(n)
turtle.left(55)
turtle.forward(n)
turtle.left(55)
turtle.penup()
turtle.back(n / 2)
turtle.right(90)
turtle.forward(height * 3)
turtle.left(90)
turtle.back(n * 2)
turtle.pendown()
spec(turtle, level - 1, n * 2)
def spec2(turtle, level, n):
if level == 0:
return
height = math.sqrt(n**2 - (n/2)**2)
for i in range(120):
turtle.forward(n)
turtle.left(55)
turtle.forward(n)
turtle.left(55)
turtle.forward(n)
turtle.left(55)
turtle.penup()
turtle.forward(n / 2)
turtle.right(90)
turtle.forward(height * 2)
turtle.left(90)
turtle.back(n)
turtle.pendown()
spec2(turtle, level - 1, n * 2)
def spec3(turtle, n, r, alpha):
angle = float(360) / r
length = n
while length > 0:
i = 0
while i < r and length > 0:
turtle.forward(length)
length = length - 1
turtle.left(alpha)
i += 1
from turtle import Turtle
from mydraw import *
import math
turtle = Turtle()
spec(turtle, 5, 5);
lines = turtle.lines
drawLinesToFile(lines, "spec")
turtle = Turtle()
spec2(turtle, 5, 5);
lines = turtle.lines
drawLinesToFile(lines, "spec2")
turtle = Turtle()
spec3(turtle, 300, 11, 88);
lines = turtle.lines
drawLinesToFile(lines, "spec3_a")
turtle = Turtle()
spec3(turtle, 300, 11, 72);
lines = turtle.lines
drawLinesToFile(lines, "spec3_b")