Функции · 20 из 31
Гармонограф
В девятнадцатом веке в гостиных стоял гармонограф: два маятника, один качает перо вдоль листа, другой — поперёк. Маятники понемногу затухают, и перо выводит петли, которые сходятся к центру. Какой выйдет узор, решают маятники — частота, размах, затухание. Валера из автосервиса собрал такой из старых пружин и хочет рисовать узоры на компьютере: подставлять разные маятники и смотреть, что выйдет.
Что сделать
Проведите черепашкой линию через точки, которые дают два маятника в моменты 0, shag, 2·shag и так далее.
Что приходит
t— черепашка: стоит в начале координат, перо опущеноpo_xиpo_y— функции маятников: момент времени → координата пера по своей осиtochek— сколько точек в линии, от 2shag— время между соседними точками
Что вернуть
Ничего — функция рисует. Проверка сравнивает нарисованное с рисунком эталона.
Допишите функцию garmonograf в редакторе справа.
Рисуйте черепашкой t, как turtle дома, — проверка
сравнивает нарисованное; возвращать ничего не нужно.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Маятники lambda s: 100 * math.cos(s) и lambda s: 100 * math.sin(2 * s), 64 точки через 0,1: первая точка — (100, 0). Черепашка поднимает перо, переходит туда, опускает перо и ведёт линию через остальные 63 точки — выходит восьмёрка на боку.
Точка номер i (от 0 до tochek − 1) — это (po_x(s), po_y(s)), где момент s = i * shag.
До первой точки черепашка идёт с поднятым пером, чтобы не было лишней линии из начала координат; дальше перо опущено, и черепашка по очереди переходит (goto) в каждую следующую точку.
Момент считайте как i * shag, а не прибавлением shag к сумме: сложение копит погрешность.
Образцовый тест целиком
import math from cherepashka import risunok as _risunok_p
_risunok_p(garmonograf, lambda s: 100 * math.cos(s), lambda s: 100 * math.sin(2 * s), 64, 0.1)
<рисунок: 63 линии, 1 цвет; от (-99.91, -100) до (100, 99.96); отпечаток 337619453e>
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.