- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Кривые b-spline/nurbs: Множественное Введение Узла
Во многих приложениях, которые мы обсудим позже, один узел нужно ввести несколько раз. Простой способ введения того же самого узла несколько раз - это повторно применить алгоритм введения узла. Но в этом случае исходный узловой вектор и исходный набор конт. точек нужно изменять после каждого введения, а это утомительно. К счастью, изучив поведение алгоритма введения узла, можно найти гораздо более простой способ сделать то же самое.
Замечание (Наблюдение) I: Коэффициенты для Вычисления Новых Контр. Точек
Начнем с простого случая. Пусть t вводится в середине узлового интервала [uk, uk+1) и пусть степень будет равна p. Коэффициенты ai,1, где k-p+1 <= i <= k, вычисляются следующим образом:
ai,1 = (t - ui) / (ui+p - ui)
После введеиня t, он становится узлом, а узлы uk+1, uk+2, ..., um сдвинутся на одну позицию вправо. Говоря точнее, новые узлы, v0, v1, ..., vk, vk+1, ..., vm и vm+1 - это
v0 |
v1 |
..... |
vk |
vk+1 |
vk+2 |
..... |
vm |
vm+1 |
u0 |
u1 |
..... |
uk |
t |
uk+1 |
..... |
um-1 |
um |
Пожалуйста, заметьте, что vk+1 делит новый узловой вектор на две половины. Узлы слева от vk+1 = t равны соответствующим значениям исходных узлов, а справа от t удовлетворяют отношению vh = uh-1.
Если t вводится снова, то он лежит на узловом интервале [vk+1,vk+2). Так как t равно левому краю, то это второе введние делает vk+1 двойным узлом. Коэффициенты ai,2 для этого второго введения, основываясь на новой узловой последовательности, вычисляются так:
ai,2 = ( t - vi ) / ( vi+p - vi ) ,
где i меньше или равно k+1. Переписывая вышеуказанное выражение через u, получим
ai,2 = ( t - ui ) / ( ui+p-1 - ui )
Пожалуйста, заметьте, что ui находится слева от t = vk+1, а ui+p - справа от v = vk+1.
Пусть эта новая последовательность узлов будет wi. Соотношение с началом координат будет таким:
w0 |
w1 |
..... |
wk |
wk+1 = wk+2 |
wk+3 |
..... |
wm+1 |
wm+2 |
v0 |
v1 |
..... |
vk |
vk+1 |
vk+2 |
..... |
vm |
vm+1 |
u0 |
u1 |
..... |
uk |
t |
uk+1 |
..... |
um-1 |
um |
Пусть t вводится третий раз, при этом узел wk+1 становится тройным. Несложно увидеть, что коэффициенты ai,3 для этого третьего введения вычисляются так:
ai,3 = ( t - wi) / ( wi+p - wi)
Это можно переписать так:
ai,3 = ( t - ui) / ( ui+p-2 - ui)
Обобщая эту идею, получим, что ai,h, коэффициенты для h-го введения, вычисляются так:
ai,h = ( t - ui) / ( ui+p-(h-1) - ui)
Что, если исходный узловой вектор uk - это множественный узел множественности s и t вводится в uk? Изменит ли это вышеуказанную формулу? К счастью, ничего не изменится. Посмотрим, почему. Если uk - это множественный узел множественности s, то uk = uk-1 = uk-2 = ... = uk-s+1:
w0 |
w1 |
..... |
wk-s+1 = ... = wk-2 = wk-1 = wk = wk+1 = wk+2 |
wk+3 |
..... |
wm+1 |
wm+2 |
v0 |
v1 |
..... |
vk-s+1 = ... = vk-2 = vk-1 = vk = vk+1 |
vk+2 |
..... |
vm |
vm+1 |
u0 |
u1 |
..... |
uk-s+1 = ... = uk-2 = uk-1 = uk = t |
uk+1 |
..... |
um-1 |
um |
Из-за того, что все они лежат слева от t и из-за того, что сдвиг индексов влияет только на узлы, лежащие справа от t, формула вычисления ai,h не будет изменяться. Таким образом, мы заключаем, что
Если новый узел t вводится в узловой интервал [uk, uk+1) h раз, то коэффициенты ai,h могут быть рассчитаны так: ai,h = ( t - ui ) / ( ui+p-(h-1) - ui ) |