Поздравляю Хабр и Хаброжителей с Новым 2021 годом и дарю всем нам вот такую незатейливую и приятную Функциональную Ёлку (fЁлка). В этой статье я рассказываю как сделать ёлочку на мониторе за 10 минут. Свою вторую статью я посвящу тому, как "слепить" снеговика, положить подарки под ёлку и всё это припорошить сверху снегом.
Базовая идея
Весь рисунок - это набор математических функций от двух аргументов, x и y. Все они так или иначе базируются на SDF. Для рисования графиков использовался desmos.com.
Базовые функции
Ограничение нуля
Эллипс
Ёлка
Опишем основу ёлки
Добавим ветви
Пригнём кончики ветвей к земле
Ограничим ель сверху
Ель съехала вниз, это исправится позднее
Параллельный ход: ограничение снизу
Ограничитель
Итог данного этапа
Комбинируем
Финальный штрих
Займёмся стволом
Эллипс с более острыми углами
Объединение объектов
Объединение, пересечение и вырезание базируются на простейшей операции min(a, b). В зависимости от знаков перед a и b получаются различные булевы операции.
Листва - a(xy), ствол - b(xy)
Финал
Все формулы для вставки в 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