- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Получение Узлового Вектора
Когда получен набор параметров, можно найти узловой вектор. Пусть мы получили n+1 параметров t0, t1, ..., tn и степень p. Для кривой B-spline степени p, нам нужно m+1 узлов, где m=n+p+1. Если кривая фиксирована, то эти узлы равны u0 = u1 = .... = up = 0, up+1, ..., um-p-1, um-p = um-p+1 = ... = um = 1. Говоря точнее, первые p+1 и последние p+1 узлов равны 0 и 1, соответственно. Для оставшихся n-p узлов, их можно равномерно распределить или выбрать по каким-то другим соображениям.
Пусть оставшиеся n-p внутренних узлов равномерно будут распределены. Затем, up = 0, up+1, ..., um-p-1, um-p = 1 делят [0,1] на n-p+1 подинтервалов. Таким образом, узлы равны
Например, если есть 6 (n = 5) параметров, а степень равна p = 3, то нужно найти (n+p+1)+1 = (5+3+1)+1 = 10 узлов (т.e. m=9). Так как у нас фиксированная кривая, то первые и последние четыре (т.e. p+1) узлов должны быть равны 0 и 1, соответственно. Говоря точнее, имеем 0, 0, 0, 0, u4, u5, 1, 1, 1 и 1, а два внутренних узла делят [0,1] на три подинтервала, каждый из которых имеет длину, равную 1/3. Отсюда, узловой вектор равен { 0, 0, 0, 0, 1/3, 2/3, 1, 1, 1, 1}.
Равномерно распределенный узловой вектор не требует знания параметров и очень прост в нахождении. Тем не менее, этот метод не рекомендуется использовать, из-за того, что если он используется с методом длины хорды для глобальной интерполяции, то система линейных уравнений будет исключительной [?singular]
Другой известный метод получения узлового вектора, предложенный de Boor, состоит в "усреднении" параметров. Вот формула вычислений:
Таким образом, первый внутренний узел - это среднее из p параметров t1, t2, ..., tp; второй внутр. узел - среднее следующих p параметров, t2, t3, ..., tp+1. Пусть 6 (n = 5) параметров равны
t0 |
t1 |
t2 |
t3 |
t4 |
t5 |
0 |
1/4 |
1/3 |
2/3 |
3/4 |
1 |
Нам нужно получить вектор для степени p = 3. Как упоминалось раньше, нужны 10 узлов (m = 9). Из этих десяти, первые четыре и последние четыре узла равны 0 и 1, соответственно. Таким образом, первый внутр. узел - это среднее из параметров 1/4, 1/3 и 2/3, а второй внутр. узел - это среднее следующих трех параметров 1/3, 2/3 и 3/4. Вычисленный узловой вектор равен
u0 = u1 = u2 = u3 |
u4 |
u5 |
u6 = u7 = u8 = u9 |
0 |
(1/4+ 1/3 + 2/3)/3 = 5/12 |
(1/3 + 2/3 + 3/4)/3 = 7/12 |
1 |
Следующая схема показывает положения параметров и полученных узлов. Заметьте, что 0(4) и 1(4) значит, что 0 и 1 - это четверные узлы (т.e. множественности = 4). Как вы видите, первый ненулевой узловой интервал [0,5/12) содержит два параметра, второй ненулевой интервал [5/12,7/12) не содержит параметров, а третий интервал [7/12,1) - два параметра.
