Что нужно учитывать, если не для вашей реализации, то для тестирования вашей реализации, это то, что черепаха Python может записывать, что она делает, и возвращать вам координаты. Вы используете begin_poly()
и end_poly()
вокруг кода, который хотите записать, а затем используете get_poly()
для получения очков.
В этом примере я нарисую снежинку на основе кода с этого сайта , а затем зарегистрирую эти координаты в виде новой формы черепахи, которую я случайно (и быстро) напечатаю на экране:
import turtle
from random import random, randrange
def koch_curve(turtle, steps, length):
if steps == 0:
turtle.forward(length)
else:
for angle in [60, -120, 60, 0]:
koch_curve(turtle, steps - 1, length / 3)
turtle.left(angle)
def koch_snowflake(turtle, steps, length):
turtle.begin_poly()
for _ in range(3):
koch_curve(turtle, steps, length)
turtle.right(120)
turtle.end_poly()
return turtle.get_poly()
turtle.speed("fastest")
turtle.register_shape("snowflake", koch_snowflake(turtle.getturtle(), 3, 100))
turtle.reset()
turtle.penup()
turtle.shape("snowflake")
width, height = turtle.window_width() / 2, turtle.window_height() / 2
for _ in range(24):
turtle.color((random(), random(), random()), (random(), random(), random()))
turtle.goto(randrange(-width, width), randrange(-height, height))
turtle.stamp()
turtle.done()
Вы можете скрыть перо и черепаху во время генерации многоугольника, если не хотите, чтобы этот шаг был виден пользователю.