- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Пример 1: Введение Узла на Узловом Интервале
Пусть имеется кривая B-spline 3 степени с таким узловым вектором:
u0 - u3 |
u4 |
u5 |
u6 |
u7 |
u8 - u11 |
0 |
0.2 |
0.4 |
0.6 |
0.8 |
1 |
Нам нужно ввести новый узел t = 0.5. Так как t = 0.5 лежит на узловом интервале [u5,u6), зависящие контр. точки - это p5, p4, p3 и p2. Чтобы определить три новых контр. точки q5, q4 и q3, нам нужно вычислить a5, a4 и a3 следующим образом:
a5 = (t - u5) / (u8 - u5) = (0.5 - 0.4) / ( 1 - 0.4) = 1/6 a4 = (t - u4) / (u7 - u4) = (0.5 - 0.2) / ( 0.8 - 0.2) = 1/2 a3 = (t - u3) / (u6 - u3) = (0.5 - 0) / ( 0.6 - 0) = 5/6
Таким образом, три новых контр. точки - это
q5 = (1 - 1/6)p4 + (1/6)p5 q4 = (1 - 1/2)p3 + (1/2)p4 q3 = (1 - 5/6)p2 + (5/6)p3
Новая контр. ломаная становится p0, p1, p2, q3, q4, q5, p5, ...., а узловой вектор
u0 - u3 |
u4 |
u5 |
u6 |
u7 |
u8 |
u9 - u12 |
0 |
0.2 |
0.4 |
0.5 |
0.6 |
0.8 |
1 |
Так как у исходной кривой B-spline p = 3 и m = 11, получаем n = m - p - 1 = 11 - 3 - 1 = 7 и отсюда 8 контр. точек. Вот кривая B-spline, удовлетворяющая этому условию и ее базисные функции:
Три синих прямоугольника - это q3, q4 и q5. После введения t = 0.5, углы в p3 и p4 отсекаются иполучается следующая кривая B-spline и ее базисные функции. Заметьте, что форма кривой не изменяется:
Следующая диаграмма показывает соотношения между старыми и новыми контр. точками. Заметьте, новый набор контр. точек содержит p0, p1, p2, q3, q4, q5, p5, p6 и p7.
Соотношения между значениями aj, uj, и t показаны ниже:
Пример 2: Введение Узла в Существующем Простом Узле
Пусть имеем такой узловой вектор:
u0 - u4 |
u5 |
u6 |
u7 |
u8 |
u9 |
u10 |
u11 |
u12 - u16 |
0 |
0.125 |
0.25 |
0.375 |
0.5 |
0.625 |
0.75 |
0.875 |
1 |
Нам нужно ввести новый узел t = 0.5, который равняется существующему (т.e. t = u8 = 0.5). Вот кривая B-spline 4 степени и ее базисные функции до введения нового узла t.
Так как t находится на [u8,u9), то зависящие точки - это p8, p7, p6, p5 и p4. Коэффициенты вычисляем так:
a8 = (t - u8) / (u12 - u8) = (0.5 - 0.5) / (1 - 0.875) = 0 a7 = (t - u7) / (u11 - u7) = (0.5 - 0.375) / (0.875 - 0.375) = 1/4 a6 = (t - u6) / (u10 - u6) = (0.5 - 0.25) / (0.75 - 0.25) = 1/2 a5 = (t - u5) / (u9 - u5) = (0.5 - 0.125) / (0.625 - 0.125) = 3/4
Новые контр. точки - это
q8 = (1 - 0)p7 + 0p8 q7 = (1 - 1/4)p6 + (1/4)p7 q6 = (1 - 1/2)p5 + (1/2)p6 q5 = (1 - 3/4)p4 + (3/4)p5
Новая контр. точка q8 равна исходой контр. точке p7. Фактически, если t равняется узлу, скажем, uk, то
ak = (t - uk) / (uk+p - uk) = 0
Следовательно, имеем
qk = (1 - 0)pk-1 + 0pk = pk-1
То есть, если новый узел t, который должен быть введен, равняется существующему простому узлу uk, то qk, последняя новая контр. точка, равняется pk-1. Следующая диаграмма показывает схему вычислений:
На рисунке в начале этого примера новые контр. точки и новая контр. ломаная показаны оранжевым цветом. Пожалуйста, заметьте, новые контр. точки - это p0, p1, p2, p3, p4, q5, q6, q7, q8 = p7, p8, p9, p10 и p11. Кривая и ее базисные функции после введения нового узла t = 0.5 показана ниже.
Соотношения между значениями aj, uj и t показаны ниже: