Главная > Математика > Геометрическое моделирование
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2.7. Рациональные кривые

В формуле (2.6.15) средняя точка имеет коэффициент w, называемый весом. Для полного равноправия точек в этой формуле припишем каждой из них свой вес . В результате правая часть равенства (2.6.15) примет вид

Три коэффициента придают правой части выражения (2.7.1) симметричный вид — каждой вершине соответствует свой коэффициент Будем рассматривать выражение (2.7.1) как обобщение квадратичной параметрической кривой, позволяющее в частных случаях получить как кривую Безье второй степени (при ), так и коническое сечение (при ).

Коническое сечение можно описать с помощью кривой более высокой степени, чем это было сделано в (2.6.15). Пусть коническое сечение описывается равенством (2.7.1). Умножим числитель и знаменатель правой части равенства (2.7.1) на равное единице число перегруппируем слагаемые по степеням произведений t и () и, в результате, придем к выражению

Придадим правой части этого равенства форму кубической кривой Безье. Для этого введем обозначения для весов и вершин в правой части последнего выражения:

Теперь квадратичная кривая (2.7.1) примет форму кубической кривой (опустим штрих у вершин и их весов)

Полученная кубическая кривая полностью совпадает с исходной квадратичной кривой, но внутренние вершины ее характеристической ломаной и их веса стали другими. Умножив числитель и знаменатель правой части последнего равенства на неравное нулю число перейдем к кривой четвертой степени, которая описывает все то же коническое сечение. Этот процесс можно продолжать и дальше.

Рациональные кривые Безье.

Используем полученный результат для обобщения параметрической кривой Безье произвольной степени. Аналогично зависимости (2.7.1) запишем формулу для вычисления радиус-вектора кривой Безье, построенной по произвольному числу вершин, в виде

(2.7.2)

где — базисные функции Бернштейна. В общем случае каждая вершина кривой (2.7.2) имеет свой коэффициент . Коэффициент называется весом (значимостью) вершины Кривые, характеристические точки которых обладают весами, называются рациональными.

Рациональные кривые широко применяются в проектировании благодаря Кунсу. Одним из важных свойств рациональных кривых является то, что описанные ими конические сечения сохраняют свою природу (остаются рациональными кривыми) при любом проективном преобразовании. Кривая (2.7.2), построенная на основе базиса Бернштейна, представляет собой рациональную кривую Безье степени . Если веса всех вершин равны, то в силу свойства полиномов Бернштейна (2.5.5) рациональная кривая Безье (2.7.2.) становится равной обычной кривой Безье (2.5.3). В общем случае мы всегда можем перейти от рациональной кривой Безье степени к рациональной кривой Безье степени как это было продемонстрировано выше.

Рациональные кривые дают дополнительные возможности при моделировании линий. Изменяя веса точек, мы изменяем форму кривой. На рис. 2.7.1 приведены рациональные кривые Безье пятой степени, построенные по одним и тем же характеристическим точкам.

Рис. 2.7.1. Рациональные кривые Безье с различным весом точки

Веса всех точек, кроме равны единице, а вес точки приведен на рисунке. Из рисунка видно, что чем больше вес точки, тем ближе она к этой точке. Если вес точки отрицательный, то точка как бы отталкивает кривую от себя.

Если считать, что в знаменателе правой части (2.7.2) стоит вес радиус-вектора кривой , то его можно считать дополнительной координатой, так как формула его вычисления через веса вершин совпадает с формулой вычисления координат радиус-вектора через координаты вершин. При работе с точками, имеющими вес, удобно пользоваться однородными координатами (1.4.6)

где — координаты точки — вес точки.

В терминах однородных координат радиус-вектор (2.7.3) рациональной параметрической кривой Безье описывается равенством, по форме совпадающим с равенством для кривой Безье (2.5.3)

(2.7.4)

Мы видим, что вес точки подвергается тем же преобразованиям, что и ее декартовы координаты, поэтому с однородными компонентами радиус-вектора можно работать без выделения декартовых координат. Декартовы координаты любой вершины и радиус-вектора точки рациональной кривой получим из однородных координат делением их на последнюю (дополнительную) координату

В однородных координатах рациональные кривые имеют более компактную запись, а ее точки могут быть подвержены расширенному матричному преобразованию (1.4.2), обобщающему все преобразования простой точки.

С помощью кривых Безье можно строить линии произвольной формы на любом числе точек. Но, если мы хотим построить кривую на точках, так чтобы она была заданной степени , то нам не удастся обойтись одной кривой. Если к тому же не кратно , то не все составные части будут кривыми заданной степени. Если совместить первую и последнюю вершины характеристической ломаной, то получим замкнутую кривую, но в точке замыкания в общем случае кривая будет иметь излом. Кривые Безье не обладают достаточной гибкостью в том смысле, что на точках можно построить кривую только степени

Обобщение рациональных кривых.

Рассмотрим формулу для рациональной кривой Безье (2.7.2) в более широком смысле, а именно, подставим в нее вместо функций некоторые произвольные базисные функции, которые обозначим через и запишем в общем виде формулу для радиус-вектора рациональной кривой, построенной на вершинах,

(2.7.5)

где — число вершин, — радиус-вектор вершины характеристической ломаной кривой, — вес вершины, — функция параметра кривой, дающая вклад вершины в общую сумму при данном

Функции должны позволять интерполировать произвольную функцию на некотором заданном отрезке , т.е. для любой функции должна существовать линейная комбинация

удовлетворяющая равенствам , где — последовательность узлов, — числовые коэффициенты.

Потребуем, чтобы базисные функции обладали свойством функций а именно, чтобы при любом t они представляли бы собой разложение единицы, т.е. удовлетворять равенству

(2.7.6)

Это требование выдвинуто для того, чтобы в случае равных весов всех вершин рациональная кривая (2.7.5) превращалась в обычную параметрическую кривую вида

(2.7.7)

которая в частном случае (в зависимости от функций ) может быть равна или кривой Безье, или векторному полиному Лагранжа (2.4.13), или ломаной линии (2.4.1). Таким образом, рациональную параметрическую кривую (2.7.5) можно было бы считать наиболее общей формой записи параметрической линии, которая в качестве частных случаев содержит в себе почти все рассмотренные выше линии.

Для удобства в кривой (2.7.5) нумерация вершин начинается с 1, а не с О, как это было у кривых Безье. Заметим, что формула (2.7.5) отличается от (2.7.2) еще и тем, что порядок функции не связан с количества вершин п. Единственная косвенная связь порядка кривой и числа вершин заключается в том, что порядок кривой не может превосходить число вершин. Мы хотим получить более универсальную кривую, чем все рассмотренные выше. Область изменения параметра t кривой (2.7.5) в общем случае может быть выбрана удобной для нас.

В терминах однородных координат радиус-вектор рациональной параметрической кривой (2.7.5) описывается равенством

(2.7.8)

по форме совпадающим с равенством (2.7.7).

Радиус-вектор рациональной кривой вычисляется как частное от деления двух функций параметра кривой t, поэтому при вычислении производной рациональной кривой правую часть (2.7.5) следует рассматривать как сложную функцию. Если условно обозначим радиус-вектор рациональной кривой как , то производные радиус-вектора рациональной кривой определятся формулами

Ниже мы найдем непрерывные дифференцируемые функции принимающие ненулевые значения на отрезке равные нулю на остальной части параметрической области кривой и удовлетворяющие равенству (2.7.6). Такими функциями являются фундаментальные сплайны или -сплайны.

<< Предыдущий параграф Следующий параграф >>
Оглавление