Войти Создать аккаунт

Рекурсия · 12 из 19

Бабушкина снежинка

В семейном архиве нашлась бабушкина вышивка — снежинка, у которой каждый край изломан мелкими зубцами, каждый зубец — ещё более мелкими, и так, пока хватало нитки. Внук хочет повторить её на вышивальной машине, а машина шьёт по списку точек. Узор устроен одинаково на каждом шаге: отрезок делится на три части, над средней встаёт треугольный зубец, и с каждой из четырёх новых частей — то же самое.

Что сделать

Постройте точки зубчатого края — кривой Коха — от точки a до точки b с заданной глубиной узора.

Что приходит

  • a и b — концы отрезка, кортежи (x, y)

  • glubina — сколько раз повторить узор: 0 — просто отрезок

Что вернуть

Список точек (x, y) по порядку от a до b, без повторов на стыках.

Допишите функцию koh в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой

Пример

Отрезок от (0, 0) до (3, 0), глубина 1: его делят на три части, точки (1, 0) и (2, 0), а над средней частью встаёт зубец с вершиной (1,5; 0,866). Пять точек: (0, 0), (1, 0), вершина, (2, 0), (3, 0).

Тот же пример кодом
Вызов
koh((0, 0), (3, 0), 1)
Вернуть
[(0, 0), (1.0, 0.0), (1.5, 0.8660254037844386), (2.0, 0.0), (3, 0)]
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.