- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Влияние Степени и Количества Контрольных Точек
Следующие рисунки показывают аппрокимирующие кривые с 10 исходными точками (n=9) для различных степеней и с разным количеством контр. точек. Для всех кривых параметры получены по центростремительному методу
|
4 точки |
5 точек |
6 точек |
6 (может, 7 ?) точек |
степень 2 |
|
|
|
|
степень 3 |
|
|
|
|
степень 4 |
|
|
|
|
степень 5 |
|
|
|
|
Понятно, что малые степени не способны выдать хорошую аппроксимацию из-за того, что кривые меньших степеней являются менее гибкими. Видно, что чем больше степень, тем кривая ближе к исходной ломаной. Аналогично, чем больше контр. точек, тем более гибкая аппроксимированная кривая.
Нужно ли использовать высокие степени и много контр. точек? Ответ - нет, потому что цель использования аппроксимации в том, чтобы использовать меньше контр. точек, чем в глобальной интерполяции. Если количество контр. точек увеличить до числа исходных точек, то с тем же успехом можно использовать глобальную интерполяцию!
Почему Этот Метод Глобальный?
Этот метод аппроксимации является глобальным, потому что изменение положения одной исходной точки меняет форму кривой целиком.
Пару Слов О Решении (NTN).P = Q
Эффективный способ решения (NTN).P = Q - это так называемое LU-разложение (LU-декомпозиция). И хотя есть другие хорошие методы, но этот пригодится в расчетах аппрокимации поверхностей.
Для простоты примем M = NTN и система линейных уравнений станет M.P = Q. Метод LU-разложения вначале "раскладывает" матрицу M на M = L.U, где L и U это соответственно нижнетреугольная и верхнетреугольная матрицы. Говоря точнее, если M - это матрица размера n×n, то и L, и U также размера n×n следующего вида:
В нижнетреугольной матрице L нули во всех ячейках выше ее диагонали, а в верхнетреугольной U - ниже. Если LU-разложение M = L.U найдено, то исходное уравнение становится (L.U).P = Q. Это уравнение можно переписать как L.(U.P) = Q. Затем, так как L и Q известны, то, решая L.x = Q, получим U.P = x. Далее, раз U и x известны, то находим P из U.P = x и получим искомый результат. В этом случае исходная задача нахождения P из M.P = Q раскладывается на два шага:
Находим x из L.x = Q
Находим P из U.P = x
Сами по себе эти два шага очень просты. Возьмем первый шаг. Разворачивая L.x = Q, имеем:
Это уранение равноценно следующему:
Сразу имеем значение x1 = q1/l11. Подставляем его во второе уравнение, находим x2 = (q2 - l11x1)/l22. И так далее, тут нефиг делать.
Возьмем второе векторное уравнение U.P = x. Его матричная форма показана ниже:
Это уравнение равноценно следующему:
Здесь все наоборот - идем с конца, тут тоже все просто.