Неравномерный рациональный B-сплайн - Non-uniform rational B-spline
Неоднородный рациональный базовый шлиц (NURBS) - математическая модель, обычно используемая в компьютерная графика для создания и представления кривых и поверхностей. Он предлагает большую гибкость и точность для обработки обеих аналитических форм (поверхности определяется общей математической формулы ) и смоделированный формы. NURBS обычно используются в системе автоматизированного проектирования (CAD ), производство (CAM ) и инженерные (CAE ) и являются частью многочисленных отраслевых стандартов, таких как IGES, ШАГ, ACIS, и ФИГС. Инструменты NURBS также можно найти в различных 3D моделирование и анимация программные пакеты.
Они могут эффективно обрабатываться компьютерными программами и при этом допускать легкое взаимодействие человека. Поверхности NURBS - это функции отображения двух параметров на поверхность в трехмерном пространстве. Форма поверхности определяется контрольными точками. Поверхности NURBS могут представлять в компактной форме простые геометрические формы. Т-образные шлицы и подразделения поверхностей более подходят для сложных органических форм, поскольку они вдвое сокращают количество контрольных точек по сравнению с поверхностями NURBS.
В общем, редактирование кривых и поверхностей NURBS интуитивно понятно и предсказуемо. Контрольные точки всегда либо напрямую связаны с кривой / поверхностью, либо действуют так, как если бы они были связаны резинкой. В зависимости от типа пользовательского интерфейса редактирование может быть реализовано через контрольные точки элемента, которые наиболее очевидны и характерны для Кривые Безье или с помощью инструментов более высокого уровня, таких как сплайновое моделирование или иерархическое редактирование.
Историческое прошлое
До компьютеров дизайны рисовали вручную на бумаге с различными инструменты для черчения. Правители использовались для прямых линий, компасы для кругов и транспортиры для углов. Но многие формы, такие как кривая произвольной формы носа корабля, эти инструменты не могли быть нарисованы. Хотя такие кривые можно было нарисовать от руки на чертежной доске, судостроителям часто требовалась версия в натуральную величину, которую нельзя было сделать вручную. Такие большие рисунки выполнялись с помощью гибких деревянных планок, называемых шлицами. Шлицы удерживались на месте в нескольких заранее определенных точках, называемых «утками»; между утками эластичность Материал шлицев заставил полоску принять форму, которая сводила к минимуму энергию изгиба, тем самым создавая максимально гладкую форму, которая соответствует ограничениям. Форму можно было регулировать, перемещая уток.[1]
В 1946 году математики начали изучать форму сплайна и вывели кусочно многочлен формула, известная как сплайновая кривая или функция сплайна. И. Дж. Шенберг дал этой функции название из-за ее сходства с механическим шлицем, используемым чертежниками.[2]
Когда в процесс проектирования были введены компьютеры, физические свойства таких шлицев были исследованы, чтобы их можно было моделировать с математической точностью и воспроизводить там, где это необходимо. Новаторская работа была проделана в Франция к Renault инженер Пьер Безье, и Citroën физик и математик Поль де Кастельжау. Они работали почти параллельно друг другу, но поскольку Безье опубликовал результаты своей работы, кривые Безье были названы в его честь, а имя де Кастельжау связано только с соответствующими алгоритмами.
Сначала NURBS использовались только в проприетарных CAD пакеты автомобильных компаний. Позже они стали частью стандартных пакетов компьютерной графики.
Интерактивный рендеринг NURBS-кривых и поверхностей в реальном времени был впервые коммерчески доступен на Силиконовая Графика рабочих станций в 1989 году. В 1993 году первый интерактивный NURBS-моделлер для ПК, названный NöRBS, был разработан CAS Berlin, небольшой начинающей компанией, сотрудничающей с Технический университет Берлина.
Непрерывность
Строящаяся поверхность, например Корпус моторной яхты обычно состоит из нескольких поверхностей NURBS, известных как патчи. Эти заплатки должны быть соединены так, чтобы границы были невидимы. Математически это выражается концепцией геометрическая непрерывность.
Существуют инструменты более высокого уровня, которые извлекают выгоду из способности NURBS создавать и устанавливать геометрическую непрерывность различных уровней:
- Позиционная преемственность (ГРАММ0) выполняется всякий раз, когда концевые положения двух кривых или поверхностей совпадают. Кривые или поверхности могут по-прежнему встречаться под углом, в результате чего образуется острый угол или край и появляются прерывистые блики.
- Тангенциальная непрерывность (G¹) требует, чтобы конечные векторы кривых или поверхностей были параллельны и указывали одинаково, исключая острые края. Поскольку блики, падающие на непрерывную по касательной кромку, всегда непрерывны и поэтому выглядят естественно, этого уровня непрерывности часто бывает достаточно.
- Непрерывность кривизны (G²) дополнительно требует, чтобы конечные векторы имели одинаковую длину и скорость изменения длины. Световые участки, падающие на кромку с непрерывной кривизной, не изменяются, в результате чего две поверхности отображаются как одна. Визуально это можно определить как «идеально гладкое». Такой уровень преемственности очень полезен при создании моделей, требующих множества бикубический пятна, составляющие одну сплошную поверхность.
Геометрическая непрерывность в основном относится к форме получаемой поверхности; поскольку поверхности NURBS являются функциями, можно также обсудить производные поверхности по параметрам. Это известно как параметрическая непрерывность. Параметрическая непрерывность данной степени подразумевает геометрическую непрерывность этой степени.
Параметрическая непрерывность первого и второго уровня (C0 и C¹) для практических целей идентичны позиционным и тангенциальным (G0 и G¹) непрерывность. Однако параметрическая непрерывность третьего уровня (C²) отличается от непрерывности кривизны тем, что ее параметризация также является непрерывной. На практике добиться непрерывности C² легче, если использовать однородные B-шлицы.
Определение Cп преемственность требует, чтобы п-я производная соседних кривых / поверхностей () равны в стыке.[3] Обратите внимание, что (частные) производные кривых и поверхностей - это векторы, которые имеют направление и величину; оба должны быть равны.
Световые блики и отражения могут показать идеальное сглаживание, чего практически невозможно добиться без поверхностей NURBS, которые имеют непрерывность как минимум G². Этот же принцип используется в качестве одного из методов оценки поверхности, посредством которого с трассировкой лучей или же с отображением отражения изображение поверхности с отражающимися на ней белыми полосами покажет даже малейшие отклонения на поверхности или наборе поверхностей. Этот метод основан на прототипировании автомобиля, при котором качество поверхности проверяется путем проверки качества отражений от потолка неонового света на поверхности автомобиля. Этот метод также известен как «зебровый анализ».
Технические характеристики
Кривая NURBS определяется своим порядком, набором взвешенных контрольных точек и вектором узла.[4] NURBS-кривые и поверхности являются обобщением обоих B-шлицы и Кривые Безье и поверхностей, основное различие заключается во взвешивании контрольных точек, что делает кривые NURBS рациональный. (Нерациональный, иначе просто, B-сплайны являются частным случаем / подмножеством рациональных B-сплайнов, где каждая контрольная точка является регулярной неоднородной координатой [без 'w'], а не однородная координата.[5] Это эквивалентно весу «1» в каждой контрольной точке; Рациональный B-сплайны используют 'w' каждой контрольной точки как масса.[6]) Используя двумерную сетку контрольных точек, можно создавать NURBS-поверхности, включая плоские участки и участки сфер. Они параметризованы двумя переменными (обычно называемыми s и т или же ты и v). Это может быть расширено до произвольных размеров для создания NURBS-сопоставления. .
Кривые и поверхности NURBS полезны по ряду причин:
- Набор NURBS для данного заказа равен инвариантный под аффинный трансформации:[7] такие операции, как вращение и перемещение, можно применять к кривым и поверхностям NURBS, применяя их к их контрольным точкам.
- Они предлагают одну общую математическую форму для обеих стандартных аналитических форм (например, коники ) и формы произвольной формы.
- Они обеспечивают гибкость для создания самых разнообразных форм.
- Они уменьшают потребление памяти при хранении фигур (по сравнению с более простыми методами).
- Их можно достаточно быстро оценить численно стабильный и точный алгоритмы.
В следующих разделах NURBS обсуждается в одном измерении (кривые). Все это можно обобщить до двух или даже более измерений.
Заказ
В порядок NURBS-кривой определяет количество ближайших контрольных точек, которые влияют на любую заданную точку на кривой. Математически кривая представляет собой многочлен степени на один меньше, чем порядок кривой. Следовательно, кривые второго порядка (которые представлены линейными полиномами) называются линейными кривыми, кривые третьего порядка называются квадратичными кривыми, а кривые четвертого порядка называются кубическими кривыми. Количество контрольных точек должно быть больше или равно порядку кривой.
На практике чаще всего используются кубические кривые. Кривые пятого и шестого порядка иногда полезны, особенно для получения непрерывных производных более высокого порядка, но кривые более высокого порядка практически никогда не используются, поскольку они приводят к внутренним численным проблемам и, как правило, требуют непропорционально большого времени вычислений.
Контрольные точки
Контрольные точки определяют форму кривой.[8] Обычно каждая точка кривой вычисляется с помощью взвешенный сумма количества контрольных точек. Вес каждой точки зависит от управляющего параметра. Для кривой степени d вес любой контрольной точки отличен от нуля только в d + 1 интервалах пространства параметров. В пределах этих интервалов вес изменяется в соответствии с полиномиальной функцией (базисные функции) степени d. На границах интервалов базисные функции плавно уходят в нуль, причем гладкость определяется степенью полинома.
Например, базисная функция первой степени - это функция треугольника. Он повышается с нуля до единицы, затем снова падает до нуля. Пока он повышается, базовая функция предыдущей контрольной точки падает. Таким образом, кривая интерполируется между двумя точками, а результирующая кривая представляет собой многоугольник, который непрерывный, но нет дифференцируемый на границах интервала, или узлы. Соответственно, полиномы более высоких степеней имеют более непрерывные производные. Обратите внимание, что внутри интервала полиномиальный характер базисных функций и линейность построения делают кривую идеально гладкой, поэтому разрыв может возникнуть только в узлах.
Во многих приложениях тот факт, что одна контрольная точка влияет только на те интервалы, в которых она активна, является очень желательным свойством, известным как местная поддержка. При моделировании это позволяет изменять одну часть поверхности, оставляя другие части неизменными.
Добавление большего количества контрольных точек позволяет лучше аппроксимировать данную кривую, хотя только определенный класс кривых может быть точно представлен с конечным числом контрольных точек. Кривые NURBS также имеют скалярную масса для каждой контрольной точки. Это позволяет лучше контролировать форму кривой без чрезмерного увеличения количества контрольных точек. В частности, он добавляет конические участки, такие как круги и эллипсы, к набору кривых, которые могут быть представлены точно. Период, термин рациональный в NURBS относится к этим весам.
Контрольные точки могут иметь любые размерность. Одномерные точки просто определяют скаляр функция параметра. Обычно они используются в программах обработки изображений для настройки кривых яркости и цвета. Трехмерные контрольные точки широко используются в трехмерном моделировании, где они используются в повседневном значении слова `` точка '', местоположения в трехмерном пространстве. Многомерные точки могут использоваться для управления наборами значений, управляемых временем, например различные настройки положения и вращения манипулятора робота. Поверхности NURBS - всего лишь пример этого. Каждая контрольная «точка» на самом деле представляет собой полный вектор контрольных точек, определяющих кривую. Эти кривые имеют общую степень и количество контрольных точек и охватывают одно измерение пространства параметров. Путем интерполяции этих управляющих векторов по другому измерению пространства параметров получается непрерывный набор кривых, определяющих поверхность.
Узел вектор
Узловой вектор - это последовательность значений параметров, которая определяет, где и как контрольные точки влияют на кривую NURBS. Количество узлов всегда равно количеству контрольных точек плюс градус кривой плюс один (то есть количество контрольных точек плюс порядок кривой). Узловой вектор делит параметрическое пространство на упомянутые ранее интервалы, обычно называемые узлы. Каждый раз, когда значение параметра входит в новый диапазон узлов, новая контрольная точка становится активной, а старая контрольная точка отбрасывается. Отсюда следует, что значения в векторе узла должны быть в порядке неубывания, поэтому (0, 0, 1, 2, 3, 3) действительны, а (0, 0, 2, 1, 3, 3) - нет.
Последовательные узлы могут иметь одинаковое значение. Затем это определяет участок узла нулевой длины, что означает, что две контрольные точки активируются одновременно (и, конечно, две контрольные точки деактивируются). Это влияет на непрерывность результирующей кривой или ее высших производных; например, он позволяет создавать углы на гладкой NURBS-кривой. Ряд совпадающих узлов иногда называют узлом с определенным множественность. Сучки с кратностью два или три известны как двойные или тройные узлы. Кратность узла ограничена степенью изгиба; поскольку более высокая кратность разбивает кривую на непересекающиеся части, и контрольные точки останутся неиспользованными. Для NURBS первой степени каждый узел связан с контрольной точкой.
Вектор узла обычно начинается с узла, кратность которого равна порядку. Это имеет смысл, так как это активирует контрольные точки, которые влияют на первый пролет узла. Точно так же вектор узла обычно заканчивается узлом этой кратности. Кривые с такими векторами узлов начинаются и заканчиваются в контрольной точке.
Значения узлов управляют отображением между входным параметром и соответствующим значением NURBS. Например, если NURBS описывает путь в пространстве во времени, узлы контролируют время, в течение которого функция проходит мимо контрольных точек. Однако для целей представления форм имеют значение только отношения разницы между значениями узлов; в этом случае узловые векторы (0, 0, 1, 2, 3, 3) и (0, 0, 2, 4, 6, 6) образуют одну и ту же кривую. Положение узловых значений влияет на отображение пространства параметров в пространство кривой. Отрисовка кривой NURBS обычно выполняется путем пошагового перехода с фиксированным шагом по диапазону параметров. Изменяя длину пролета узлов, можно использовать больше точек выборки в регионах с высокой кривизной. Другое использование - в ситуациях, когда значение параметра имеет некоторое физическое значение, например, если параметр - время, а кривая описывает движение руки робота. Затем длина пролета узла переводится в скорость и ускорение, которые необходимы для правильного выбора и предотвращения повреждения манипулятора робота или его окружения. Эта гибкость в отображении и есть то, что фраза неоднородный в NURBS имеется ввиду.
Необходимые только для внутренних расчетов, узлы обычно бесполезны для пользователей программного обеспечения для моделирования. Поэтому многие приложения для моделирования не позволяют редактировать или даже видеть сучки. Обычно можно установить разумные узловые векторы, глядя на изменение контрольных точек. Более свежие версии программного обеспечения NURBS (например, Autodesk Maya и Носорог 3D ) позволяют интерактивное редактирование позиций узлов, но это значительно менее интуитивно понятно, чем редактирование контрольных точек.
Построение базисных функций
Базовые функции B-сплайна, используемые при построении кривых NURBS, обычно обозначаются как , в котором соответствует thконтрольная точка и соответствует степени базисной функции.[9] Зависимость от параметра часто не учитывается, поэтому мы можем написать . Определение этих базисных функций рекурсивно в . Функции степени 0 находятся кусочно постоянные функции. Они равны единице на соответствующем промежутке узла и нулю на всех остальных участках. является линейной интерполяцией и . Последние две функции отличны от нуля при узловые пролеты внахлест на узловые пролеты. Функция вычисляется как
линейно возрастает от нуля до единицы на интервале, где не равно нулю, а падает от единицы до нуля на интервале, где не равно нулю. Как упоминалось ранее, - треугольная функция, отличная от нуля на двух участках узлов, возрастающая от нуля до единицы на первом и убывающая до нуля на втором узле. Базисные функции более высокого порядка не равны нулю на соответствующих большем количестве узлов и, соответственно, имеют более высокую степень. Если - параметр, а это th узел, мы можем написать функции и в качестве
и
Функции и положительны, когда соответствующие базисные функции более низкого порядка не равны нулю. К индукция по n следует, что базисные функции неотрицательны для всех значений и . Это делает вычисление базисных функций численно устойчивым.
Снова по индукции можно доказать, что сумма базисных функций для конкретного значения параметра равна единице. Это известно как разделение единства свойство базисных функций.
На рисунках показаны линейная и квадратичная базисные функции для узлов {..., 0, 1, 2, 3, 4, 4.1, 5.1, 6.1, 7.1, ...}
Пролет одного узла значительно короче других. На этом участке узла пик квадратичной базисной функции более отчетлив и достигает почти единицы. И наоборот, смежные базисные функции быстрее падают до нуля. В геометрической интерпретации это означает, что кривая близко подходит к соответствующей контрольной точке. В случае двойного узла длина узла становится равной нулю, а пик точно достигает единицы. В этот момент базисная функция больше не дифференцируема. Кривая будет иметь острый угол, если соседние контрольные точки не коллинеарны.
Общий вид кривой NURBS
Используя определения базисных функций из предыдущего абзаца кривая NURBS принимает следующий вид:[9]
В этом, это количество контрольных точек и - соответствующие веса. Знаменатель - это нормализующий коэффициент, который дает единицу, если все веса равны единице. Это видно из разбиения свойства единицы базисных функций. Это принято писать как
в котором функции
известны как рациональные базисные функции.
Общий вид NURBS-поверхности
NURBS-поверхность получается как тензорное произведение двух кривых NURBS, таким образом используя два независимых параметра и (с индексами и соответственно):[9]
с
как рациональные базисные функции.
Управление объектами NURBS
К объекту NURBS можно применить ряд преобразований. Например, если некоторая кривая определена с использованием определенной степени и N контрольных точек, та же самая кривая может быть выражена с использованием той же степени и N + 1 контрольных точек. При этом несколько контрольных точек меняют положение и в вектор узла вставляется узел. Эти манипуляции широко используются при интерактивном проектировании. При добавлении контрольной точки форма кривой должна оставаться неизменной, образуя отправную точку для дальнейших корректировок. Некоторые из этих операций обсуждаются ниже.[9][10]
Вставка узла
Как следует из этого термина, вставка узла вставляет узел в вектор узла. Если степень кривой равна , тогда контрольные точки заменены на новые. Форма кривой остается прежней.
Узел можно вставлять несколько раз, до максимальной кратности узла. Иногда это называют уточнение узла и может быть достигнута с помощью алгоритма, который более эффективен, чем повторная вставка узла.
Удаление узла
Удаление узла происходит в обратном порядке по отношению к вставке узла. Его цель - удалить узлы и связанные с ними контрольные точки, чтобы получить более компактное представление. Очевидно, что это не всегда возможно при сохранении точной формы кривой. На практике допуск точности используется для определения возможности удаления узла. Этот процесс используется для очистки после интерактивного сеанса, в котором контрольные точки могли быть добавлены вручную, или после импорта кривой из другого представления, когда простой процесс преобразования приводит к избыточным контрольным точкам.
Степень возвышения
Кривая NURBS определенной степени всегда может быть представлена кривой NURBS более высокой степени. Это часто используется при объединении отдельных кривых NURBS, например, при создании поверхности NURBS, интерполирующей между набором кривых NURBS, или при объединении смежных кривых. При этом разные кривые должны быть приведены к одной и той же степени, обычно к максимальной степени набора кривых. Процесс известен как степень возвышения.
Кривизна
Самая важная недвижимость в дифференциальная геометрия это кривизна . Он описывает локальные свойства (ребра, углы и т. Д.) И отношения между первой и второй производной и, таким образом, точную форму кривой.Определив производные, легко вычислить или приблизительно как длина дуги от второй производной . Прямое вычисление кривизны с этими уравнениями - большое преимущество параметризованных кривых по сравнению с их многоугольными представлениями.
Пример: круг
Нерациональные шлицы или Кривые Безье могут приближаться к кругу, но не могут точно его представить. Рациональные шлицы могут точно представлять любое коническое сечение, включая окружность. Это представление не уникально, но одна возможность появляется ниже:
Икс | у | z | Масса |
---|---|---|---|
1 | 0 | 0 | 1 |
1 | 1 | 0 | |
0 | 1 | 0 | 1 |
-1 | 1 | 0 | |
-1 | 0 | 0 | 1 |
-1 | -1 | 0 | |
0 | -1 | 0 | 1 |
1 | -1 | 0 | |
1 | 0 | 0 | 1 |
Порядок равен трем, так как окружность является квадратичной кривой, а порядок сплайна на единицу больше, чем степень его кусочно-полиномиальных сегментов. Вектор узла . Круг состоит из четырех четвертей окружностей, связанных двойными узлами. Хотя двойные узлы на NURBS-кривой третьего порядка обычно приводят к потере непрерывности в первой производной, контрольные точки расположены таким образом, что первая производная является непрерывной. На самом деле кривая везде бесконечно дифференцируема, как и должно быть, если она в точности представляет окружность.
Кривая точно представляет окружность, но не точно параметризована длиной дуги окружности. Это означает, например, что точка на не лежит в (за исключением начальной, средней и конечной точек каждой четверти круга, поскольку представление симметрично). Это было бы невозможно, так как Икс координата круга дала бы точное рациональное полиномиальное выражение для , что невозможно. Круг совершает один полный оборот в качестве параметра. идет от 0 до , но это только потому, что вектор узла был произвольно выбран как кратный .
Смотрите также
- Сплайн
- Безье поверхность
- алгоритм де Бура
- Треугольная сетка
- Облако точек
- Рациональное движение
- Изогеометрический анализ
Рекомендации
- ^ Шнайдер, Филипп. "Кривые NURB: Путеводитель для непосвященных". MACTECH. Получено 26 сентября 2014.
- ^ Шенберг, И. Дж. (19 августа 1964 г.). «Сплайн-функции и проблема градации» (PDF). Труды Национальной академии наук Соединенных Штатов Америки. Национальная Академия Наук. 52 (4): 947–950. Дои:10.1073 / пнас.52.4.947. ЧВК 300377. PMID 16591233. Получено 2012-02-24.
- ^ Фоли, ван Дам, Фейнер и Хьюз: Компьютерная графика: принципы и практика, раздел 11.2, Эддисон-Уэсли 1996 (2-е изд.).
- ^ Самоорганизующиеся робототехнические системы на основе биоиндустрии. п. 9. Получено 2014-01-06.
- ^ «Рациональные B-шлицы». www.cl.cam.ac.uk.
- ^ "NURBS: Определение". www.cs.mtu.edu.
- ^ Дэвид Ф. Роджерс: Введение в NURBS с исторической точки зрения, раздел 7.1
- ^ Гершенфельд, Нил (1999). Природа математического моделирования. Издательство Кембриджского университета. п. 141. ISBN 0-521-57095-6.
- ^ а б c d Пигль, Лес; Тиллер, Уэйн (1997). Книга NURBS (2-е изд.). Берлин: Springer. ISBN 3-540-61545-8.
- ^ Пигль, Л. (1989). «Изменение формы рациональных B-шлицев. Часть 1: кривые». Системы автоматизированного проектирования. 21 (8): 509–518. Дои:10.1016/0010-4485(89)90059-6.