![image](https://miro.medium.com/max/1400/1*YEV9ttjMohsh1Z4fLe8IAg.png)
«В гудении струн есть геометрия, в расположении сфер есть музыка» — Пифагор
В детстве у меня была игрушка под названием «спирограф», которая досталась мне в наследство от родителей. Я любил её. Она генерировала сложные узоры и шаблоны, многократно повторявшиеся по кругу. Для восьмилетнего меня это было настоящее волшебство.
![](https://miro.medium.com/max/1588/0*ItpkjIWWwa-bQ1W3.jpg)
Рисовать им было очень просто — вставляешь зубчатое колесо с несколькими отверстиями внутрь ещё одного зубчатого кольца побольше, в одно из отверстий засовываешь конец ручки и рисуешь узоры.
Спустя 20 лет мои инструменты немного изменились, но, тем не менее, любовь к сложным узорам никуда не делась. Да, я нашёл новые способы изучения этих узоров, и меня не перестаёт удивлять то, что я могу делать и куда меня может завести воображение. Обычно для генерации красивых изображений я пользуюсь библиотекой Processing (упрощённой формой Java), созданной Processing Foundation (примеры можно найти здесь). Существуют и другие способы, например, OpenFrameworks, Nannou и Cinder.
Но на этот раз я решил использовать нечто совершенно иное. Всё началось с того, как я занимался по учебнику статистики и снова познакомился с параметрическими уравнениями (представлениями). Я стал исследовать их, запуская уравнения в Excel и выводя их на графики, чтобы убедиться в правильности значений и получить интуитивное понимание таких уравнений.
![](https://miro.medium.com/max/1530/1*6WTCVDr8Nc9u21TwwxkVPA.png)
a = 10; b = 2
Параметрические представления
Если объяснять просто, то параметрическое уравнение (представление) — это ещё один способ выражения функции. Обычно они используются в задачах или уравнениях кинематики (задачах основ физики) для описания таких свойств, как траектория ракеты или орбита планеты, вращающейся вокруг массивного объекта.
Давайте рассмотрим следующую функцию, которая создаёт параболу.
![](https://miro.medium.com/max/260/1*slxmFfErsEUWZdZNmnRMNw.png)
График параболы (y = x²)
Чтобы получить эту функцию, мы можем разложить (при помощи вузовской алгебры) вышеприведённое уравнение, изолировав X и Y и сгенерировав отдельный параметр, входящими данными которого является t, как показано в функции ниже.
![](https://miro.medium.com/max/328/1*Flw3SmbB3WUOg0DOjhUoXQ.png)
![](https://miro.medium.com/max/336/1*EijhXCNdtPq_KTWpqXGTqw.png)
Две параметрические функции параболы
По сути, если мы создадим таблицу этих двух интерпретаций функции, то они будут давать одинаковые ответы.
![](https://miro.medium.com/max/728/1*XGULLK8Yk66-jXB1NNHPtA.png)
![](https://miro.medium.com/max/1032/1*Bwu8h7j5wYeAeTfqein3UQ.png)
Обычная функция (сверху) и параметрическая функция (снизу)
Всё довольно легко, правда?
По сути, когда мы используем две функции для генерирования координат X и Y, то можем, как вы увидите ниже, создать огромное количество графики, примеры которой представлены в этом посте. (Помните, что это всего один набор уравнений).
![](https://miro.medium.com/max/1430/1*6tO7U9GnSEO6tn2LheaCiQ.png)
![](https://miro.medium.com/max/1288/1*w5jh0Bp8daVa0dm2DEzIVQ.png)
a = 23; b = 2
![](https://miro.medium.com/max/2450/1*oZqAwv3wHN70ziqqVh5t2g.png)
![](https://miro.medium.com/max/2388/1*ZvPHpwmsSHeaTt15x6cqHg.png)
a=5; b=30
![](https://miro.medium.com/max/2364/1*evTBz2T_VjMAz-_To2hRbA.png)
![](https://miro.medium.com/max/2512/1*s__7UQ7kLyNNv4hXhfZoVg.png)
![](https://miro.medium.com/max/3018/1*KSigKdFHxOnkV5LNUblZjA.png)
a=5; b=2.51
А теперь самое интересное — ниже я опишу процесс, благодаря которому сгенерировал все представленные в посте изображения.
Как творить в Excel
1. Откройте новую таблицу и создайте на листе следующее.
![](https://miro.medium.com/max/890/1*pRNH_Jfo_TbLBkMcvOD_Qg.png)
2. Под всеми изображениями я добавил коэффициенты a, b и растянул вниз листа значения (2 ≥ t ≤ 2000).
3. Для X используйте следующую формулу, начинающуюся в C6
=($C$2-$D$2)*COS(B6)+$D$2*COS(B6*(($C$2/$D$2)-1))
4. Для Y используйте следующую формулу, начинающуюся в D6
=($C$2-$D$2)*SIN(B6)-$D$2*SIN(B6*(($C$2/$D$2)-1))
5. Растяните вниз все формулы, чтобы X и Y были заполнены значениями до t=2000 и выделите X и Y.
6. Перейдите на вкладку «Главная», выберите «Диаграмма рассеяния» (scatterplot) и нажмите «Точечная (XY) с гладкими линиями».
![](https://miro.medium.com/max/1836/1*TE-1JP4WeDjANS0m-B0spQ.png)
Обратите внимание, что можно менять тип диаграммы и что он выглядит примерно так:
![](https://miro.medium.com/max/1302/1*qiA0u_FViuDlgTSMukTGzw.png)
7. Теперь удалим оси X и Y и изменим размер изображения таким образом, чтобы оно выглядело интересно.
![](https://miro.medium.com/max/2740/1*qdd5SEpvtoqmHVIkk55R5A.png)
Так вы получите изображение, которое затем можно будет экспортировать как графический файл. Теперь можно поэкспериментировать с ним, меняя коэффициенты и наблюдая за различными создаваемыми структурами параметрического изображения. Кроме того, можно изменить цвет фона и изображения, выбрав изменяемый компонент изображения и использовав инструменты форматирования, после чего выбрав форму и контур фигуры.
![](https://miro.medium.com/max/1636/1*mh3T7kNFhO5smMOnPuQPlA.png)
Или можно скачать готовую таблицу Excel с Dropbox.
![](https://miro.medium.com/max/2876/1*d_KEnOn_lDNI6BAmGp8VAg.jpeg)
Чтобы добавить текст, используйте любой графический редактор или даже сам Excel, после чего можно или сделать скриншот, или экспортировать изображение, а затем использовать его в своих графических работах.
![](https://miro.medium.com/max/2524/1*wM169hWbDPXaq_JMAF9lsQ.png)
![](https://miro.medium.com/max/2332/1*HJZM8YIWc3j0qE2QmssYNg.png)
a=5; b=1
![](https://miro.medium.com/max/2876/1*QNhidll4uEGkRC6gONiJWg.png)