Задаваемая средняя линия. Гильошь — бордюр. Обновление 0.64

Это обновление макроса Конструктор узоров, за номером 0.64, будет достаточно глобальным, и статья о нём вышла большой. Но, в ней я стараюсь пояснить многие тонкие моменты, которые нашёл в ходе работы и поэтому, надеюсь, она будет полезной!
Основные нововведения  это: линейный гильош, который иначе ещё называют «бордюр» и добавлена возможность задавать модулирующую среднюю линию в качестве независимой отдельной линии. Начну со второго.
Что делает модулирующая линия? Давайте рассмотрим на примере. Вот простейшая розетка, с такими вот параметрами и ортогональным притяжением (это означает, что модулирования заполняющей кривой не происходит!).
Если убрать галочку у пункта «Ортогональное притяжение к границами», то картинка изменится существенно!

Внешне выглядит очень хаотично, но главное, даёт понять наглядно, что происходит. А именно — направление заполняющей кривой теперь отклоняется дополнительно согласно нормали к кривой, которая образована как среднее между линиями образующими границу гильоша. Звучит сложно (и это и правда понять не легко!), но в целом разобраться можно. Ясное дело, нам такой узор не особо нужен, но и отрегулировать его сложно, так как центральная модулирующая линия напрямую зависит от амплитуды кривых (да и их частоты), обрамляющих гильош. А значит, тяжело что либо с этим поделать напрямую. Но, если задавать независимую центральную линию, то появляется возможность полностью контролировать модуляцию заполняющей линии:
Хорошо видно, что розетка преобразилась и стала и не скучной, и не хаотично выглядящей.
Чтобы добиться этого, надо поставить чекбокс «Задаваемая центральная линия», то разблокируется кнопка «Выбор централи», в которой появляется и задаётся требуемая линия.  При нажатии на неё, появляется форма «Узор»:

В принципе, она полностью повторяет задание линии обрамления (по существу используются те же самые алгоритмы и возможности). Но есть очень важный момент: надо очень аккуратно задавать значение параметров периода и главное — амплитуды! Период желательно задавать кратный периодам обрамляющих кривых. А амплитуда в очень редких случаях должна быть больше  1/5 или даже 1/10 максимальной амплитуды у любой из обрамляющих кривых! А наилучшие результаты выходят при значениях меньших 1 (иногда намного меньших)! Иначе, вместо модуляции алгоритм создаст хаотическое награмождение кривых!
Можно поэкспериментировать с разными типами кривых и их параметрами:

Не всегда результат получается реально красивым, но как говорится — есть широкое поле для эксперимента и для создания чего то своего уникального!
И напоследок, что касается централи для именно розеток, хочу добавить, что эксцентриситет кривой будет средним между эксцентриситетами внешней и внутренней обрамляющими кривыми.

Бордюры.

Бордюры, по существу используют тот же алгоритм построения что и розетки, и отличаются тем, что вместо радиуса теперь используется два параметра: длина огибающей (и соответственно бордюра) и смещение. И есть два важных пункта в задании параметров огибающих линий:

    • Длина линий огибающих должна совпадать
    • Верхняя линия должна быть смещена выше нижней, причем желательно таким образом, чтобы форма огибающей кривой, с учётом заданной ей амплитуде, не пересекалась с формой нижней огибающей.

Иначе, алгоритм даст сбой!
В остальном, в принципе работа с кривыми повторяет работу с розетками:

Работа с централями так же повторяет (почти!) работу с таковыми у розеток:

Конечно, на этом возможности и особенности работы с бордюрами далеко не разобраны, но это будет лучше сделать в видеоуроках, которые я надеюсь скоро выйдут!

Добавить комментарий