Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


6-3 ЗАМЕТАЮЩИЕ ПОВЕРХНОСТИ

Пространственную поверхность также можно получить путем перемещения объекта, например отрезка, ломаной или кривой вдоль некоторой кривой, в пространстве. Получающиеся в результате поверхности называются заметающими. Генерация заметающих поверхностей часто используется в геометрическом моделировании. Самый простой заметающий объект - точка. Результатом заметания точки является, конечно, не поверхность, а пространственная кривая. Тем не менее, на этом примере хорошо иллюстрируется основная идея.

Рассмотрим координатный вектор , перемещаемый вдоль кривой, заданной заметающим преобразованием . Координатный вектор , представляющий получающуюся в результате кривую, задается выражением

,      .                 (6-14)

Преобразование  определяет форму кривой. Например, если направляющая есть отрезок длины , параллельный оси , то (см. уравнение 3-14)

,     .

Если направляющая есть окружность с центром в начале координат, лежащая в плоскости , то (см. уравнение 3-8)

,     ,

где  и для , . Здесь подстрочный индекс  используется для обозначения начальной, или стартовой точки.

Сложные направляющие можно сконструировать с помощью объединения более простых. Например, после объединения двух предыдущих преобразований получим один оборот спирали вдоль оси , т. е.

,   .

Самая простая заметающая поверхность получается в результате перемещения отрезка вдоль направляющей. Напомним, что параметрическое уравнение отрезка

,           .                     (6-15)

Соответствующая заметающая поверхность задается уравнением

,          ,         ,                 (6-16)

где  снова обозначает заметающее преобразование. Если оно состоит только из переносов и/или локальных или общих масштабирований, то в результате возникает плоская поверхность. Если заметающее преобразование включает повороты, то поверхность не будет плоской. На рис. 6-13 изображена спиральная заметающая поверхность, полученная из отрезка, в начальный момент параллельного оси , с помощью одновременного переноса вдоль оси  и вращения вокруг нее. Более подробно этот метод объясняется в следующем примере.

Пример 6-4 Линейчатая заметающая поверхность

Рассмотрим отрезок, лежащий в плоскости , параллельный оси  и заданный концевыми точками  и . Найти точку с параметрами ,  на заметающей поверхности, образованной одновременным переносом отрезка на 10 единиц вдоль оси  и его поворотом на  вокруг оси .

В данном случае матрица заметающего преобразования - переноса и последующего поворота, задается матрицей

.

Параметрическое уравнение отрезка

.

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

и

.

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

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

394-1.jpg

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

394-2.jpg

Рис. 6-14 Заметающая поверхность на основе кубического сплайна. (а) Кривая; (b) поверхность.

В этом случае уравнение поверхности идентично уравнению (6-15), где  теперь представляет параметрическую кривую. На рис. 6-14 показана заметающая поверхность, созданная из одного сегмента кубического сплайна, перенесенного вдоль оси . Этот метод, иллюстрируется примером.

Пример 6-5 Заметающая поверхность с кубическим сплайном в качестве образующей

Рассмотрим поверхность, образованную в результате переноса на 10 единиц вдоль оси  кубического сплайна, определяемого следующими данными: , , , .

Заметающая поверхность задается формулами:

,       ,         .

Нормализованный сегмент кубического сплайна задается (см. уравнение 5-27)

.

Сегмент кривой изображен на рис. 6-14а.

Заметающее преобразование (см. уравнение 3-14) имеет вид:

.

Следовательно,

.

Для ,

.

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

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

Кроме незамкнутых кривых для создания заметающих поверхностей используются замкнутые ломаные и кривые. При добавлении концевых поверхностей заметающая поверхность ограничивает конечный объем в пространстве. Подобным способом объемные примитивы создаются во многих геометрических моделирующих системах. Перемещаемый вдоль прямой направляющий квадрат или прямоугольник порождает прямоугольный параллелепипед. Окружность, перемещаемая вдоль прямой направляющей, порождает цилиндр. Окружность с уменьшающимся радиусом, перемещаемая вдоль прямой направляющей, порождает конус. Также возможно вращение вокруг направляющей оси. На рис. 6-16 показана заметающая поверхность, образованная из плоского квадрата, перпендикулярного оси  и перемещаемого вдоль оси  с одновременным вращением на  вокруг этой же оси.

396-1.jpg

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

396-2.jpg

Рис. 6-16 Заметающая поверхность, образованная квадратом, перемещаемым вдоль оси  и одновременно вращаемым вокруг нее.

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

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

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

Поверхность создается перемещением плоского квадрата, заданного вершинами , , , , вдоль направляющей кривой , . При этом направление нормали к многоугольнику совпадает с касательной к образующей.

Направление касательной к образующей равно . Таким образом, угол поворота вокруг оси , необходимого для сонаправленности нормали многоугольника и касательной, равен

.

Заметающее преобразование равно, таким образом,

.

При  угол поворота равен

.

Тогда при  квадрат задается матрицей

.

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

397.jpg

Рис. 6-17 Прямоугольник перемещается вдоль направляющей кривой. (а) Нормаль направлена как ось ; (b) нормаль направлена так же, как касательная к направляющей кривой.

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

 



<< ПредыдущаяОглавлениеСледующая >>