- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Пример 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 все равны нулю и, следовательно, имеем
qk = (1 - ak)pk-1 + akpk = pk-1 qk-1 = (1 - ak-1)pk-2 + ak-1pk-1 = pk-2 .......... qk-s = (1 - ak-s+1) pk-s + ak-s+1pk-s = pk-s
Это показывает, что, если новый узел t вводится в существующий узел uk множественности s, то последние s новых контр. точек, qk, qk-1, ..., qk-s+1 равны исходным контр. точкам pk-1, pk-2, ..., pk-s. Если s = 1 (т.e. это простой узел), qk равно pk-1, что как раз и обсуждалось во 2 примере. Если s = 0 (т.e. t не является узлом), то все контр. точки от pk-p до pk являются зависимыми [involved]. Это случай из 1 Примера. Следующая диаграмма показывает схему вычислений:
Введение Узла для Кривых nurbs
Только что обсуждалось введение узла для кривых B-spline. Так как кривые NURBS - это проекции 4D-кривых B-spline на 3D-пространство, то введение узлов для кривых NURBS - это довольно просто. Заметьте, вышеизложенное обсуждение и вычисления не требуют, чтобы контр. точки были в трехмерном пространстве. Таким образом, введение узла для кривых NURBS делается в три шага: (1) преобразуем данную кривую NURBS в 3D в кривую B-spline в 4D, (2) проводим введение узла для этой четырехмерной кривой B-spline, и (3) проецируем новый набор контр. точек обратно на трехмерное пространство, чтобы получить новый набор контр. точек для данной кривой NURBS после введения узла.
Пусть имеется n + 1 контр. точек p0, p1, ..., pn с соответствующими весами w0, w1, ..., wn, узловой вектор U и степень p. Пусть pi = (xi, yi, zi). Тогда контр. точки Pi = ( wixi, wiyi, wizi, wi ), 0 <= i <= n и узловой вектор U определяют четырехмерную кривую B-spline степени p. Мы можем ввести узел t в эту четырехмерную кривую B-spline, получим новый набор контр. точек Qi = ( Xi, Yi, Zi, Wi ), 0 <= i <= n. Проецируем эти контр. точки обратно на трехмерное пространство с помощью деления первых трех составляющих на четвертую, и получаем новый набор контр. точек для данной кривой NURBS.
Рассмотрим пример. Допустим, есть 9 узлов
u0 - u3 |
u4 |
u5 - u8 |
0 |
0.5 |
1 |
и кривая NURBS 3 степени, построенная по 5 контр. точкам на плоскости xy:
|
x |
y |
w |
p0 |
-70 |
-76 |
1 |
p1 |
-70 |
75 |
0.5 |
p2 |
74 |
75 |
4 |
p3 |
74 |
-77 |
5 |
p4 |
-40 |
-76 |
1 |
Вот кривая и ее базисные функции.
Давайте введем новый узел t = 0.4. Так как t на узловом интервале [u3, u4), а степень кривой NURBS равна 3, то зависимые точки - это p3, p2, p1 и p0. Так как это кривая NURBS, мы будем использовать [homogeneous] кординаты, умножив все контр. точки на соответствующие им весы. Назовем эти новые точки Pi:
|
x |
y |
w |
P0 |
-70 |
-76 |
1 |
P1 |
-35 |
37.5 |
0.5 |
P2 |
296 |
300 |
4 |
P3 |
370 |
-385 |
5 |
Заметьте, так как на P4 не влияет введение узла, она не вычисляется в этой таблице. Затем, вычисляем a3, a2 и a1:
a3 = (t - u3)/ (u6 - u3) = (0.4 - 0)/(1 - 0) = 0.4 a2 = (t - u2)/ (u5 - u2) = (0.4 - 0)/(1 - 0) = 0.4 a1 = (t - u1)/ (u4 - u1) = (0.4 - 0)/(0.5 - 0) = 0.8
Новые контр. точки Q3, Q2 и Q1 - это
Q3 = (1 - a3)P2 + a3P3 = ( 325.6, 26, 4.4 ) Q2 = (1 - a2)P1 + a2P2 = ( 97.4, 142.5, 1.9 ) Q1 = (1 - a1)P0 + a1P1 = ( -42, 14.8, 0.6 )
Проецируя эти три четырехмерные контр. точки с помощью деления первых трех составляющих на четвертую (вес), получим
q3 = ( 74, 5.9 ) с весом 4.4 q2 = ( 51.3, 75 ) с весом 1.9 q1 = ( -70, 24.6 ) с весом 0.6
Вот конечный вид кривой NURBS и ее базисных функций: