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

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

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

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

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

Бордюры.

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

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

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

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

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

Небольшая работа над ошибками (обновления КШ 1.14 и КБК 0.42)

Меня всегда радует положительная обратная связь с моими пользователями! Особенно, если они помогают мне найти ошибки. Вот и на этот раз, было найдено несколько ошибок в Конструкторе бумажных коробок и одна в Конструкторе шкатулок. Я сделал исправления и выкладываю обновления.
В Конструкторе шкатулок, неверно рассчитывалась высота стенок в прямоугольных изделиях (ящики и шкатулки), когда задавался расчет внешних размеров по заданным внутренним, в условии, когда отсутствует крышка.
В Конструкторе бумажных коробок, неверно рисовались нижние клапаны и одна из крышек в склеиваемых коробках, коробка номер 2 и исправил ошибку расчёта клапанов в простых коробках, коробка номер 4.

Так же хочу добавить, что пользователем моего макроса Николаем, ака Claus, с моего разрешения был создан телеграмм канал t.me/cncsoft, посвященный макросам. Кому так проще следить за новостями – подписывайтесь!