Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ALL

.pdf
Скачиваний:
278
Добавлен:
12.02.2018
Размер:
15.74 Mб
Скачать

ЭРМИТОВА ИНТЕРПОЛЯЦИЯ

Эрмитовый сплайн (названным в честь французского математика Шарля Эрмита (Charles Hermite)) - интерполирующий кусочно-кубический полином с заданной касательной в каждой контрольной точке. В отличие от естественных кубических сплайнов эрмитовы сплайны можно настраивать локально, поскольку каждый участок кривой зависит только от условий в конечных точках.

Если обозначить через P(u) параметрическую кубическую точечную функцию участка кривой

между контрольными точками pk и pk+1, (рис. ) граничные условия, определяющие эрмитову кривую, запишутся в виде

P(0) = pk,

P(1) = pk+1,

P’(0) = Dpk,

P’(1) = Dpk+1,

Рис. Параметрическая точечная функция P(u) для участка эрмитовой кривой между контрольными точками pk и pk+1

где Dpk и Dpk+1 задают значения производных по параметру (наклона кривой) в контрольных точках pk и pk+1 соответственно.

Векторный эквивалент уравнения для этой эрмитовой кривой.

• P(u) = a u3 + b u2 + c u + d,

0 u 1,

где x-й компонент P(u) равен x(u) = ax u3 +bx u2 +cx u+dx, подобные выражения записываются для компонентов y и z.

Матричный эквивалент уравнения имеет такой вид.

и производная точечной функции выражается как

ЭРМИТОВА ИНТЕРПОЛЯЦИЯ

Подставляя в предыдущие два уравнения вместо параметра u значения конечных точек 0 и 1, эрмитовы граничные условия можно выразить в матричной форме.

Решим уравнение относительно коэффициентов полиномов.

где эрмитова м-ца MH обратна к матрице граничных условий

Далее уравнение можно записать через граничные условия.

Рис. Эрмитовы стыковочные функции

Определить выражения для полиномиальных эрмитовых стыковочных функций Hk(u) при k =0, 1, 2, 3, собрав коэффициенты для граничных условий получается полиномиальная форма

Форма четырех эрмитовых стыковочных функций – рис.

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

ФУНДАМЕНТАЛЬНЫЕ СПЛАЙНЫ

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

Участок фундаментального сплайна полностью задается положениями 4ех последовательных контрольных точек. Две средние контрольные точки являются конечными точками участка, другие две используются при расчете касательных в конечных точках. Если обозначить через P(u) представление параметрической кубической точечной функции между контрольными точками

pk и pk+1, (рис. 1), тогда по четырем контрольным точкам от pk-1 до pk+1 ставятся граничные условия на участок фундаментального сплайна.

P(0)

= pk,

 

Рис. 1 Параметрическая точечная

P(1)

= pk+1,

 

 

функция P(u) фундаментального сплайна

P’(0) = ½ (1 - t)(p

– p ),

между контрольными точками pk и pk+1

 

 

k+1

k-1

 

P’(1) = 1/2(1 – t)(pk+2 – pk).

Касательные в контрольных точках pk и pk+1 считаются пропорциональными соответственно хордам pk-1pk+1 и pkpk+2 (рис. 2). t - параметр натяжения, он контролирует, насколько тесно фундаментальный сплайн соответствует входным контрольным точкам. На рис. 3 иллюстрируется форма фундаментальной кривой для очень малого и очень большого натяжения t. При t = 0 данный класс кривых называется сплайнами КатмаллаРома (CatmullRom splines) или сплайнами Оувергаузера (Overhauser splines).

Рис. 2. Касательные векторы в конечных точках фундаментального сплайна параллельны хордам, сформированным соседними контрольными точками (пунктир)

Рис. 3. Влияние параметра натяжения на форму фундаментального сплайна

ФУНДАМЕНТАЛЬНЫЕ СПЛАЙНЫ

граничные условия преобразуем в матричную форму.

где фундаментальная матрица имеет вид

при s = (1 – t)/2.

в полиномиальную форму,

где полиномы CARk(u) при k = 0, 1, 2, 3 это стыковочные (базисные) функции фундаментального сплайна.

Примеры кривых, полученных с помощью

стыковочных функций фундаментальных

сплайнов, приводятся на рис. 1-4.

На рис. приведен график базисных функций

фундаментальных сплайнов при t = 0.

Рис.1. Стыковочные функции

фундаментальных сплайнов

при t = 0 (s = 0, 5)

ФУНДАМЕНТАЛЬНЫЕ СПЛАЙНЫ

На рис. 2 изображены четыре участка фундаментальных сплайнов, формирующих замкнутую

кривую. Первый участок кривой генерируется с использованием набора контрольных точек {p0, p1, p2, p3}, вторая кривая получается из набора контрольных точек {p1, p2, p3, p0}, третий участок кривой имеет контрольные точки {p2, p3, p0, p1}, и последний участок кривой имеет контрольные точки {p3, p0, p1, p2}.

На рис. 3 показана замкнутая кривая, полученная с использованием одного участка фундаментальной кривой, где положение третьей контрольной точки совпадает с положением второй.

На рис. 4 показан самопересекающийся участок фундаментального сплайна, в котором положение третьей контрольной точки очень близко ко второй контрольной точке. Возникающее при этом самопересечение объясняется условиями, наложенными на касательную кривой в конечных точках

рис. 2

рис. 3

 

рис. 4

СПЛАЙНЫ КОХАНЕКАБАРТЕЛСА

Расширение фундаментальных сплайнов. В уравнения условий вводится два дополнительных параметра, определяя сплайны КоханекаБартелса (KochanekBartels splines) и предлагая повышенную гибкость в настройке форм сегментов кривых.

Для четырех данных последовательных контрольных точек, pk-1,pk, pk+1 и pk+2, граничные условия для участка кривой КоханекаБартелса между pk и pk+1 определяются

P(0) = pk,

P(1) = pk+1,

P’(0)in = 1/2(1 – t)[(1 + b)(1 – c)(pk- pk-1)+(1 – b)(1 + c)(p k+1 – pk)],

P’(1)out = 1/2(1 – t)[(1 + b)(1 + c)(pk+1 - pk)++(1 – b)(1 – c)(pk+2 - pk+1)],

где t - параметр натяжения, b - параметр смещения (биения), а c параметр непрерывности. производные по параметрам могут не быть непрерывными на границах участков.

Параметр натяжения t контролирует плотность участков кривой. Смещение b используется для настройки кривизны в каждом конце участка (рис.). Параметр c контролирует непрерывность касательного вектора на границах участков. Если c =0, на границах участков наблюдается разрыв касательной кривой.

Сплайны КоханекаБартелса разработаны для моделирования путей анимации.

Рис.. Влияние параметра смещения на форму участка сплайна КоханекаБартелса

СПЛАЙНОВЫЕ КРИВЫЕ БЕЗЬЕ

См.предыдущие лекции УРАВНЕНИЯ КРИВЫХ БЕЗЬЕ

n + 1 контрольных точек, положения обозначим через pk = (xk, yk, zk), где k меняется от 0 до n. Данные точки собираются в вектор положений P(u), который описывает путь аппроксимирующей полиномиальной функции Безье между p0 и pn.

, 0 u 1

Стыковочные функции Безье BEZk,n(u) являются полиномами Бернстайна

BEZk,n(u) = C(n, k)uk(1 – u)n-k

где параметры C(n, k) это биномиальные коэффициенты

C(n, k) = n!/(k!(n – k)!)

Векторное уравнение представляет систему из трех параметрических уравнений для отдельных координат кривых.

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

рекурсивные вычисления биномиальных коэффициентов

при n k.

стыковочная функция Безье удовлетворяет рекурсивному соотношению

• BEZk,n(u) = (1 – u)BEZk,n-1(u) + uBEZk-1,n-1(u), n > k 1,

• где BEZk,k = uk и BEZ0,k = (1 – u)k.

СВОЙСТВА КРИВЫХ БЕЗЬЕ

Кривые Безье обладают крайне полезным свойством. кривая соединяет первую и последнюю контрольные точки (рис). Базовая характеристика любой кривой Безье

P(0) = p0,

Рис. Замкнутая кривая Безье, совмещены

P(1) = pn.

 

первая и последняя контрольные точки

Значения первых производных кривых Безье по параметру

в конечных точках можно вычислить по координатам контрольных точек.

P’(0) = -np0 + np1,

P’(1) = -npn-1 + npn.

Касательная в начале кривой параллельна линии, соединяющей первые две контрольные точки, а касательная в конце кривой идет по линии, соединяющей последние точки.

Вторые производные кривых Безье по параметру в конечных точках вычисляются так.

P’’(0) = n(n – 1)[(p2 – p1) - (p1 – p0)],

P’’(1) = n(n – 1)[(pn-2 – pn-1) - (pn-1 – pn)].

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

так что любая точка кривой является взвешенной суммой контрольных точек.

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

МЕТОДЫ ПРОЕКТИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ КРИВЫХ БЕЗЬЕ

• Замкнутая кривая Безье, положение последней контрольной точки равно положению первой.

• Ввод нескольких контрольных точек с одинаковыми координатами равносильно присвоению большего весового коэффициента этой точке. рис. 1

• Если необходимы сложные кривые, проще сформировать

стыковкой нескольких участков Безье меньшей степени.

• Касательная к кривой в конечной точке направлена по линии, соединяющей последнюю точку с предпоследней. Для непрерывности участков кривой первого порядка, точки p0’ и p1’ следующего участка кривой нужно выбрать на той же прямой линии, что и точки pn-1 и pn предыдущего участка (рис. 2). Если первый участок кривой имеет n точек, а следующий n‘, тогда касательные к кривым можно согласовать, разместив точку p1

• p1’ = pn + n/n‘ (pn- pn-1).

• можно потребовать только геометрической непрерывности и поместить p1’ где-либо на линии между pn-1 и pn.

• Для непрерывности в C2, нужно согласовать вторые производные по параметру двух соседних участков Безье.

• В результате в дополнение к фиксированному положению p0’ и p1’ (для непрерывности C0 и C1) определяется положение p2’ . Требование непрерывности второго порядка участков кривой Безье может быть излишне ограничивающим.

Особенно это касается кубических кривых, которые могут иметь только четыре контрольные точки на участок.

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

Рис.1. Кривую Безье можно проложить ближе к данной точке, соотнеся с этим положением несколько контрольных точек

Рис. 2. Кусочно-гладкая аппроксимация, сформированная двумя участками

Безье. Чтобы добиться непрерывности нулевого и первого порядка между двумя участками кривой, использовались условия p0

= p2 и p1’ на линии, сформированной точками p1 и p2

КУБИЧЕСКИЕ КРИВЫЕ БЕЗЬЕ

Кубические кривые Безье определяются четырьмя контрольными точками. Четыре стыковочные функции для кубических кривых Безье получаются подстановкой n = 3 в уравнение, и они имеют следующий вид.

BEZ0,3 = (1 – u)3,

BEZ1,3 = 3u(1 – u)2,

BEZ2,3 = 3u2(1 – u),

BEZ3,3 = u3.

Графики четырех кубических стыковочных функций Безье приведены (рис.). Форма стыковочных функций определяет, как контрольные точки влияют на форму кривой при значениях параметра u из диапазона от 0 до 1.

• При u = 0 единственной отличной от нуля

Рис. Четыре стыковочные функции Безье для

стыковочной функцией является BEZ0,3, значение

кубических кривых (n = 3)

 

которой равно 1.

На рис. все четыре стыковочные функции

• При u = 1 единственной ненулевой функцией

не равны нулю во всем диапазоне

является BEZ3,3(1) = 1. Таким образом, кубическая

изменения параметра u между

кривая Безье всегда начинается в контрольной

точке p0 и заканчивается в контрольной точке p3.

конечными точками. Т. е, кривые Безье не

• Другие функции, BEZ1,3 и BEZ2,3, влияют на форму

допускают локального контроля за

кривой в промежуточных значениях параметра u,

формой кривой.

так что получающаяся кривая притягивается к

Если переместить любую из контрольных

точкам p1 и p2. Стыковочная функция BEZ1,3 имеет

точек, изменится вся кривая.

максимум при u = 1/3, BEZ2,3 достигает максимума

 

при u = 2/3.

 

Соседние файлы в предмете Компьютерная Графика