
- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [Uniformization]
- •Построение Кривых Безье
- •Что, если область u не [0.1]?
- •Краткий Итог
- •Нахождение точки на Кривой Безье: Алгоритм De Casteljau's
- •Вычисления
- •Рекурсивное Представление
- •Кривые Безье Касательны к их Первому и Последнему Сегменту.
- •Объединение Двух Кривых Безье с соблюдением c1-Непрерывности
- •Соотношение Между Производной и Алгоритмом de Casteljau
- •Производные Высших Порядков [Higher Derivatives]
- •Разбиение Кривой Безье
- •Зачем Это Нужно, блин ? [Why Do We Need Curve Subdivision?]
- •Базисные Функции b-spline: Определение
- •Два Важных Замечания
- •Какое Значение Имеют Коэффициенты?
- •Базисные Функции b-spline: Важные Свойства
- •Ni,p(u) - это многочлен p-й степени от u
- •Неотрицательность -- Для всех I, p и u, Ni,p(u) неотрицательно
- •Влияние Множественных УзлоFf
- •Примеры Вычислений
- •Простые Узлы
- •Множественные Узлы
- •Кривые b-spline: Определение
- •Кривые b-spline: Важные Свойства
- •Преимущества Использования Кривых b-spline
- •Кривые b-spline: Вычисление Коэффициентов
- •Кривые b-spline: Перемещение Контрольных Точек
- •Некоторые Полезные Следствия Свойства Сильного Ограничивающего Многоугольника
- •Кривые b-spline: Изменение Узлов
- •Замечание о Множественных Узлах
- •Производные Кривой b-spline
- •Фиксированные Кривые b-spline
- •Производные Высших Порядков
- •Nurbs: Мотивация
- •Nurbs: Определение
- •Два Прмых Следствия [Two Immediate Results]
- •Геометрическая Интерпретация.
- •Nurbs: Важные Свойства
- •Важные Свойства Базисных Функций nurbs
- •Неотрицательность -- для всех I и p, Ri,p(u) неотрицательно
- •Важные Свойства Кривых nurbs
- •Кривая nurbs p(u) - это кусочная кривая, каждый компонент которой - это рациональная кривая степени p
- •Фиксированная кривая nurbs p(u) проходит через две крайние контр. Точки p0 и pn
- •Nurbs: Изменение Весов
- •Углубленное Рассуждение
- •Кривые b-spline/nurbs: Введение Узла
- •Введение Одиночного Узла
- •Пример 1: Введение Узла на Узловом Интервале
- •Пример 2: Введение Узла в Существующем Простом Узле
- •Пример 3: Введение Узла в Существующем Множественном Узле
- •Введение Узла для Кривых nurbs
- •Кривые b-spline/nurbs: Множественное Введение Узла
- •Замечание (Наблюдение) I: Коэффициенты для Вычисления Новых Контр. Точек
- •Замечание [Наблюдение] II: Вычисление Новых Контрольных Точек
- •Вычислить первый столбец, второй столбец, ... И h-ый столбец;
- •Новым набором контр. Точек будут те, что ограничены пунктирным многоугольником.
- •Отсечение Углов
- •Алгоритм De Boor
- •Алгоритм De Boor для Кривых nurbs
- •Основные Понятия
- •Параметрические Поверхности
- •Неявные Поверхности
- •Особенности
- •Поверхности Безье: Построение [Construction]
- •Базисные Функции
- •Поверхности [Tensor] Произведения
- •Поверхности Безье: Важные Свойства
- •Изопараметрические Кривые
- •Граничные [Boundary] Кривые
- •Направление u и направление V
- •Поверхности [Tensor] Произведения: Возвращаемся к теме
- •Поверхности b-spline: Построение
- •Базисные Функции
- •Фиксированные, Закрытые и Открытые Поверхности b-spline
- •Поверхности b-spline: Важные Свойства
- •Выбор Параметров : Обзор [Parameter Selection Overview]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Кривые b-spline: Определение
Дано n + 1 контрольных точек p0, p1, ..., pn и узловой вектор U = { u0, u1, ..., um }, кривая B-spline степени p, определяемая этими точками и узловым вектором U, это
,
где Ni,p(u) - это базисные функции кривой B-spline степени p. Вид кривой B-spline очень похож на кривые Безье. В отличие от кривых Безье, кривые B-spline требуют больше информации, а именно: набор контр. точек, узловой вектор, и степень. Заметьте, что n, m и p должны удовлетворять условию m = n + p + 1. Точнее, если мы хотим описать кривую B-spline степени p с n + 1 контр. точками, нам нужно обеспечить [supply] n + p + 2 узлов u0, u1, ..., un+p+1. С другой стороны, если узловой вектор состоит из m + 1 узлов и дано n + 1 контр. точек, то степень кривой B-spline равна p = m - n - 1.
Хотя Ni,p(u) похоже на Bn,i(u), степень кривых B-spline - это входные данные, тогда как степень кривой Безье зависит от количества контр. точек. Поэтому, чтобы изменить форму кривой B-spline, можно изменить один или несколько управляющих параметров: положения контрольных точек, положения узлов, степень кривой.
Если узловой вектор не имеет конкретной структуры, полученная кривая не будет касаться первого и последнего сегмента контрольной ломаной, как показано на рисунке ниже. Этот тип кривых B-spline называется открытыми кривыми B-spline. Мы, возможно, захотим закрепить кривую, то есть сделать так, чтобы она была касательна первому и последнему сегментам, как в случае с кривыми Безье. Чтобы это сделать, первый и последний узлы должны повторяться p+1 раз (т.e., быть множественности p+1). Таким образом, получим так называемую фиксированную кривую B-spline. Посмотрите на средний рисунок ниже. Дублируя некоторые узлы и контрольные точки, можно сделать полученную кривую замкнутой. В этом случае начало и конец полученой кривой соединяются, образуя замкнутую петлю, как показано на правом рисунке ниже. Таким образом получаем фиксированную кривую. [In this note, we shall use clamped curve.]
На этих рисунках по n+1 контр. точек, где n=9 и p = 3. То есть, m должно быть равно 13, чтобы узловой вектор содержал 14 узлов. Чтобы получить эффект фиксированности, првые p+1 = 4 и последние 4 узла должны быть одинаковыми. Остальные 14 - (4 + 4) = 6 узлов могут мыть распределены где угодно в области определения. Фактически, кривая образуется узловым вектором U = { 0, 0, 0, 0, 0.14, 0.28, 0.42, 0.57, 0.71, 0.85, 1, 1, 1, 1 }. Заметьте, что, кроме первых и последних четырех узлов, средние узлы почти равномерно распределены. Рисунки также показывают соответствующие отрезки кривой для каждого узлового интервала. Фактически, маленькие треугольники - это точки на кривой, соответствующие узлам. Так как у нас только шесть узлов не на концах, то есть шесть маленьких треугольников, указывающих положения соответствующих узлов.
Как упоминалось ранее, если на концах нет повторяющихся узлов, то полученная кривая не будет касательна к первому и последнему сегментам. В этом случае нужно позаботиться об одном дополнительном ограничении. На предыдущей странице мы рассмотрели пример вычисления базисной функции с узловым вектором U = { 0, 0.25, 0.5, 0.75, 1 }, где m = 4. Если базисные функции степени 1 (т.e., p = 1), то имеется три базисные функции N0,1(u), N1,1(u) и N2,1(u), как показано ниже.
Так как это узловой вектор не фиксирован, то первый и последний узловые интервалы (т.e., [0, 0.25) и [0.75, 1) ) имеют только одну ненулевую базисную функцию, тогда как второй и третий интервалы (i.e., [0.25, 0.5) и [0.5, 0.75) ) имеют две ненулевые базисные функции. Вспомним из важных свойств B-spline, что на узловом интервале [ui, ui+1) есть максимум p+1 ненулевых базисных функций степени. Таким образом, в этом примере, узловые интервалы [0,0.25) и [0.75,1) не имеют "полной поддержки" ["full support"] базисных функций. В общем случае, для степени p, интервалы [u0, up) и [un-p, un) не будут иметь "полной поддержки" базисных функций и будут отбрасываться в случае открытой кривой B-spline. Таким образом, получаем следующее важное замечание:
Для открытых кривых B-spline, область определения - это интервал [up, un-p].