Отрезок прямой получаем в частном случае, когда ломаная линия содержит один участок. Радиус-вектор отрезка, построенного по точкам р0 и Р|, вычисляют по формуле
г (?) = р0( 1 - 0 + Pi'-
Кривые, построенные по набору точек и обладающие определенной гладкостью, называют сплайнами. Термин «сплайн» для кривых заимствован у названия чертежного инструмента — упругой гибкой линейки, которая может изгибаться так, чтобы проходить через заданные точки.
Интерполяционная формула Лагранжа позволяет построить кривую по заданным точкам в виде
r(t) = ^L,n(t)pi, t0 (1.9)
/=о
где коэффициенты L"(t) равны единице при t = t, и равны нулю в остальных узлах tj,j * i. Коэффициенты L"(t) представляют собой многочлены степени п - 1
L?(t) = - t0)...(t - /,_,)(* - */+1)...(/ - tn)
.
Из условия Lin(tj) = 1 следует, что — = (/, - - /,_,)(/, - Г,
... (/, - t„) и
п ('-'у)
Lj4t)=l^i±L . (1.,0)
П ih-tj)
Итак, радиус-вектор сплайна Лагранжа описывается формулой
П ('-о)
р, (in)
i=0 П «i-V j=0,j*i
Сплайн Лагранжа можно записать в виде
«)-£■ ^ р„
где lV0 „(t) = (t- t0)(t - /,)...(/ - /„_,)(/ - t„); = (ft ~ 'и)...
dt ,,
На форму сплайна оказывает влияние не только расположение контрольных точек, но и значения узлов. На рис. 1.4 приведен сплайн Лагранжа, изменение узловых значений параметра которого пропорционально расстоянию между соседними точками:
fj+\ ~tj _ |Pl'-bl ~ P/| h-h-1 |P/-P/-i|’
Тонкой штриховой линией на рис. 1.4 показан сплайн Лагранжа с однородной параметризацией (/, = /).
На рис. 1.4 можно видеть, что на форму кривой влияет не только положение контрольных точек, но и соответствующие им значения параметров, т.е. параметризация кривой.
Сплайн Ньютона, проходящий через заданные точки, найдем в форме:
г(г) = а0 + а,(/ - /0) + а2(г - /„)(/ - t\) + - +
+ - t0)(t /„_,). (1.12)
Векторы а, определим из условия прохождения векторной функции г(?) через точки р, при значениях параметра th i = 0, 1, ..., я:
Ро = ао>
р, = а0 + а,(/, - t0),
р2 = а0 + а,(/2 - t0) + а2(?2 — tg)(h ~~ U)i (1.13)
р„ = а0 + а,(/„ - /0) + a2(r„ - t0)(t„ - /,) + ... + а„(/„ - t0)(tn - /,)...(?„ - /„_,). 14Рис. 1.4
Матрица этой системы уравнений является треугольной, и система решается за один прямой проход. Первое уравнение системы (1.13) дает а0. Подставляя этот результат во второе уравнение, получим а,. Из третьего уравнения находим а2 и так далее до а„. Вставляя дополнительную точку рл+| в сплайн, увеличиваем систему (1.13) на одно уравнение, а остальные уравнения остаются неизменными. Это является преимуществом сплайна Ньютона по сравнению со сплайном Лагранжа при построении кривых с увеличивающимся числом точек. Формулы (1.9) и (1.12) описывают одну и ту же кривую. Сплайны Лагранжа и Ньютона редко используются в геометрическом моделировании из-за их поведения, в том числе и из-за сильной зависимости от значений параметров в контрольных точках.
Построим на заданной совокупности контрольных точек кубический сплайн, который бы имел непрерывными первые и вторые производные радиуса-вектора. На каждом участке между соседними контрольными точками будем описывать радиус-вектор кривой кубическим полиномом. Вторые производные радиуса-вектора сплайна в контрольных точках обозначим через s,. Вторая производная радиуса-вектора сплайна на участке /, < / < tM по определению является линейной функцией параметра t
d2г _ -t . _ t-t:
г-s,— + s,+l .
dt2 tM-t, tM-ti
После двукратного интегрирования получим
r(0-s, (?,+1 ~Г)3 + s)4, +C|? + C2.
W ' 6(/,-+1 -/,) '+l 6(tM -/,) 1
2
Выражение (1.14) описывает кубический полином на отрезке /, < / <
tM и содержит две неизвестные величины s, и s,+1. Для их определения приравняем первую производную сплайна на правом конце отрезка <
t < t, первой производной сплайна на левом конце отрезка t,M. После дифференцирования (1.14) и подстановки t = получим
(7а, + ям)Цм-0 t р^-р,-
',41
После замены в (1.14) / на i - 1, дифференцирования и подстановки t = t, получим
dr _ (2s,-+s;,,)(/, -/,■.,) | p, -p,_i dt,, 6 t,-tt_x
Приравняв правые части последних двух выражений, получим следующее уравнение:
s,_, (t, - /M) + 2s,. (tM -1) + s,.+1 (/(+1 -1,) = 6^-^ - 6 .
{м ~*i ti~h-1
Такие уравнения можно составить для п - 1 контрольных точек. Подлежат определению п + 1 неизвестных векторов s,. Два недостающих уравнения для определения всех неизвестных составим исходя из условий на концах кривой. Например, если считать концы кривой свободными, то можно положить s0 = s„ = 0. В некоторых случаях можно принять s0 = S], s„ = sn_j, тогда на концевых участках сплайн будет иметь постоянную кривизну. Дополнительные условия зависят от геометрических условий в каждом конкретном случае. Если требуется построить замкнутую кривую, то будем иметь равное число неизвестных и уравнений. Таким образом, неизвестные векторы вторых производных s, в контрольных точках найдем из системы линейных уравнений. Матрица этой системы линейных уравнений трехдиагональная, что упрощает решение системы. Выражение (1.14) можно представить в виде
w = — a tj < t < ti+l. Полученная кривая называется кубическим
U+\ ~ h
сплайном.
На форму сплайна оказывают влияние расположение контрольных точек и значения узлов. Если есть свобода выбора узловых значени
й
Рис. 1.5
параметра, то для избежания петель и необоснованных изгибов сплайнов желательно использовать параметризацию, пропорциональную натуральной параметризации сплайна. При натуральной параметризации кривой за параметр принимается длина кривой, отсчитываемая от некоторой начальной точки. Хорошие результаты дает также параметризация, при которой изменение узловых значений параметра пропорционально расстоянию между соседними точками
На рис. 1.5 приведен кубический сплайн, изменение узловых значений параметра которого пропорционально расстоянию между соседними контрольными точками; штриховой линией показан кубический сплайн с однородной параметризацией (t, = /). При однородной параметризации изменение формы сплайна будут тем больше, чем менее равномерно расположены контрольные точки.
По аналогии с кубическим сплайном могут быть построены сплайны более высокой степени, когда производные радиуса-вектора третьего и более высокого порядка непрерывны в контрольных точках. В предельном случае, сохраняющем непрерывность производных «-го порядка при п + 1 контрольных точках, мы построим сплайн Лагранжа или сплайн Ньютона.
Если задана последовательность т + 1 точек, через которую должна пройти кривая и производные ее радиуса-вектора в этих точках, то по этим данным можно построить сплайн Эрмита, описываемый полиномом степени 2т + 1. Рассмотрим частный случай сплайна Эрмита для т = 1.
Ломаную линию можно рассматривать как составную кривую, построенную из отрезков прямой линии. По аналогии можно построить составную кубическую кривую, состоящую из сплайнов Эрмита третьей степени, гладко стыкующихся между собой. Построим составной сплайн Эрмита, проходящий через заданную последовательность точек и имеющий в этих точках заданные производные. Пусть радиусы-векторы этих точек равны р„ векторы производных кривой в этих точках равны q„ а значения параметра в этих точках равны t, (tt < tM), где / = 0, 1, 2, ..., п — номера точек. На участке между точками р, и р,+1 составной сплайн Эрмита является полиномом третьей степени местного параметра w (рис. 1.6)
:
Do'stlaringiz bilan baham: |