Читайте также:
|
|
Пусть имеем такой узловой вектор:
u 0 - u 4 | u 5 | u 6 | u 7 | u 8 | u 9 | u 10 | u 11 | u 12 - u 16 |
0.125 | 0.25 | 0.375 | 0.5 | 0.625 | 0.75 | 0.875 |
Нам нужно ввести новый узел t = 0.5, который равняется существующему (т.e. t = u 8 = 0.5). Вот кривая B-spline 4 степени и ее базисные функции до введения нового узла t.
Так как t находится на [ u 8, u 9), то зависящие точки - это p 8, p 7, p 6, p 5 и p 4. Коэффициенты вычисляем так:
a 8 = (t - u 8) / (u 12 - u 8) = (0.5 - 0.5) / (1 - 0.875) = 0
a 7 = (t - u 7) / (u 11 - u 7) = (0.5 - 0.375) / (0.875 - 0.375) = 1/4
a 6 = (t - u 6) / (u 10 - u 6) = (0.5 - 0.25) / (0.75 - 0.25) = 1/2
a 5 = (t - u 5) / (u 9 - u 5) = (0.5 - 0.125) / (0.625 - 0.125) = 3/4
Новые контр. точки - это
q 8 = (1 - 0) p 7 + 0 p 8
q 7 = (1 - 1/4) p 6 + (1/4) p 7
q 6 = (1 - 1/2) p 5 + (1/2) p 6
q 5 = (1 - 3/4) p 4 + (3/4) p 5
Новая контр. точка q 8 равна исходой контр. точке p 7. Фактически, если t равняется узлу, скажем, uk, то
ak = (t - uk) / (uk+p - uk) = 0
Следовательно, имеем
q k = (1 - 0) p k -1 + 0 p k = p k -1
То есть, если новый узел t, который должен быть введен, равняется существующему простому узлу uk, то q k, последняя новая контр. точка, равняется p k -1. Следующая диаграмма показывает схему вычислений:
На рисунке в начале этого примера новые контр. точки и новая контр. ломаная показаны оранжевым цветом. Пожалуйста, заметьте, новые контр. точки - это p 0, p 1, p 2, p 3, p 4, q 5, q 6, q 7, q 8 = p 7, p 8, p 9, p 10 и p 11. Кривая и ее базисные функции после введения нового узла t = 0.5 показана ниже.
Соотношения между значениями aj, uj и t показаны ниже:
Пример 3: Введение Узла в Существующем Множественном Узле
А что, если новый узел t вводится в монжественный узел? Пусть t вводится в узел uk множественности s. Таким образом, имеем s последовательных одинаковых узлов: uk = uk -1 = uk -2 =.... = uk-s +1 и uk-s +1, не равный uk-s. В вычислении коэффициентов ak,...., ak-p +1, имеем следующее:
ak = (t - uk) / (uk+p - uk) = (uk - uk) / (uk+p - uk) = 0
ak -1 = (t - uk -1) / (uk+p -1 - uk -1) = (uk - uk -1) / (uk+p -1 - uk -1) = 0
..........
ak-s +1 = (t - uk-s +1) / (uk-s +1+ p - uk-s +1) = (uk - uk-s +1) / = 0
Отсюда, коэффициенты ak,...., ak-p +1 все равны нулю и, следовательно, имеем
q k = (1 - ak) p k -1 + ak p k = p k -1
q k -1 = (1 - ak -1) p k -2 + ak -1 p k -1 = p k -2
..........
q k-s = (1 - ak-s +1) p k-s + ak-s +1 p k-s = p k-s
Это показывает, что, если новый узел t вводится в существующий узел uk множественности s, то последние s новых контр. точек, q k, q k -1,..., q k-s +1 равны исходным контр. точкам p k -1, p k -2,..., p k-s. Если s = 1 (т.e. это простой узел), q k равно p k -1, что как раз и обсуждалось во 2 примере. Если s = 0 (т.e. t не является узлом), то все контр. точки от p k-p до p k являются зависимыми [involved]. Это случай из 1 Примера. Следующая диаграмма показывает схему вычислений:
Дата добавления: 2015-10-29; просмотров: 141 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Введение Одиночного Узла | | | Введение Узла для Кривых NURBS |