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