6-3 ЗАМЕТАЮЩИЕ ПОВЕРХНОСТИ
Пространственную поверхность также можно получить путем перемещения объекта, например отрезка, ломаной или кривой вдоль некоторой кривой, в пространстве. Получающиеся в результате поверхности называются заметающими. Генерация заметающих поверхностей часто используется в геометрическом моделировании. Самый простой заметающий объект - точка. Результатом заметания точки является, конечно, не поверхность, а пространственная кривая. Тем не менее, на этом примере хорошо иллюстрируется основная идея.
Рассмотрим координатный вектор
, перемещаемый вдоль кривой, заданной заметающим преобразованием
. Координатный вектор
, представляющий получающуюся в результате кривую, задается выражением
,
. (6-14)
Преобразование
определяет форму кривой. Например, если направляющая есть отрезок длины
, параллельный оси
, то (см. уравнение 3-14)
,
.
Если направляющая есть окружность с центром в начале координат, лежащая в плоскости
, то (см. уравнение 3-8)
,
,
где
и для
,
. Здесь подстрочный индекс
используется для обозначения начальной, или стартовой точки.
Сложные направляющие можно сконструировать с помощью объединения более простых. Например, после объединения двух предыдущих преобразований получим один оборот спирали вдоль оси
, т. е.
,
.
Самая простая заметающая поверхность получается в результате перемещения отрезка вдоль направляющей. Напомним, что параметрическое уравнение отрезка
,
. (6-15)
Соответствующая заметающая поверхность задается уравнением
,
,
, (6-16)
где
снова обозначает заметающее преобразование. Если оно состоит только из переносов и/или локальных или общих масштабирований, то в результате возникает плоская поверхность. Если заметающее преобразование включает повороты, то поверхность не будет плоской. На рис. 6-13 изображена спиральная заметающая поверхность, полученная из отрезка, в начальный момент параллельного оси
, с помощью одновременного переноса вдоль оси
и вращения вокруг нее. Более подробно этот метод объясняется в следующем примере.
Пример 6-4 Линейчатая заметающая поверхность
Рассмотрим отрезок, лежащий в плоскости , параллельный оси и заданный концевыми точками и . Найти точку с параметрами , на заметающей поверхности, образованной одновременным переносом отрезка на 10 единиц вдоль оси и его поворотом на вокруг оси .
В данном случае матрица заметающего преобразования - переноса и последующего поворота, задается матрицей
.
Параметрическое уравнение отрезка

.
Из уравнения (6-15) заметающая поверхность определяется следующим образом:


и

.
Результат изображен на рис. 6-13.
|
Для создания заметающих поверхностей также могут быть использованы параметрические кривые, например кубические сплайны, параболические сплайны, кривые Безье и В-сплайны.

Рис. 6-13 Спиральная заметающая поверхность.

Рис. 6-14 Заметающая поверхность на основе кубического сплайна. (а) Кривая; (b) поверхность.
В этом случае уравнение поверхности идентично уравнению (6-15), где
теперь представляет параметрическую кривую. На рис. 6-14 показана заметающая поверхность, созданная из одного сегмента кубического сплайна, перенесенного вдоль оси
. Этот метод, иллюстрируется примером.
Пример 6-5 Заметающая поверхность с кубическим сплайном в качестве образующей
Рассмотрим поверхность, образованную в результате переноса на 10 единиц вдоль оси кубического сплайна, определяемого следующими данными: , , , .
Заметающая поверхность задается формулами:
, , .
Нормализованный сегмент кубического сплайна задается (см. уравнение 5-27)
.
Сегмент кривой изображен на рис. 6-14а.
Заметающее преобразование (см. уравнение 3-14) имеет вид:
.
Следовательно,
.
Для , 

.
Результат изображен на рис. 6-14b.
|
Следует позаботиться о том, чтобы избежать вырождения поверхностей или их частей при генерации заметающих поверхностей из отрезков и кривых. Пример этого приведен на рис. 6-15. Здесь
-образную кривую, расположенную в плоскости
, перемещают параллельно оси
. Заметим, что «хвосты» с левой и правой сторон являются вырожденными частями поверхности (т. е. отрезками) с нулевой площадью. Такие вырожденные части поверхности могут породить проблемы в геометрических моделирующих системах.
Кроме незамкнутых кривых для создания заметающих поверхностей используются замкнутые ломаные и кривые. При добавлении концевых поверхностей заметающая поверхность ограничивает конечный объем в пространстве. Подобным способом объемные примитивы создаются во многих геометрических моделирующих системах. Перемещаемый вдоль прямой направляющий квадрат или прямоугольник порождает прямоугольный параллелепипед. Окружность, перемещаемая вдоль прямой направляющей, порождает цилиндр. Окружность с уменьшающимся радиусом, перемещаемая вдоль прямой направляющей, порождает конус. Также возможно вращение вокруг направляющей оси. На рис. 6-16 показана заметающая поверхность, образованная из плоского квадрата, перпендикулярного оси
и перемещаемого вдоль оси
с одновременным вращением на
вокруг этой же оси.

Рис. 6-15 Заметающая поверхность с вырожденными участками.

Рис. 6-16 Заметающая поверхность, образованная квадратом, перемещаемым вдоль оси
и одновременно вращаемым вокруг нее.
При перемещении плоского многоугольника или замкнутой кривой вдоль произвольной направляющей кривой следует отметить два важных момента. Во-первых, какая точка многоугольника постоянно лежит на направляющей? В общем случае это может быть любая точка многоугольника или замкнутой кривой. Для различных точек порожденные поверхности различаются.
Во-вторых, каково направление нормали многоугольника или замкнутой кривой во время перемещения вдоль направляющей? В этом случае обычно применяется два подхода. Нормаль может быть направлена как касательная к направляющей кривой. Либо может задаваться независимо от направляющей. Последняя альтернатива очень гибка. Два примера изображены на рис. 6-17, где показаны заметающие поверхности, образованные квадратом, центрированным на оси
и передвигаемым вдоль направляющей
,
. На рис. 6-17а нормаль направлена как ось
. На рис. 6-17b нормаль в каждой точке направлена так же, как и касательная к направляющей. Отметим разницу между этими двумя заметающими поверхностями. Детальный пример дополнительно иллюстрирует эту идею.
Пример 6-6 Сложная заметающая поверхность
Поверхность создается перемещением плоского квадрата, заданного вершинами , , , , вдоль направляющей кривой , . При этом направление нормали к многоугольнику совпадает с касательной к образующей.
Направление касательной к образующей равно . Таким образом, угол поворота вокруг оси , необходимого для сонаправленности нормали многоугольника и касательной, равен
.
Заметающее преобразование равно, таким образом,
.
При угол поворота равен
.
Тогда при квадрат задается матрицей

.
Результат изображен на рис. 6-17b.
|

Рис. 6-17 Прямоугольник перемещается вдоль направляющей кривой. (а) Нормаль направлена как ось
; (b) нормаль направлена так же, как касательная к направляющей кривой.
Дополнительную информацию о заметающих поверхностях можно найти в [6-9] и [6-10], а также в приведенной в них библиографии.