qweqweqe123123

Поверхность NURBS

Перейдя к однородным координатам задающих точек, из уравнения В-сплайна мы получили уравнение NURBS-кривой. Точно так же уравнение поверхности NURBS получается из В-сплайновой поверхности:

Поверхность NURBS

где Рij — векторы задающих точек с компонентами х, у и z, a hij — однородные координаты задающих точек. Обратите внимание, что узловые значения и диапазоны значений параметров совпадают с указанными в формуле (7.32).

Уравнение (7.40) становится уравнением В-сплайновой поверхности при hij= 1. Покажите самостоятельно, что при hij = 1 знаменатель (7.40) тождественно равен единице. Следовательно, уравнение В-сплайновой поверхности является частным случаем уравнения NURBS-поверхности. Поверхность NURBS к тому же позволяет точно описать квадратичные поверхности, такие как цилиндр, конус, сфера, параболоид и гиперболоид. Эти поверхности называются квадратичными, потому что их уравнения имеют степень 2 по u и v. Уравнение NURBS-поверхности часто используется для внутреннего представления квадратичных поверхностей в системах геометрического моделирования.

Проиллюстрируем использование уравнений NURBS-поверхности в системах объемного моделирования на нескольких примерах. Первый пример: поверхность, полученная трансляцией кривой (рис. 7.6). Предположим, что транслируемая кривая задана NURBS-уравнением. Это предположение не накладывает никаких ограничений, поскольку уравнение любой кривой из рассмотренных нами может быть преобразовано к форме NURBS. Пусть порядок этой кривой l, узловые значения tp(p = 0. 1...., т + /), задающие точки Рj + 1 штук).

Поверхность NURBS

Граничная кривая поверхности NURBS представляет собой NURBS-кривую с соответствующими задающими точками, которые являются крайними вершинами задающего многогранника поверхности. Порядок и узловые значения граничной кривой совпадают с теми же характеристиками поверхности в соответствующем направлении. Мы уже показали, что этим свойством обладают В-сплайновые поверхности. Следовательно, задающие точки, порядок и узловые значения поверхности в одном из направлений, совпадающем с направлением изменения параметра кривой, получаются из характеристик транслируемой кривой, поскольку она является одной из граничных кривых. В частности, задающими точками на одном из краев поверхности будут точки Рj (рис. 7.6). Далее, порядок поверхности в направлении v будет равен l, а узловые значения будут равны tp (если направления параметров выбрать так, как показано на рис. 7.6).

Поверхность NURBS

Однако нам нужна информация о характеристиках поверхности в направлении и. Предполагается, что направление и совпадает с направлением трансляции (рис. 7.6), а значит, в этом направлении достаточно линейного уравнения. Следовательно, порядок NURBS-кривой в этом направлении будет равен 2 и задающих точек тоже будет две. Узловые значения в направлении и будут равны 0, 0, 1,1,   а наборов узловых точек будет два. Один набор, как уже отмечалось, получается из Ру, а второй набор получается трансляцией Рj на расстояние d в направлении трансляции. Однородные координаты для обоих наборов будут совпадать с hj транслируемой кривой. Итак, координаты x,y u z задающих точек Рi,j  и однородные координаты hi,j описываются следующими выражениями:

Поверхность NURBS

где d — расстояние трансляции, а а — единичный вектор в направлении трансляции.

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

Поверхность NURBS

Обратите внимание, что Nj,l(v) в уравнении (7.43) определяется узловыми значениями tp.

NURBS-уравнение (7.43) может использоваться для представления любой поверхности, полученной трансляцией кривой. Например, это NURBS-уравнение может быть применено для описания цилиндрической поверхности, полученной трансляцией полуокружности, лежащей в плоскости ху, вдоль оси z (рис. 7.7). Сначала нам нужно задать NURBS-представление полуокружности. Воспользуемся результатами примера 6.6. Задающие точки будут иметь следующие координаты:

Поверхность NURBS

порядок кривой должен быть равен 3, а ее узловые значения равны 0, 0, 0, 1, 1, 2, 2, 2. Координаты задающих точек цилиндрической поверхности будут такими:

Поверхность NURBS

 

где Р0,0, Р0,1, Р0,2,.P0,3 и Р0,4 обозначают задающие точки нижней дуги, а Р1,0, Р1,1 P1,2,. Р1,3 и P1.4 — задающие точки верхней дуги; k — единичный вектор в направлении оси z. NURBS-уравнение цилиндрической поверхности получается подстановкой Pij и hij в уравнение (7.43) с учетом того, что l = 3 и т = 4. Узловые значения в направлении v равны 0, 0, 0, 1, 1, 2, 2, 2. а в направлении и они равны 0, 0, 1, 1.

Поверхность NURBS

Рассмотрим другой пример — поверхность вращения. Пусть вращаемая кривая лежит в плоскости xz, ось вращения совпадает с осью z, а направление кривой совпадает с направлением параметра v создаваемой поверхности (рис. 7.8). Предположим, что мы имеем дело с NURBS-кривой порядка l с узловыми значениями tp = 0, 1.... т + l) и задающими точками Рj + 1 штук) и hj (однородные координаты задающих точек). Можно предположить, что каждая задающая точка Рj разделится на девять задающих точек, определяющих круговое поперечное сечение (рис. 7.8).

Поверхность NURBS

Подробное описание этого метода приводится в работе [126]. Девять задающих точек поверхности имеют следующие координаты:

Поверхность NURBS

У равнение поверхности может быть записано в виде:

Поверхность NURBS

Обратите внимание, что порядок поверхности в направлении и равен 3, потому что степени 2 достаточно для представления окружности. Узловые значения Nj,l получаются из NURBS-представления вращаемой кривой, а узловые значения Ni,3 следуют из узловых значений представления полуокружности: 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4.

Чтобы вычислить координаты x,y и z точки на NURBS-поверхности, мы должны подставить соответствующие ей значения параметров и = u0 и v = v0 в уравнение (7.44). Тогда мы сможем заметить, что числитель и знаменатель в этом выражении имеют тот же вид, что и в уравнении В-сплайновой поверхности. Поэтому мы можем воспользоваться методом для вычисления В-сплайновых поверхностей, правда, с небольшим изменением для учета однородных координат: при вычислении числителя hi,jPi,j подставляется вместо Рi,j, а при вычислении знаменателя hi,j подставляется вместо Рi,j.

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

 

Смотрите также