Box Pleating - основы структурной оптимизации (часть 9): Пифагорово растяжение, часть 1
Пифагорово растяжение
В предыдущих статьях мы с вами прошли увлекательный путь от первых линий на листе до создания полноценных паттернов, напоминающих архитектурные чертежи. Мы учились чувствовать ритм сетки, понимать язык рек и полей, освоили блочную и последовательную стыковку и научились бороться с неизбежными болотами пустот. Box Pleating стал для многих надежным инструментом, верным другом, который позволяет воплощать фантазии без излишнего погружения в сложные математические дебри. Однако у каждой медали есть обратная сторона, и у нашей любимой методики она тоже присутствует. Это своеобразная плата за простоту и строгость прямых углов – потеря существенной части рабочей области листа. Модели, созданные классическим box pleating методом, часто требуют больше бумаги по сравнению с аналогами, спроектированными в других секторных и угловых методиках. Для мастера, стремящегося к максимальной эффективности каждого миллиметра бумаги, эта разница может быть ощутимой и становится вызовом (рис.1).

Но природа оригами не терпит тупиков и там, где кажется, что возможности исчерпаны, всегда находится дверь в новое измерение. Такой дверью становится техника Пифагорова растяжения – метод, позволяющий методу box pleating достичь почти той же оптимальности, что и у 22,5 или circle packing, сохраняя при этом свою структурную целостность.
Представьте себе ситуацию, когда вы размещаете поля на листе, словно фигуры в Тетрисе, и вдруг обнаруживаете, что для еще одной важной створки или увеличения длины существующих (рис.2.1), просто не остается места. Многоугольники полей начинают накладываться друг на друга, нарушая гармонию паттерна. В классическом Box Pleating - это сигнал к отступлению или увеличению листа. Но в мире Пифагорова растяжения это лишь начало интересной игры (рис.2.2-2.3). Главное правило здесь звучит как закон физики для бумажной вселенной: окружности, вписанные в поля, ни при каких обстоятельствах не должны перекрываться, ведь именно они определяют длину будущих створок или просто соединительных рек. Сами же многоугольники – это лишь территория вокруг них, эту территорию можно перекраивать, изменять и растягивать, чтобы избежать конфликтов.

На первый взгляд может показаться, что такой маневр имеет смысл лишь при последовательной стыковке полей, однако подготовленные блоки легко восстанавливаются через узлы координатной сетки, а значит и легко располагаются в любом заранее выбранном месте с остальными элементами блоков. Рассмотрим этот элемент подробнее и его применение на практике.
Теоретические основы.
Как правило, при работе с данными конструкциями оперируют свойством биссектрис острых углов прямоугольного треугольника, которые пересекаются под углом 135 градусов и, как следствие, задача сводится к перебору Пифагоровых троек. Про данный вариант написано множество работ, и сейчас мы не будем на нем останавливаться, тем более, соответствие Пифагоровым тройкам совершенно необязательно. Это не всегда удобно и зачастую существенно усложняет подготовительную работу и практическое применение. Приведенный дальше метод (Пифагорова змейка) существенно упрощает этот вопрос с практической точки зрения и делает внедрение всех возможных вариаций Пифагоровых растяжений тривиальной задачей даже для новичков, которые только приступили к освоению BP, не говоря уже о том, что вариаций подготавливаемых для дальнейшего внедрения блоков становится неизмеримо больше.
Итак, обратите внимание на следующую конструкцию (рис.3.1). На ней расположены два одинаковых прямоугольника a x b, расположенных так, как показано на рисунке. Стоит заметить, что при таком их расположении угол на стыке диагоналей (угол - С) всегда будет равен α+(90-α) = 90 градусов. И соответственно углы при основании по 45 градусов, так как треугольник ABC - равнобедренный. Казалось бы, ничего в этом интересного для нас нет, но это только на первый взгляд. Таким тривиальным образом, выбирая параметры прямоугольника Пифагорова растяжения и располагая его вдоль узлов единичной сетки, мы буквально на лету можем построить угол в 45 градусов любой ориентации и в любом направлении.

Здесь-то и начинается вся магия - в результате такого простого построения мы обеспечиваем правильное течение bp-рек вдоль линий единичной сетки. Посмотрите на рисунок 3.2 - как вы можете заметить, практически любая река, проходящая через угол в 45 градусов после двух симметричных отражений, выходит на курс, перпендикулярный исходному, причем само поле вокруг которого она начала свое движение не теряет ни миллиметра длины. Река будет просто касаться окружности, формирующей створку,
Этот момент в свою очередь лежит в основе более сложных mix pleating методик, о которых мы еще поговорим в будущем.
и это позволяет компоновать такие прямоугольные треугольники в произвольном количестве и в любой степени растяжения, сохраняя совпадение вершин с узлами сетки.
Так что же представляют из себя классические Пифагоровы растяжения (рис.3.3)? Давайте рассмотрим эту структуру немного подробнее. Как видно из рисунка - в чистом виде, то есть в той вариации, которую впервые исполнил и популяризовал Сатоши Камия (как вы увидите дальше, этот трюк можно развить в куда более интересные вариации), объединив два прямоугольных треугольника, вдоль одного из катетов, у нас получается идеальный параллелограмм, с углами 45 и 135 градусов - хотя об этом можете не думать, математика уже свое дело сделала :). И как итог, у нас есть два одинаковых поля - шириной b и рекой a - между ними.
В дальнейшем будем исходить из того, что a и b - не имеют общих делителей, иначе мы будем усложнять расчеты, работая всего лишь с подобными фигурами.
Это очень удобно для практического использования, потому что выбрав нужный шаблонный прямоугольник (a x b), можно при формирования блока выбрать оптимальный маршрут для движения змейки вдоль прямоугольников и автоматически получить требуемый набор полей и рек с оптимальной экономией рабочего пространства и времени на расчеты.

Река совершенно не привязана к полям, поэтому мы легко можем использовать ее ширину как для самостоятельного внедрения в структуру, так и для изменения длины створок, изменяя ее траекторию в пользу полей, создавая бесчисленные варианты балансировки. Так, например, можно увеличить только одну из створок на ширину реки, оставляя второе поле с прежними параметрами (рис.4.2), заимствовать часть реки в обе створки (рис. 4.3), либо оставить реку в покое и работать с изначально с одинаковыми полями (рис. 4.1). Более того, сама река между полями может спокойно поглощать створки - хоть всю длину створок (рис.5.1), хоть часть (рис. 5.2-5.3), все зависит от вашего проекта - возможностей для манипуляций действительно множество. Достаточно выбрать прямоугольник, вдоль которого будет ползти змейка, а все остальное за вас сделает геометрия угла 45 градусов.

В принципе, можно было бы на этом и остановиться, но на самом деле - это только лишь начало, потому что сами растяжения можно модифицировать и оптимизировать. Потенциал змейки из произвольных прямоугольников куда шире, чем может показаться на первый взгляд. Посмотрите на данный паттерн (рис.6).

Может показаться, что он не имеет ничего общего с растяжками - какие-то странные многоугольники, прямоугольники, нестандартные повороты рек, которые даже box pleating напоминают-то с трудом, но фактически это они и есть. Признаю, что этот паттерн не имеет ничего общего со здравым смыслом, он был сделан в течении 10 минут и в лучших традициях той самой мартышки, которая должна была за миллиарды лет случайным образом напечатать ″Войну и Мир.″ Но тем не менее, поверьте - у данного паттерна есть вполне себе математическое основание считать себя паттерном какой-то псевдо-реальной модели. Более того, пользуясь принципами Пифагоровой змейки, можно научиться все делать осмысленно, и что самое важное - математически безупречно и в рамках обычной координатной сетки. Давайте разберемся подробнее.
Расширенные возможности Пифагоровой змейки
Обратите внимание на фигуры, из которых состоит паттерн на рисунке 6. Как мы видим, одними параллелограммами Пифагорово растяжение не ограничивается. Здесь вы найдете и трапеции, и квадраты, шестиугольники, прямоугольники, невыпуклые фигуры и многое другое. Что их связывает? Давайте рассмотрим простой пример замены (рис.7)

Если мы расположим равнобедренный прямоугольный треугольник с вершинами в узлах полей, мы можем наблюдать очень интересный маневр реки. Она самостоятельно подстроится под форму входящих и выходящих в состав структуры элементов. Это может показаться частным случаем - но нет, этот маневр можно осуществить всегда, на любых элементах совершенно произвольной структуры, никоим образом не повлияв на направление входящих соединительных линий, рек, длину створок и их расположение. При этом вершина прямоугольного треугольника - всегда попадает в узел сетки и не выходит за пределы нижней реки (рис.8).

Это следует из того, что векторы AB и BC имеют координаты одинаковой четности, тогда вектор АС, равный их сумме также имеет координаты одинаковой четности Xc - Xa ≡ Yc - Ya (mod 2), a значит, на отрезке AC как на диагонали можно построить квадрат с вершинами в узлах сетки.
Может показаться, что это совершенно бесполезный прием, но это не совсем так. Когда мы заменяем соединительные ориентирные BP-линии на такую комбинацию, то мы не просто декорируем CP замысловатыми конструкциями, но и балансируем толщину между соседними створками. Тем самым мы балансируем и разгружаем толщину длинных частей модели в пользу маленьких соседних, избавляя структуру от перекосов. Так что вы уже сейчас можете достать свои старые BP проекты и без какого-либо вреда для результата разгрузить структуру без перемещения полей только лишь заменой некоторых узлов.
Но для нас это значит самое главное - что при всех манипуляциях со змейкой, используя эталонный для ее запуска прямоугольник (a x b), мы можем совершать змейкой совершенно любые траектории и всегда попадать измененными итоговыми многоугольниками в узлы сетки. Для примера рассмотрим кратные изменения уже известных нам фигур при помощи единичного прямоугольника и поближе рассмотрим, что же там происходит.

Как мы можем заметить на рисунке 9 - двумя совмещенными прямоугольниками траектория змейки не ограничивается - движения могут быть совершенно произвольными, и точно одними выпуклыми фигурами дело не ограничивается. Легкие подготовительные манипуляции с движением змеи и мы легко можем соединить самые разные комбинации полей паттерна, внедряя необходимые реки, нуждами проекта. Так что в принципе идентификация Пифагорова растяжения по наличию или отсутствию всего лишь параллелограммов не совсем корректна. Пифагоровы многоугольники на всем своем протяжении создают совершенно произвольную карту напряжений (где планируется сформировать новое поле или пропустить реку) без особых усилий и какой-либо математической подготовки.

Как правило, этап запуска нашей змейки делится на несколько этапов:
- Определение карты створок и соединительных линий (″напряжений″ на поверхности листа, состав полей и рек) (рис. 10.1)
- Выбор подходящей дорожки для змейки (прямоугольник a x b) и траектории ее движения (рис. 10.2)
- Сверка с направлением соединительных линий, проверка на корректность стыковки (рис. 10.3)
- Построение соединительных линий (рис. 10.4)
При чем это прекрасно работает, как при создании паттерна с нуля, последовательно или блочно (где эти самые элементы подготавливаются заранее), так и локально, если нам просто требуется ″разрулить″ какую-то непростую ситуацию, где нужно зафиксировать поля в каком-то конкретном положении и состыковать их в пределах каких-то ограничений (рис. 11).

Внедрение этой техники в ваш арсенал не означает отказ от привычных принципов Box Pleating. Напротив, это их эволюция, переход на следующую ступень мастерства. Если классический метод можно сравнить с игрой на инструменте в пределах одной октавы, то Пифагорово растяжение добавляет новые ноты, делая мелодию паттерна богаче и выразительнее. Да, схемы становятся сложнее, линии переплетаются в замысловатые узоры, но за этой видимой сложностью скрывается стройная логика. Освоив замысловатые траектории движения змейки, вы получите в руки мощный инструмент оптимизации. Вы сможете создавать модели, которые раньше казались невозможными на квадратной сетке, или значительно уменьшать размер бумаги, менять структуру створок, делая их более органичными для конкретного проекта. Путь к пониманию Пифагорова растяжения лежит через практику и внимательное наблюдение за поведением змейки в структуре СР и создаваемые ею напряжения на поверхности листа. Не бойтесь экспериментировать с направлениями, ищите точки, где железные рамки сетки можно смягчить гибкостью растяжения и у вас все получится. Используйте эту технику мудро, сочетайте её с полученными ранее знаниями о блоках, реках и оптимизации, и ваши модели обретут новую жизнь, став больше, детальнее и совершеннее. Ведь великие модели начинаются не с первого сгиба, а с глубокого понимания пространства, которое этот сгиб заполняет, и умения видеть скрытые резервы в каждом сантиметре бумажной плоскости.
Изложенного материала уже более чем достаточно для существенной доработки BP проектов, но данная техника выходит далеко за пределы данной статьи. Это касается и анализа поведения змейки, ее вариаций, быстрого поиска единичного прямоугольника для ее движения и многое, многое другое. Но об этом поговорим с следующих статьях.
Продолжение следует...
Comments
No comments yet