Новое тело = Тело1 ОП Тело2
, где ОП это некоторая логическая операция, например, объединение.
Так, объединив два шара, можно получить молекулу:
На рисунке 1 показано объединение двух шаров одинакового размера.
Понятно, что используя новое полученное тело можно комбинировать его с другими такими же телами, которые в свою очередь могут представлять сами из себя комбинациями более простых тел.
Таким способом можно конструировать достаточно сложные конструкции. Многообразие форм, представленное в виде такого способа построения зависит от элементарных "кубиков"-элементов, из которых создаются новые тела, а так же от хитроумности логических операций, при помощи которых происходит соединение тел.
Будем использовать следующие логические операции:
- Объединение - OR
- Пересечение - AND
- Вычитание - SUB
- Отрицание - NOT
Для дальнейшего понимания введем некоторые понятия.
Все наши тела будут размещаться в некотором трехмерном пространстве. Можно считать, что это пространство состоит из пустоты. С другой стороны, все наши тела будут состоять из НЕ пустоты - материала. Формально можно считать, что все тела состоят из одного и того же однородного материала, скажем, алюминия или пластика. Именно это и определяет понятие "твердотельный" в названии подхода в отличие от моделирования поверхностей.
В случае, когда мы производим операции над телами будем говорить, что в нашем пространстве образуется новое тело, которое составляется из материалов исходных тел по особым правилам, соответствующим логическим операциям.
Далее рассмотрим подробно каждую из операций.
Объединение - OR
Это самая простая для понимания логическая операция. По определению тело, полученное путем объединения, состоит из материала обоих тел и каждая точка которого соответствует точке хотя бы одного из составляющих тел.
В случае объединения формула примет следующий вид:
Новое тело = Тело1 OR Тело2
Пример объединения двух шаров мы уже видели на предыдущем рисунке. Для этого случая имеем:
Новое тело = Зеленый_шар OR Синий_шар
Если мы начнем последовательно добавлять новые шары, то можем получить сложные молекулы.
Рисунок 2. Модель ДНК
Пересечение - AND
Тело полученное путем пересечения двух других, состоит из материала, каждая точка которого попадает и в первое и во второе тело.
В случае пересечения формула принимает следующий вид:
Новое тело = Тело1 AND Тело2
В случае наших двух шаров при пересечении получим следующее тело - чечевицу.
Рисунок 3. Пересечение двух шаров.
На изображении хорошо видно, что в результирующее тело попали только те точки шаров, которые попадают в оба шара одновременно.
Чечевица = Зеленый_шар AND Синий_шар
Если в случае объединения из двух непустых тел всегда получается что-то непустое, то в случае пересечения двух непустых тел можно получить пустое множество.
Вычитание - SUB
Тело, полученное путем вычитания одного из другого состоит только из точек, которые принадлежат первому телу за исключением точек, принадлежащих второму.
В случае вычитания формула принимает следующий вид:
Новое тело = Тело1 SUB Тело2
Если из зеленого шара вычесть синий, то получится что-то типа звезды смерти из кинофильма Звездные войны:
Рисунок 4. Зеленый шар без кусочка от синего
Таким образом, получаем формулу Звезды смерти:
Звезда смерти = Зеленый_шар SUB синий_шар
Отрицание - NOT
Отрицание самая непонятная операция. Во-первых, в ней учавствует только одно тело. Во-вторых, после этой операции новым телом будет являться все пространство, кроме тех точек, которые раньше принадлежали исходному телу.
Новое тело = NOT Тело1
Если применить эту операцию к шару, то получится пространство, заполненное материалом шара, а внутри него шарообразная дырка.
Дырка в сыре = NOT Синий шар
Это как дырки в сыре. Их не видно пока не разрежешь. Чтобы увидеть эту дырку можно разрезать (например, пересечь) пространство красным полупространством, образованным, проходящей через центр шара плоскостью:
Рисунок 5. К синему шару применено отрицание, после чего результат разрезан пополам через центр исходного шара.
Конечно, это изображение можно воспринимать двояко, как углубление в плоскости или как выпуклость над плоскостью. Если бы можно было сделать стереоскопическим, то восприятие было бы однозначным.
Формула для вычисления дырки имеем вид:
Дырка от шара = (NOT Синий шар) AND Красное полупространство
Для чего необходима такая странная операция? Оказывается она бывает необходима и полезна при конструировании сложных конструкций. Ну и для полноты перечня логических операций, конечно же!
На этом обзор операций завершен. В следующей главе поговорим о строительных "кубиках" для твердотельных моделей.