- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Замечание [Наблюдение] II: Вычисление Новых Контрольных Точек
Вспомним из способа введения узла в существующий узел, что, если t вводится в существующий узел uk множественности s, то контр. точки pk-s, pk-s+1, ..., pk-1 и pk не влияют, и только pk-p, pk-p+1, ..., pk-s участвуют в вычислении новых контр. точек qi. Перепишем все новые контр. точки после первого введения со вторым нижним индексом 1. Таким образом, имеем следующую диаграмму:
Если один и тот же узел вводится второй раз, то зависящие [affected] p+1 контр. точек - это pk, pk-1, pk-s, pk-s,1, pk-s-1,1, ..., pk-p+1,1, как показано в вышеукзанной диаграмме. Заметьте, что pk-p исключается, так как только p+1 контр. точек зависимы [affected]. Тем не менее, так как множественность t увеличивается на единицу из-за первого введения, то s+2 контр. точек не будут участвовать вычислении введения узла: pk, pk-1, ..., pk-s и pk-s,1. Схема вычисления и новый набор точек показаны ниже. Заметьте, что новые контр. точки, полученные после второго введения узла, имеют в качестве второго нижнего индекса число 2. Новые контр. точки - это: (1) pk-p+1,1 и pk-s,1, полученные после первого введения узла, и (2) pk-p+2,2 - pk-s,2, полученные после второго введения узла.
Для третьего введения, зависимые p+1 контр. точек - это от pk-p+2,2 до pk-s,2, pk-s,1, и от pk-s до pk. Так как третье введение вновь увеличивает множественность t на единицу, то количество контр. точек, которое не участвует в вычислении, также увеличивается на единицу. В итоге, pk-s,2 останется неизменным как до третьего введения, так и после него. Это показывает следующая диаграмма:
В общем случае, если t вводится h раз в узлы uk множественности s, где s = 0 означает, что t вводится в середине этого узлового интервала, а s > 0 значит, что t вводится в множественный узел, то можно:
записать первый набор p+1 зависимых контр. точек в качестве нулевого столбца;
пропустить последние s контр. точек (т.e. от pk-s+1 до pk);
Вычислить первый столбец, второй столбец, ... И h-ый столбец;
Новым набором контр. Точек будут те, что ограничены пунктирным многоугольником.
Итоги
Объединяя эти два наблюдения, полусим следующий алгоритм для введения узла t несколько раз.
Входные данные: узел t на [uk, uk+1) с исходной множественностью s, который нужно ввести h раз, где h+s меньше или равно p, степень данной кривой B-spline или NURBS Выходные данные: новый набор контр. точек после того, как t введен h раз Переименуем контр. точки pk, pk-1, ..., pk-p как pk,0, pk-1,0, ..., pk-p,0, т.е. добавим второй нижний индекс 0. for r := 1 to h do
for i := k-p+r to k-s do
begin
Let ai,r = (t - ui) / ( ui+p-r+1 - ui ) Пусть pi,r = (1 - ai,r) pi-1,r-1 + ai,r pi,r-1
end
Новый набор контр. точек образуется из исходных от p0 до pk-p, следуя по верхнему краю вышеизложенной диаграммы (т.e. pk-p+1,1, pk-p+2,2, ..., pk-p+h,h), потом по правому краю диаграммы (т.e. pk-p+h+1,h, pk-p+h+2,h, ...., pk-s,h), потом по низу диаграммы (т.e. pk-s,h-1, pk-s,h-2, ...., pk-s,1), потом по исходным контр. точкам pk-s, ..., pk, ..., pn.