Сплайновые кривые Эрмита и Безье

Перейдем к более сложному случаю – заданию кривых в трехмерном пространстве. В случае функционального задания кривой Сплайновые кривые Эрмита и Безье - student2.ru возможны многозначности в случае самопересечений и неудобства при значениях производных равных Сплайновые кривые Эрмита и Безье - student2.ru . Ввиду этого будем искать функцию в параметрическом виде. Пусть Сплайновые кривые Эрмита и Безье - student2.ru - независимый параметр, такой что Сплайновые кривые Эрмита и Безье - student2.ru . Кубическим параметрическим сплайном назовем следующую систему уравнений:

Сплайновые кривые Эрмита и Безье - student2.ru

Координаты точек на кривой описываются вектором Сплайновые кривые Эрмита и Безье - student2.ru , а три производные задают координаты соответствующего касательного вектора в точке. Например, для координаты Сплайновые кривые Эрмита и Безье - student2.ru :

Сплайновые кривые Эрмита и Безье - student2.ru .

Одним из способов задания параметрического кубического сплайна является указание координат начальной и конечной точек, а также векторов касательных в них. Такой способ задания называется формой Эрмита. Обозначим концевые точки Сплайновые кривые Эрмита и Безье - student2.ru и Сплайновые кривые Эрмита и Безье - student2.ru , а касательные векторы в них Сплайновые кривые Эрмита и Безье - student2.ru и Сплайновые кривые Эрмита и Безье - student2.ru . Индексы выбраны таким образом с учетом дальнейшего изложения.

Будем решать задачу нахождения четверки коэффициентов Сплайновые кривые Эрмита и Безье - student2.ru , так как для оставшихся двух уравнений коэффициенты находятся аналогично. Запишем условие для построения сплайна:

Сплайновые кривые Эрмита и Безье - student2.ru , Сплайновые кривые Эрмита и Безье - student2.ru , Сплайновые кривые Эрмита и Безье - student2.ru , Сплайновые кривые Эрмита и Безье - student2.ru (*)

Перепишем выражение для Сплайновые кривые Эрмита и Безье - student2.ru в векторном виде [3]:

Сплайновые кривые Эрмита и Безье - student2.ru Сплайновые кривые Эрмита и Безье - student2.ru .

Обозначим вектор строку Сплайновые кривые Эрмита и Безье - student2.ru и вектор столбец коэффициентов Сплайновые кривые Эрмита и Безье - student2.ru Сплайновые кривые Эрмита и Безье - student2.ru , тогда Сплайновые кривые Эрмита и Безье - student2.ru .

Из (*) следует, что Сплайновые кривые Эрмита и Безье - student2.ru , Сплайновые кривые Эрмита и Безье - student2.ru . Для касательных Сплайновые кривые Эрмита и Безье - student2.ru , Сплайновые кривые Эрмита и Безье - student2.ru

Сплайновые кривые Эрмита и Безье - student2.ru ,

Сплайновые кривые Эрмита и Безье - student2.ru . Отсюда получаем векторно-матричное уравнение:

Сплайновые кривые Эрмита и Безье - student2.ru .

Эта система решается относительно Сплайновые кривые Эрмита и Безье - student2.ru нахождением обратной матрицы размером Сплайновые кривые Эрмита и Безье - student2.ru .

Сплайновые кривые Эрмита и Безье - student2.ru .

Здесь Сплайновые кривые Эрмита и Безье - student2.ru - эрмитова матрица, Сплайновые кривые Эрмита и Безье - student2.ru - геометрический вектор Эрмита. Подставим выражение Сплайновые кривые Эрмита и Безье - student2.ru для нахождения Сплайновые кривые Эрмита и Безье - student2.ru : Сплайновые кривые Эрмита и Безье - student2.ru . Аналогично для остальных координат: Сплайновые кривые Эрмита и Безье - student2.ru , Сплайновые кривые Эрмита и Безье - student2.ru .

Выпишем в явном виде формулы для вычисления координат точек сплайна. Так как Сплайновые кривые Эрмита и Безье - student2.ru , то умножая справа на Сплайновые кривые Эрмита и Безье - student2.ru , получаем:

Сплайновые кривые Эрмита и Безье - student2.ru Сплайновые кривые Эрмита и Безье - student2.ru .

Четыре функции в скобках называются функциями сопряжения.

Форму кривой, заданной в форме Эрмита, легко изменять если учитывать, что направление вектора касательной задает начальное направление, а модуль вектора касательной задает степень вытянутости кривой в направлении этого вектора, как показано на рис. 42.

       
  Сплайновые кривые Эрмита и Безье - student2.ru   Сплайновые кривые Эрмита и Безье - student2.ru
 

Рассмотрим форму Безье, которая отличается от формы Эрмита способом задания граничных условий, а именно, вместо векторов Сплайновые кривые Эрмита и Безье - student2.ru и Сплайновые кривые Эрмита и Безье - student2.ru вводятся точки (и соответствующие им радиус векторы) Сплайновые кривые Эрмита и Безье - student2.ru и Сплайновые кривые Эрмита и Безье - student2.ru , как показано на рис.43, такие что выполняются условия: Сплайновые кривые Эрмита и Безье - student2.ru и Сплайновые кривые Эрмита и Безье - student2.ru .

Переход от формы Эрмита к форме Безье осуществляется преобразованием:

Сплайновые кривые Эрмита и Безье - student2.ru , (*)

где Сплайновые кривые Эрмита и Безье - student2.ru - геометрический вектор Безье. Подставляя это в выражение для Сплайновые кривые Эрмита и Безье - student2.ru , получаем

Сплайновые кривые Эрмита и Безье - student2.ru .

Полезным свойством сплайнов в форме Безье является то что кривая всегда лежит внутри выпуклой оболочки, образованной четырехугольником Сплайновые кривые Эрмита и Безье - student2.ru . Это свойство можно доказать, пользуясь тем, что в выражении (*) коэффициенты принимают значения от 0 до 1 и их сумма равна единице.

Заметим, что матрица вида

Сплайновые кривые Эрмита и Безье - student2.ru ‑ называется матрицей Безье.

Наши рекомендации