Читайте также:
|
|
У кривых B-spline много свойств, схожих с кривыми Безье, так как они являются обощением последних. Более того, кривые B-spline имеют больше желаемых свойств, чем кривые Безье. На этой странице перечислено большинство важных свойств B-spline. Мы рассмотрим только фиксированные кривые B-spline.
В дальнейшем будем считать, что кривая B-spline p (u) степени p определяется n + 1 контрольными точками, узловым вектором U = { u 0, u 1,...., um } с первыми p +1 и последними p +1 "склеенными" узлами (т.e. u 0 = u 1 =... = up и um-p = um-p +1 =... = um).
Это полезное свойство дает нам возможность проектировать кривые очень сложных форм, используя многочлены низких степеней. Например, ниже правый рисунок показывает кривую Безье с тем же набором контрольных точек. Кривая не очень-то следует за контрольной ломаной, а ее степень равна 10!
В общем случае, чем меньше степень, тем сильнее кривая B-spline приближается к ее контрольной ломаной. На рисунках далее показаны кривые с одной и той же контрольной ломаной, их узлы фиксированы и равномерно распределены. На первом рисунке кривая 7 степени, на среднем - 5, а на правом - 3. Таким образом, при увеличении степени полученный B-spline приближается к его контрольной ломаной.
Две показаные выше кривые B-spline имеют 11 контр. точек (т.e. n = 10), 3 степени (т.e. p =3) и 15 узлов (m = 14), четыре первых и четыре последних узла фиксированы. Таким образом, количество узловых интервалов равно количеству отрезков кривых. Узловой вектор - это
u 0 | u 1 | u 2 | u 3 | u 4 | u 5 | u 6 | u 7 | u 8 | u 9 | u 10 | u 11 | u 12 | u 13 | u 14 |
0.12 | 0.25 | 0.37 | 0.5 | 0.62 | 0.75 | 0.87 |
На рисунке слева u лежит на узловом интервале [ u 4, u 5) = [0.12,0.25), а соответствующая точка (т.e. p (u)) - на втором отрезке кривой. Таким образом, p +1 = 4 базисных функции - ненулевые на этом интервале (т.e. N 4,3(u), N 3,3(u), N 2,3(u) и N 1,3(u)), а соответствующие контрольные точки - это p 4, p 3, p 2 и p 1. Темная область - это огранич. многоугольник для этих четырех точек. Ясно, что p (u) лежит в этом многоугольнике.
Кривая B-spline на правом рисунке описывается так же. Но в данном случае u на интервале [ u 9, u 10) = [0.75,0.87) и ненулевые функции - это N 9,3(u), N 8,3(u), N 7,3(u) и N 6,3(u). Соответствующие контрольные точки - p 9, p 8, p 7 и p 6.
Следовательно, когда u движется от 0 к 1 и переходит узел, базисные функции становятся нулями, а новая базисная функция становится эффективной. В результате одна контрольная точка, коэффициент которой становится равным 0, выходит за пределы огранич. многоугольника и заменяется новой контрольной точкой, коэффициент которой не равен нулю.
Вышеуказанные кривые B-spline имеют те же параметры, что и в предыдущем примере. Переместим контр. точку p 2. Коэффициент этой контр. точки равен N 2,3(u), а интервал, на котором этот коэффициент не равен нулю - это [ u 2, u 2+3+1) = [ u 2, u 6) = [0,0.37). Так как u 2 = u 3 = 0, то только три отрезка, соответствующих [ u 3, u 4) (область первого отрезка кривой), [ u 4, u 5) (область второго отрезка кривой) и [ u 5, u 6) (область третьего отрезка кривой) будут затронуты. Рисунок справа показывает результат перемещения p 2 в правый нижний угол. Как видите, только первый, второй и третий отрезки кривой изменили форму, а все остальные остались неизменными.
Эта схема локального изменения очень важна для проектирования кривых, потому что можно изменять кривую локально, не изменяя форму кривой в целом. Более того, если нужна точная настройка кривой, можно добавить больше узлов (соответственно, и контр. точек) так, чтобы зона изменения была очень малой областью. Мы поговорим об добавлении узлов позже.
Вышеуказанная кривая имеет 18 контр. точек (т.e. n = 17), степень, равную 4, и следующий фиксированный узловой вектор
от u 0 до u 4 | u 5 | u 6 и u 7 | u 8 | от u 9 до u 11 | u 12 | от u 13 до u 16 | u 17 | от u 18 до u 22 |
0.125 | 0.25 | 0.375 | 0.5 | 0.625 | 0.75 | 0.875 |
Таким образом, u 6 является двойным узлом, u 9 тройным узлом, а u 13 - четверным. Следовательно, p (u) имеет непрерывность C 4 в любой точке, не являющейся узлом, непрерывность C 3 во всех простых узлах, непрерывность C 2 в u 6, непрерывность C 1 в u 9, непрерывность C 0 в u 13.
Все точки на кривой, соответствующие узлам, обозначены маленькими треугольниками, соответствующие множественным узлам - окружностями с числом, указывающим их множественность. Очень сложно зрительно показать разницу между непрерывностями C 4, C 3 и даже C 2. Для случая C 1 соответствующая точка лежит на сегменте, тогда как в случае C 0 кривая проходит через контрольную точку. Мы еще вернемся к этому позднее, при обсуждении изменения узлов.
На рисунке выше синяя линия пересекает как контрольную ломаную, так и кривую B-spline 6 раз, тогда как желтая линия пересекает их по 5 раз. Однако оранжевая линия пересекает контрольную ломаную 6 раз, а кривую 4 раза.
Дата добавления: 2015-10-29; просмотров: 157 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Кривые B-spline: Определение | | | Кривые B-spline: Вычисление Коэффициентов |