5-13 РАЦИОНАЛЬНЫЕ В-СПЛАЙНЫВпервые в машинной графике описание рациональных кривых и поверхностей было предложено в работе [5-32]. В литературе широко известны рациональные формы кубических сплайнов и кривых Безье ([5-33]-[5-37]), а также конических сечений [5-38]. Здесь мы рассмотрим только рациональные В-сплайны, так как они составляют общепринятую основу, а также из-за пространственных ограничений. Рациональные В-сплайны это единственное точное математическое представление, охватывающее все аналитические формы - прямые, плоскости, конические сечения, включающие окружности, кривые произвольной формы, квадрики и трехмерные поверхности, используемые в машинной графике и проектировании. Первым рациональные В-сплайны изучил Весприлл [5-39]. Основа наших рассуждений приведена в работах [5-40] и [5-41]. Стоит отметить, что неравномерные рациональные В-сплайны (NURBS) с 1983 г. являются стандартом IGES (5-42). IGES - это стандарт обмена проектной информацией между системами машинного проектирования, а также между ними и системами автоматизированного производства. Рациональные В-сплайны применяются в ряде систем геометрического моделирования и реализованы аппаратно (СБИС или микрокод) в некоторых графических рабочих станциях. Рациональный В-сплайн это проекция нерационального (полиномиального) В-сплайна, определенного в четырехмерном (4D) однородном координатном пространстве, на трехмерное (3D) физическое пространство. В частности , (5-121) где - вершины многоугольника для нерационального 4D В-сплайна в четырехмерном пространстве, - функция базиса нерационального В-сплайна из уравнения (5-84). Рациональный В-сплайн получается после проектирования, т.е. деления на однородную координату , (5-122) где - вершины трехмерного многоугольника для рационального В- сплайна, а (5-123) - базисные функции рационального В-сплайна. Здесь для всех . Как видно из уравнений (5-121)-(5-123), рациональные В-сплайны и их базисы это обобщение нерациональных В-сплайнов и базисов. Они наследуют почти все аналитические и геометрические свойства последних. В частности: Каждая функция рационального базиса положительна или равна нулю для всех значений параметра, т. е. . Для любого значения параметра сумма базисных функций рационального В-сплайна равна единице, т.е. . (5-124) Кроме каждая рациональная базисная функция имеет ровно один максимум. Рациональный В-сплайн порядка (степени ) везде непрерывен. Максимальный порядок рационального В-сплайна равен количеству вершин определяющего многоугольника. Рациональный В-сплайн обладает свойством уменьшения вариации. Общая форма рационального В-сплайна повторяет очертания определяющего многоугольника. Любое проективное преобразование рационального В-сплайна производится соответствующим преобразованием вершин определяющего многоугольника; т. е. кривая инварианта относительно проективного преобразования. Это более сильное условие, чем для нерационального В-сплайна, который инвариантен только относительно аффинного преобразования. Из уравнений (5-85) и (5-123) видно, что при всех , , т.е. нерациональные В-сплайны и их базисы являются частным случаем рациональных. Легко показать, что открытый рациональный В-сплайн с порядком, равным количеству вершин определяющего многоугольника, представляет собой рациональную кривую Безье. В случае рациональная кривая Безье сводится к нерациональной. Таким образом, В-сплайны включают как рациональные, так и нерациональные кривые Безье. Рациональные В-сплайны - это четырехмерное обобщение нерациональных В- сплайнов; поэтому алгоритмы повышения степени (работа [5-27] и пример 6-18), разбиения (разд. 5-12 и работы [5-28] - [5-31]) и подгонки (разд. 5-11) для нерациональных В-сплайнов справедливы и для рациональных при распространении их на четырехмерное пространство. Рациональные В-сплайны и их базисы можно получить с помощью открытых равномерных, периодических равномерных и неравномерных узловых векторов. Однородные координаты (также называемые весами) в уравнениях (5-122) и (5-123) предоставляют дополнительные возможности изгиба кривой; называется аффинным пространством и соответствует физическому пространству. На рис. 5-57 показано влияние однородных координат на базисные функции рационального В-сплайна, где - открытый равномерный узловой вектор, - вектор однородных координат. Значения лежат в диапазоне от 0 до 5. Рис. 5-57 Базисные функции рационального В-сплайна для , с открытым узловым вектором , . (а) ; (b) ; (с) ; (d) . Рис. 5-58 Рациональные В-сплайны для , с открытым узловым вектором , . Базисные функции рационального В-сплайна на рис. 5.57с при совпадают с соответствующими функциями нерационального В-сплайна. Рациональный В-сплайн для на рис. 5-58 также совпадает с соответствующим нерациональным. Отметим, что для (рис. 5-57а) везде равно нулю; т. е. соответственная вершина не оказывает никакого влияния на форму соответствующей кривой. Это показано на рис. 5-58, где вершины определяющего многоугольника и соединены прямой. Из рис. 5-57 также видно, что при увеличении также возрастает и, вследствие уравнения (5-124), и уменьшаются. На рис. 5-58 изображено воздействие на соответствующие рациональные В-сплайны. В частности отметим, что с увеличением кривая приближается к . Отсюда, как уже отмечалось, следует, что однородные координаты дают возможность увеличить гибкость кривой. Иллюстрация аналогичных свойств рациональных В-сплайнов и базисов четвертого порядка дана на рис. 5-59 и 5-60. Однако для кривых более высокого порядка на рис. 5-60 кривая при не вырождается в отрезок прямой между и . На рис. 5-61 изображен периодический равномерный базис для , и узлового вектора и вектора однородных координат с . Здесь, как и в случае нерационального базиса, допустимый диапазон параметра . На рис. 5-61 показан только этот диапазон. Для базисные функции рационального В-сплайна совпадают с соответствующими нерациональными, но для они становятся непериодическими и не являются параллельным переносом друг друга. На рис. 5-62 приведены соответствующие рациональные В-сплайны. Отметим, что конечные точки всех кривых совпадают. На рис. 5-63 и 5-64 показаны соответствующие В-сплайны четвертого порядка и их базисы. Отметим, что начальные и конечные точки кривых лежат на прямых. Рис. 5-59 Базисные функции рационального В-сплайна для , с открытым узловым вектором , . (а) ; (b) ; (с) ; (d) . Рис. 5-60 Рациональные В-сплайны для , с открытым узловым вектором , . Вычисляя уравнения (5-122) и (5-123) для конечных точек кривой с аргументом из примера 5-12, получаем, что первая и последняя точки открытого рационального В-сплайна совпадают с конечными точками определяющего многоугольника: и . Из рис. 5-65 видно, что перемещение одной вершины многоугольника влияет на кривую так же, как и в случае рациональных В-сплайнов. В данном случае . Если , то передвижение не оказывает никакого воздействия. С увеличением растет влияние движения точки . На рис. 5-66 показано воздействие кратных вершин в на рациональный В-сплайн четвертого порядка. Как и для нерациональных кривых, совпадающая вершина приводит к появлению острого угла или пика. Далее, кратная вершина порождает ребра нулевой длины, поэтому существование угла не зависит от значений , соответствующих ей (см. задачу 5-33). Рассмотрим пример расчета рационального В-сплайна.
Формально дифференцируя уравнения (5-122) и (5-123), получаем производные рациональных В-сплайнов, а именно , (5-125) где . (5-126) Подставим и : , (5-127) , (5-128) т.е. наклон кривой в концах совпадает с наклоном первого и последнего ребер многоугольника, соответственно. Аналогично рассчитываются производные более высокого порядка (см. задачи 5-35 и 5-36). Рассмотрим простой пример.
Как уже отмечалось, с помощью рациональных В-сплайнов можно представить все конические сечения. Кроме того, это единственное математическое описание, способное задать произвольную кривую, состоящую из конических сечений. Коническим сечениям соответствуют квадратичные уравнения, поэтому удобно сначала рассмотреть квадратичный рациональный В-сплайн , заданный тремя вершинами с узловым вектором : , (5-129) что фактически представляет собой рациональную кривую Безье третьего порядка (см. рис. 5-67). Предположим, что . Тогда уравнение (5-129) принимает вид . (5-130) При точки и соединены прямой линией. При повторяется контур определяющего многоугольника. Если и , достигается серединная точка отрезка , обозначенная на рис. 5-67 буквой . Аналогично при , , достигается точка . Для точка , соответствующая точке кривой при , движется по прямой линии между и . называется плечевой точкой. Значение определяет тип конического сечения. В работе [5-43] показано, что результат при - прямая линия, - эллиптический сегмент, - параболический сегмент, - гиперболический сегмент. Воспользуемся уравнением (5-84) и подставим в уравнение (5-130): . При , , что дает . (5-131) Запишем параметрическое уравнение прямой между и , (5-132) где - параметр. Приравнивая коэффициенты уравнений (5-131) и (5-132), получаем и . (5-133) Рис. 5-67 Конические сечения, заданные рациональными В-сплайнами (кривыми Безье); (а) прямая линия, ; (b) эллипс, ; (с) парабола, ; (d) гипербола, . Параметр определяет форму кривой и тип конического сечения, т.е. это удобное средство разработки. Так как окружность является частным случаем эллипса, можно подобрать такое значение , что уравнение (5-130) будет уравнением дуги окружности. Из-за симметрии , и для дуги окружности формируют равнобедренный треугольник, как показано на рис. 5-68. Требуемое значение , определяется из рис. 5-68. Треугольник равнобедренный, поэтому - максимум кривой и касательная в точке параллельна линии . Треугольник также равнобедренный с равными углами и у основания, обозначенными на рис. 5-68. Из параллельности касательной линии следует, что углы и равны. Поэтому угол равен половине угла у основания треугольника , и . Отсюда и из уравнения (5-133) получаем . Подставляя тождество , получаем . (5-134) Рис. 5-68 Дуга окружности, построенная как рациональный В-сплайн Рис. 5-69 Рациональные В-сплайны – окружности. (а) Три сегмента по ; (b) четыре сегмента по . Рис. 5-70 Сопряжение рациональных В-сплайнов. Дуга покрывает часть окружности для удвоенного угла . Для дуги угол и . Для данного случая радиус окружности равен . Полная окружность получается соединением нескольких сегментов. В частности, окружность можно составить из трех сегментов рационального квадратичного В-сплайна, каждый из которых покрывает . Определяющие точки составляют равносторонний треугольник, как показано на рис. 5-69а. Неравномерный узловой вектор и вектор однородных координат: , . Аналогично, полная окружность также задается четырьмя рациональными квадратичными сегментами В-сплайна, каждый по , где определяющие вершины составляют квадрат, рис. 5-69b. Неравномерный узловой вектор и вектор однородных координат: , . Рассмотрим пример построения конических сечений с помощью В-сплайна и объединения их в произвольные кривые.
|