Поздравляю Хабр и Хаброжителей с Новым 2021 годом и дарю всем нам вот такую незатейливую и приятную Функциональную Ёлку (fЁлка). В этой статье я рассказываю как сделать ёлочку на мониторе за 10 минут. Свою вторую статью я посвящу тому, как "слепить" снеговика, положить подарки под ёлку и всё это припорошить сверху снегом.
Базовая идея
Весь рисунок - это набор математических функций от двух аргументов, x и y. Все они так или иначе базируются на SDF. Для рисования графиков использовался desmos.com.
![Как сделать ёлку, если ты математик - 1 Как сделать ёлку, если ты математик - 1](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik.png)
Базовые функции
Ограничение нуля
Эллипс
![Как сделать ёлку, если ты математик - 5 Как сделать ёлку, если ты математик - 5](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-5.png)
Ёлка
Опишем основу ёлки
![Как сделать ёлку, если ты математик - 7 Как сделать ёлку, если ты математик - 7](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-7.png)
Добавим ветви
![Как сделать ёлку, если ты математик - 9 Как сделать ёлку, если ты математик - 9](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-9.png)
Пригнём кончики ветвей к земле
![Как сделать ёлку, если ты математик - 11 Как сделать ёлку, если ты математик - 11](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-11.png)
Ограничим ель сверху
Ель съехала вниз, это исправится позднее
Параллельный ход: ограничение снизу
Ограничитель
![Как сделать ёлку, если ты математик - 15 Как сделать ёлку, если ты математик - 15](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-15.png)
Итог данного этапа
Комбинируем
![Как сделать ёлку, если ты математик - 19 Как сделать ёлку, если ты математик - 19](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-19.png)
Финальный штрих
![Как сделать ёлку, если ты математик - 21 Как сделать ёлку, если ты математик - 21](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-21.png)
Займёмся стволом
Эллипс с более острыми углами
![Как сделать ёлку, если ты математик - 23 Как сделать ёлку, если ты математик - 23](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-23.png)
Объединение объектов
Объединение, пересечение и вырезание базируются на простейшей операции min(a, b). В зависимости от знаков перед a и b получаются различные булевы операции.
Листва - a(xy), ствол - b(xy)
![Как сделать ёлку, если ты математик - 25 Как сделать ёлку, если ты математик - 25](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-25.png)
Финал
![Как сделать ёлку, если ты математик - 27 Как сделать ёлку, если ты математик - 27](https://www.pvsm.ru/images/2021/01/01/kak-sdelat-yolku-esli-ty-matematik-27.png)
Все формулы для вставки в desmos.com
a=2-0.2cosleft(6.8y+0.7left|xright|right)left(y-13right)-2left|xright|-0.51left(y+left|yright|right)+5left(y-left|y-2right|right)
b = 0.1x^{10}+30left(y-1right)^{10}-1
minleft(-a, bright)le0
Продолжение следует...
Автор: RigelGL