
- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Nurbs: Изменение Весов
Так как кривые NURBS определяются набором контр. точек, узловым вектором, значением степени и набором весов, то имеем еще один важный параметр для изменения формы кривой - это значения весов. Вспомним, что базисные функции кривых NURBS - это
Таким образом, увеличение и уменьшение значения wi соответственно увеличит и уменьшит значение Ri,p(u). Говоря точнее, увеличение значения wi приблизит кривую к контр. точке pi. Фактически, все зависимые от этого точки на кривой также приблизятся в направлении к pi. Когда wi станет равно бесконечности, кривая пройдет через контр. точку pi. С другой стороны, уменьшение значения wi отодвинет кривую от контр. точки pi. Нажмите сюды для более глубокого обсуждения.
Следующие рисунки показывают кривую NURBS 6 степени и ее базисные функции. Выбранная контр. точка - p9. На первом рисунке все весы равны 1 и поэтому кривая является кривой B-spline. На втором рисунке w9 увеличено до 2 и, как видите, часть кривой двигается ближе к p9. Так как w9 увеличилось, то же самое и с R9,6(u), как показано на рисунке справа.
Далее w9 увеличивается до 5, 10 и 20, соответствующее R9,6(u) становится больше, и несет больший вес. Это пододвигает кривую ближе к контр. точке p9. Когда w9 = 20, кривая очень близка p9.
Взглянем на противоположный эффект.Вот начальный случай, когда все весы равны 1. Далее, w9 уменьшается до 0.5 и это отодвигает кривую от контр. точки p9. Заметьте, что соответствующее R9,6(u) уменьшается, как и влияние контр. точки p9 на кривую p(u). Когда w9 изменяется до 0.1, кривая отодвигается и значение R9,6(u) становится меньше. Последний рисунок показывает кривую при w9 равном нулю. Так как R9,6(u) равно нулю, то оно не влияет на кривую и в результате отрезок кривой напротив контр. точки p9 плоский.
В итоге, имеем следующее:
Увеличение (соотв., уменьшение) значения веса wi пододвигает (соотв. отталкивает) кривую к (соотв., от) контр. точке pi. Когда значение wi уходит в бесконечность, кривая проходит через контр. точку pi, а когда значение wi равно нулю, контр. точка pi не влияет на кривую.
Углубленное Рассуждение
Раасмотрим пристальнее влияние изменения веса выбранной контр. точки. Давайте вернемся к определению кривой NURBS:
Выберем контр. точку pk и исследуем влияние изменения wk. Так как pk может влиять на кривую p(u) только на ненулевой области ее коэффициента Nk,p(u) (т.e. [uk, uk+p+1)), то далее примем, что u лежит на [uk, uk+p+1).
Вынесем члены с wk из суммирования, получим:
Так как это уравнение довольно сложное, упростим его следующим способом:
Теперь уравнение стало таким легкочитаемым:
Сначала возьмем случай wk = 0. Имеем A = 0, и точка на кривой, обозначается как p0(u), равна
Теперь давайте вычислим вектор из этой "базисной" точки p0(u) в соответствующую ей точку p(u) для произвольного wk. После простых преобразований имеем следующее:
Что это значит? Это значит, что вектор p(u)-p0(u) и вектор pk-p0(u) имеют одно направление, а длина первого в A/(A+B) больше, чем длина последнего для каждого u на [uk, uk+p+1)! Так как точки pk и p0(u) фиксированы, то можно сказать, что p(u) лежит на прямой от pk до p0(u). Более того, если все весы неотрицательны, то и A, и B неотрицательны и значение A/(A+B) лежит между 0 и 1! То есть, точка p(u) лежит на отрезке между pk и p0(u).
Что, если wk достигает бесконечности? Давайте поделим числитель и знаменателm кривой p(u) на wk, как показано ниже.
Если wk уходит в бесконечность, 1/wk становится нулем. Отсюда, если wk достигает бесконечности, то p(u) достигает pk, выбранной контр. точки. Вот итог сказанного:
Если wk неотрицательно, то p(u) всегда лежит на отрезке между p0(u) и pk, где p0(u) - это точка, соответствующая wk = 0, а u лежит на [uk, uk+p+1). Более того, когда wk изменяется от 0 до бесконечности, p(u) двигается от p0(u) к pk, а если wk - бесконечность, то p(u) становится pk. |
Следующий рисунок иллюстрирует этот результат. Имеем кривую NURBS 6 степени, определенную по 9 контр. точкам (n = 8) и 16 узлам (m = 15), как показано ниже.
u0 = u1 = u2 = u3 = u4 = u5 = u6 |
u7 |
u8 |
u9 = u10 = u11 = u12 = u13 = u14 = u15 |
0 |
1/3 |
2/3 |
1 |
Выбранная контр. точка - это p4. Так как коэффициент при p4, N4,6(u), не рваен нулю на [u4, u4+6+1) = [0,1), то изменение w4 влияет на кривую целиком!
Точки, соответствующие u = 1/3 и u = 2/3 обозначены на кривой разными цветами. Кривая, соответствующая w4 = 0 - самая нижняя, обозначена 0. Риснуок показывает кривые для w4, равного 2, 3, 4, 5, 10, 20 и 50. При увеличении значения w4 кривая пододвигается ближе к контр. точке p4. Когда w4 увеличивается до 50, кривая становится очень близко к p4. Пожалуйста, заметьте, что все точки, соовтетствующие p(1/3) находятся на отрезке прямой между точками p0(1/3) и p4, а все точки, соответствующие p(2/3) - на отрезке прямой между p0(2/3) и p4. Также заметьте, что отрезок кривой между точками p(1/3) и p(2/3) становится короче при увеличении значения w4. В конце концов длина этого криволинейного отрезка становится равной нулю (т.e. p(1/3) и p(2/3) становится равно p4), когда w4 равно бесконечности. Можете ли вы обобщить это наблюдение?