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], а также в приведенной в них библиографии.