Маме кто-то подарил линейку-спирограф — забавный прибор, с помощью которого можно чертить самые разнообразные линии. Принцип следующий: в самой линейке два круглых отверстия разных размеров, но граница у них не гладкая, а с зубчиками, и плюс к этому еще набор из трех шестеренок с дырками в разных местах. Чтобы начертить линию, нужно положить шестеренку в круг, поставить вертикально стержень в одну из дырок и вращать шестеренку вдоль круга до тех пор, пока стержень не вернется в исходное положение, описав замкнутую линию, причем эти линии могут иметь самый разнообразный вид в зависимости от того, какой круг мы выберем, какую шестеренку и какую дырку.
С цветными стержнями это должно смотреться еще красивее, потому что можно комбинировать линии разных цветов, но тут, увы, ничего не вышло, потому что у меня нашлись только черные и синие стержни, а с такой цветовой гаммой не развернешься. Я исчертила кучу бумаги, а потом, уже ночью, мучаясь бессонницей, подумала, что это же надо чертить на компьютере! Уж там можно выбрать цвета, какие захочешь, да и программа для построения графиков у меня есть… Дело за малым — смоделировать уравнение движения точки.
полуночные рассужденияЯ понимала, конечно, что открываю Америку и при желании я могла бы найти эти формулы на следующее утро, но задача так захватила меня, что я принялась рассуждать. Уравнения координат, конечно, должны быть параметрически заданы через время. Точка, описывающая линию (как, кстати, она называется? Улитка Паскаля? Гипотрохоида?..) совершает два движения… так, для начала разберемся с обозначениями. Пусть R — радиус большого круга, r — радиус катящейся шестеренки и k — расстояние от края шестеренки до дырки. Мозг потихоньку начал закипать. Итак, центр шестеренки совершает движение по окружности радиуса R – r. Эти уравнения составить легко:
х = (R – r)cost,
y = (R – r)sint.
Отлично. Дырка тоже вращается по окружности вокруг центра шестеренки, радиус этой окружности, очевидно, равен r – k. За то время, когда шестеренка сделает один оборот в большом круге, вокруг своей оси она повернется… сколько же раз? Я помнила, что здесь есть какой-то подвох. По идее-то должно быть в R/r раз больше оборотов, но… Так, вспомнила. Если бы шестеренка вращалась с внешней стороны окружности, набегал бы один лишний оборот. А у нас, соответственно, на один оборот будет меньше, т.е. R/r – 1.
Мозг закипел окончательно, а сон все не шел. Итак, если сложить два движения, то должны получиться вот такие уравнения:
х = (R – r)cost + (r – k)cos((R/r – 1)t),
y = (R – r)sint + (r – k)sin((R/r – 1)t).
Так? Нет, подозрительно это, что-то здесь не то. Известно, что если катить внутри окружности вдвое меньшую окружность, то точка на ее краю опишет отрезок прямой, а именно диаметр. А у нас что получается? R = 2r, k = 0…
x = (R – R/2)cost + (R/2 – 0)cos((2 – 1)t) = Rcost,
y = (R – R/2)sint + (R/2 – 0)sin((2 – 1)t) = Rsint.
Это же окружность, а не диаметр… Где же я ошиблась? Попробуем еще раз представить оба движения… Ага, вот оно! Если центр шестеренки движется против часовой стрелки, как следует из уравнений выше, то тогда сама шестеренка будет вращаться по часовой стрелке! Меняем один плюс на минус, и вот он, окончательный результат!
х = (R – r)cost + (r – k)cos((R/r – 1)t),
y = (R – r)sint – (r – k)sin((R/r – 1)t).Утром я тут же записала формулы и полезла экспериментировать. Все сработало! Вот некоторые смоделированные мною линии:
картинки
(R = 24, r = 16, k = 3),
(R = 32, r = 7, k = –2),
(R = 36, r = 11, k = –10).Кроме того:
при R = 3r, k = 0 получается дельтоида;
при R = 4r, k = 0 получается астроида,
и вообще при k = 0 получаем разнообразное семейство гипоциклоид.