- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Глобальная Аппроксимация Кривых
В интерполяции, интерполированная кривая проходит через все данные исходные точки в данном порядке. Как обсуждалось в Глобальной Интерполяции, интерполированная кривая может вилять между исходными точками, а не следовать форме исходной ломаной. Метод аппроксимации вводится для того, чтобы избежать этой проблемы при помощи ослабления строгого требования того, что кривая должна содержать все исходные точки. Кроме первой и последней точек, кривая не обязана содержать никаких других. Чтобы измерить, насколько хорошо кривая "аппроксимируется" к исходной ломаной, вводится понятие расстояния погрешности. Расстояние погрешности - это расстояние между исходной точкой и "соответствующей" ей точке на кривой. Таким образом, если минимизировать расстояния погрешности, то кривая будет проходить близко к исходной ломаной. Интерполированная кривая - это как раз такое решение, потому что для нее расстояние погрешности каждой исходной точки равно нулю. Тем не менее, здесь пойдет обсуждение не об интерполяции кривых. Кривая, полученная таким способом, называется аппроксимированной.
Пусть дано n+1 исходных точек d0, d2, ..., dn, и нам нужно найти кривую B-spline, которая бы следовала форме этой ломаной, но не обязательно проходила через них. Чтобы это сделать, нам нужно еще две вещи: количество контр. точек (т.e. h+1) и степень (p), причем условие n > h >= p >= 1 должно выполняться. Таким образом, аппроксимация является более гибкой, чем интерполяция, потому что мы выбираем не только степень, но и количество контр. точек. Вот к чему, в итоге, сводится наша задача:
Глобальная Аппроксимация Кривой Дан набор из n+1 исходных точек, d0, d2, ..., dn, степень p, и число h, причем n > h >= p >= 1, нужно найти кривую B-spline степени p, определяемую h+1 конт. точками, которая бы удовлетворяла следующим условиям:
|
При наличии h и p, мы можем определить набор параметров и узловой вектор. Пусть параметры будут t0, t1, ..., tn. Заметьте, что количество параметров равно количеству исходных точек. Теперь, пусть аппроксимирующая кривая B-spline степени p будет
,
где p0, p1, ..., ph - это h+1 неизвестных контр. точек. Так как нам нужно, чтобы кривая проходила через первую и последнюю исходные точки, то d0 = p(0) = p0, а dn = p(1) = ph. Таким образом, имеем всего h - 1 неизвестных контр. точек p1, p2, ..., ph-1. Принимая это во внимание, уравнение кривой становится следующим:
Значение Наименьшей Площади
Как нам измерить расстояние погрешности? Из-за того, что параметр tk соответствует исходной точке dk, то расстояние между dk и точке, соответствующей tk на кривой, равно |dk - p(tk)|. Так как расстояние находится при помощи квадратных корней, с которыми не просто работать, то мы будем использовать квадрат расстояния |dk - p(tk)|2. Таким образом, сумма всех квадратов расстояний погрешности равна
Наша цель, конечно, в том чтобы найти такие контр. точки p1, ..., ph-1, чтобы функция f() была минимальной. Таким образом, аппроксимация выполняется по принципу наименьшей площади.
