Читайте также: |
|
Только что обсуждалось введение узла для кривых B-spline. Так как кривые NURBS - это проекции 4D-кривых B-spline на 3D-пространство, то введение узлов для кривых NURBS - это довольно просто. Заметьте, вышеизложенное обсуждение и вычисления не требуют, чтобы контр. точки были в трехмерном пространстве. Таким образом, введение узла для кривых NURBS делается в три шага: (1) преобразуем данную кривую NURBS в 3D в кривую B-spline в 4D, (2) проводим введение узла для этой четырехмерной кривой B-spline, и (3) проецируем новый набор контр. точек обратно на трехмерное пространство, чтобы получить новый набор контр. точек для данной кривой NURBS после введения узла.
Пусть имеется n + 1 контр. точек p 0, p 1,..., p n с соответствующими весами w 0, w 1,..., wn, узловой вектор U и степень p. Пусть p i = (xi, yi, zi). Тогда контр. точки P i = (wixi, wiyi, wizi, wi), 0 <= i <= n и узловой вектор U определяют четырехмерную кривую B-spline степени p. Мы можем ввести узел t в эту четырехмерную кривую B-spline, получим новый набор контр. точек Q i = (Xi, Yi, Zi, Wi), 0 <= i <= n. Проецируем эти контр. точки обратно на трехмерное пространство с помощью деления первых трех составляющих на четвертую, и получаем новый набор контр. точек для данной кривой NURBS.
Рассмотрим пример. Допустим, есть 9 узлов
u 0 - u 3 | u 4 | u 5 - u 8 |
0.5 |
и кривая NURBS 3 степени, построенная по 5 контр. точкам на плоскости xy:
x | y | w | |
p0 | -70 | -76 | |
p1 | -70 | 0.5 | |
p2 | |||
p3 | -77 | ||
p4 | -40 | -76 |
Вот кривая и ее базисные функции.
Давайте введем новый узел t = 0.4. Так как t на узловом интервале [ u 3, u 4), а степень кривой NURBS равна 3, то зависимые точки - это p 3, p 2, p 1 и p 0. Так как это кривая NURBS, мы будем использовать [homogeneous] кординаты, умножив все контр. точки на соответствующие им весы. Назовем эти новые точки P i:
x | y | w | |
P0 | -70 | -76 | |
P1 | -35 | 37.5 | 0.5 |
P2 | |||
P3 | -385 |
Заметьте, так как на P 4 не влияет введение узла, она не вычисляется в этой таблице. Затем, вычисляем a 3, a 2 и a 1:
a 3 = (t - u 3)/ (u 6 - u 3) = (0.4 - 0)/(1 - 0) = 0.4
a 2 = (t - u 2)/ (u 5 - u 2) = (0.4 - 0)/(1 - 0) = 0.4
a 1 = (t - u 1)/ (u 4 - u 1) = (0.4 - 0)/(0.5 - 0) = 0.8
Новые контр. точки Q 3, Q 2 и Q 1 - это
Q 3 = (1 - a 3) P 2 + a 3 P 3 = (325.6, 26, 4.4)
Q 2 = (1 - a 2) P 1 + a 2 P 2 = (97.4, 142.5, 1.9)
Q 1 = (1 - a 1) P 0 + a 1 P 1 = (-42, 14.8, 0.6)
Проецируя эти три четырехмерные контр. точки с помощью деления первых трех составляющих на четвертую (вес), получим
q 3 = (74, 5.9) с весом 4.4
q 2 = (51.3, 75) с весом 1.9
q 1 = (-70, 24.6) с весом 0.6
Вот конечный вид кривой NURBS и ее базисных функций:
Дата добавления: 2015-10-29; просмотров: 151 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример 2: Введение Узла в Существующем Простом Узле | | | Замечание [Наблюдение] II: Вычисление Новых Контрольных Точек |