Здесь я расскажу, как при помощи математических формул нарисовать красивую звездочку к 23 февраля. В конце поста вы найдете математическую открытку к 8 Марта.
Этот пост является продолжением моего предыдущего поста Математические рисунки для начинающих.
Сразу оговорюсь, что звезду можно нарисовать, соединив вершины правильного пятиугольника через одну (статья на Википедии), но мне хотелось бы получить простую аналитическую формулу, которую можно записать в одну строчку.
Будем использовать полярные координаты : — длина радиус-вектора, — ориентированный угол между осью Ox и радиус-вектором.
Сначала нарисуем вот такую звездочку, а потом повернем ее на 90° против часовой стрелки.
Нам понадобится полярное уравнение прямой. Чтобы получить это уравнение, сначала запишем нормальное уравнение прямой:
Здесь — угол между вектором нормали к прямой и осью Ox, — отклонение начала координат от прямой, которое равно плюс или минус расстоянию от начала координат до прямой в зависимости от направления вектора нормали к прямой.
Подставляя в нормальное уравнение выражение декартовых координат через полярные , получаем полярное уравнение прямой:
Для того чтобы задать звезду в полярных координатах, разделим множество полярных углов (или, если хотите, единичную окружность) на 10 равных частей и на каждом промежутке зададим прямую со своими параметрами и . Заметим, что в силу симметрии звезды параметр будет один и тот же для всех прямых (для всех ).
Посмотрите на картинку в самом начале поста. Последняя формула — это итоговое уравнение звезды, связывающее полярные координаты и . Это уравнение получается из уравнения преобразованием поворота звезды на угол против часовой стрелки. — это кусочно-постоянная функция, определяющая угол наклона прямой на каждом промежутке полярных углов.
Найдем параметры и на промежутке (участок А на рисунке).
На рисунке — половина угла луча звезды, — вектор нормали к прямой.
Для данного промежутка , параметр находим из полярного уравнения прямой для : . Здесь — расстояние от начала координат до вершины звезды.
Как было сказано выше, для всех участков параметр один и тот же, мы его уже нашли. Для участка Б параметр будет противоположный: .
Теперь нам остается найти значения параметра для остальных лучей звезды. Пронумеруем их: для рассмотренного луча звезды при порядковый номер . Порядковому номеру соответствует промежуток .
Очевидно, что при переходе от луча звезды к следующему к параметру прибавляется . Следовательно, для луча с номером имеем (*).
Для заданного номер луча можно найти из неравенства . Получим .
Каждый луч звезды состоит из двух отрезков: на промежутке в формуле (*) для нужно взять знак «минус», а для промежутка — знак «плюс».
Знак можно записать следующим образом: .
Вот, собственно, и всё. Определив функции и (см. картинку в самом начале), можно записать выражение для функции . А уже эта функция входит в полярное уравнение прямой.
Параметр (половина угла луча звезды) можно варьировать. Приведенная в начале звезда соответствует значению . При получаем звездочку, похожую на морскую звезду:
При получаем остроконечную звезду:
Чтобы нарисовать звезду в Wolfram Mathematica, можно использовать следующий код:
gamma = Pi/10;
rho = 1;
p = rho*Sin[gamma];
k[phi_] := Floor[(phi + 0.2*Pi)/(0.4*Pi)];
s[phi_] := Sign[phi - 0.4*k[phi]*Pi];
alpha[phi_] := s[phi]*(Pi/2 - gamma) + 0.4*k[phi]*Pi;
PolarPlot[p/Cos[phi - Pi/2 - alpha[phi - Pi/2]], {phi, 0, 2*Pi}, PlotStyle -> Directive[Red, Thickness[0.01]]]
В заключение приведу математическую открытку к 8 Марта.
Эта кривая — не что иное, как перевернутая лемниската Бернулли.
Автор: grenkin