Циклы · 23 из 26
Роза Маурера
В 1987 году Питер Маурер описал узор, который потом разошёлся по заставкам и плакатам. Берут розу — кривую r = sin(n·θ) — и идут по ней не плавно, а скачками: на 0°, d°, 2d°, … 360d°, соединяя точки прямыми. Из гладкого цветка выходит ажурная сетка, и от d зависит, какая именно.
Что сделать
Соедините прямыми 361 точку розы — для углов 0, d, 2d, … 360·d градусов — и нарисуйте их черепашкой.
Что приходит
t— черепашкаn— сколько «лепестков» задаёт роза, целоеd— шаг угла в градусах, целоеradius— размер розы
Что вернуть
Ничего — функция рисует.
Допишите функцию roza_maurera в редакторе справа.
Рисуйте черепашкой t, как turtle дома, — проверка
сравнивает нарисованное; возвращать ничего не нужно.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
n = 2, d = 29, radius = 100: точки при углах 0°, 29°, 58°, … — каждая на расстоянии 100·sin(2·угол) от центра; первая — в центре (0, 0).
Для k от 0 до 360 включительно: θ = k · d градусов, r = radius · sin(n · θ), точка — (r · cos θ, r · sin θ). Синус и косинус — от радиан: math.radians(θ). Черепашка переходит в первую точку с поднятым пером, затем опускает его и по очереди идёт t.goto в каждую следующую. Центр розы — (0, 0). Точка при k = 360 совпадает с первой — последняя линия замыкает узор.
Образцовый тест целиком
from cherepashka import risunok as _risunok_p
_risunok_p(roza_maurera, 2, 29, 100)
<рисунок: 356 линий, 1 цвет; от (-76.98, -76.98) до (76.97, 76.97); отпечаток fc28c9e0b1>
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.