Рациональные параметрические кривые

B-сплайн, состоят из сегментов, чьи полиномиальные коэффициенты зависят лишь от нескольких контрольных точек. Т.е. B-сплайны подвержены локальному контролю - движение одной точки отражается только на малом участке кривой.

Кубический B-сплайн аппроксимирует последовательность из m+1 контрольной точки P0, P1,..., Pm, m>=3; с помощью кривой, состоящей из m-2 кубических полиномиальных сегментов (в сущности - в форме Безье) Q3, Q4,..., Qm. Считаем домены параметра t для каждого сегмента последовательными. Т.е. сегмент Qi определен в интервале ti <=t<ti+1 для 3<=i<m. В частном случае m=3 имеем всего один сегмент на интервале t3<=t<t4 определяемый контрольными точками P0, P1, P2, P3.

Для каждого I>=4 существует соединительная точка или узел между Qi-1 и Qi при величине параметра ti; величина параметра в узле называется величиной узла. Начальная и конечная точки в t3 и в tm+1 также называются узлами, поэтому всего имеется m-1 узлов.

Термин однородный (uniform) означает, что узлы располагаются в равных интервалах параметра t. Без потери общности можно предположить, что t3=0 и ti+1 - ti = 1.

Каждый из m-2 сегментов кривой определяется четырьмя из m+1 контрольных точек:

для Qi: Pi-3, Pi-2, Pi-1, Pi.

Значит, геометрическая матрица для этого сегмента:

Gbsi = [ Pi-3 Pi-2 Pi-1 Pi ], 3<=i<m

Можно видеть, что сегмент Qi начинается где-то вблизи точки Pi-2 и заканчивается где-то около Pi-1. Каждая контрольная точка (кроме первых и последних) влияет на 4 сегмента.

Базисная матрица для -сплайна, связывающая геометрические ограничения Gbs с функциями сопряжения Bbs и полиномиальными коэффициентами:

Mbs = 1/6 * [ -1 3 -3 1 ]

[ 3 -6 3 0 ]

[ -3 0 3 0 ]

[ 1 4 1 0 ]

Заменяя для простоты (t-ti) на t, а интервал [ ti, ti+1 ] на [ 0, 1 ], получим:

Qi(t-ti) = Gbsi MbsiTi = Gbsi Mbs T =

= Gbsi Bbs = Pi-3 Bbs-3 + Pi-2 Bbs-2 + Pi-1 Bbs-1 + Pi Bbs0 =

= (((1-t)^3)/6) Pi-3 + ((3*t^3-6*t^2+4)/6) Pi-2 + ((-3*t^3+3*t^2+3*t+1)/6) Pi-1 + ((t^3)/6) Pi,

Можно трактовать кривую, как существующую в пространстве однородных координат:

Q(t) = [ X(t) Y(t) Z(t) W(t) ]T

Переходя в трехмерное пространство:

x(t) = X(t)/W(t), y(t) = Y(t)/W(t), z(t) = Z(t)/W(t),

где X(t), Y(t), Z(t), W(t) - кубические полиномиальные кривые. Когда все они B-сплайны, то их называют NURBS.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: