- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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 точек p0, p1, p2, ... и pn в пространстве - контрольные точки. Кривая Безье, описываемая этими точками -
,
где коэффициенты, коэффициенты Безье, равны:
Таким образом, точка, соответствующая u на кривой Безье - это "среднее взвешенное" между всеми точками, где вес каждой точки - это коэффициент Bn,i(u). Отрезки p0p1, p1p2, ..., pn-1pn, называются сегментами ["legs" - ноги 8-) ], они образуют контрольную ломаную. Некоторые авторы называют эту ломаную контрольным многоугольником. Функции Bn,i(u), 0 <= i <= n, обычно называют функциями базиса[basis] Безье.
Заметьте, что u в пределах [0,1]. Поэтому все коэффициенты неотрицательны. Далее, так как и u, и i могут равняться 0, как и 1 - u и n - i, примем неопределенность 00 равной 1. Далее показана кривая Безье, построенная по 11 контрольным точкам, для синей точки на кривой u=0.4. Как видно с рисунка, кривая более или менее следует за ломаной.
Важны следующие свойства кривых Безье:
Степень кривой Безье, посторенной по n+1 контрольным точкам, равна n: В каждом коэффициенте, показатель степени u равен i + (n - i) = n. Таким образом, степень кривой равна n.
p(u) проходит через p0 и pn: Это изображено на рисунке выше. Кривая, показана красным, проходит через первую и последнюю контрольные точки.
Неотрицательность: Все коэффициенты кривых Безье неотрицательны, как уже говорилось раньше.
Деление Единства [Partition of Unity]: Количество коэффициентов Безье равно n + 1. Более того, их сумма равна 1. Все коэффициенты Безье - коэффициенты в разложении выражения 1 = (u + (1 - u))n. Отсюда, их сумма равна 1. А так как они неотрицательны, получаем, что каждый из них находится в пределах от 0 до 1.
На рисунке слева кривая Безье, построенная по пяти контрольным точкам. Ее коэффициенты Безье - это функции от u, показаны на рисунке справа. Рисунок показывает u=0.5 и пять коэффициентов Безье. А вертикальная линия показывает деление 1 на пять интервалов, отсюда название деление единства. Заметьте, цвета в делении те же, что и у коэффициентов Безье.
Так как все коэффициенты Безье в пределах от 0 до 1, каждый из них можно представить как вес при вычислении среднего взвешенного. Точнее, можно сказать "чтобы вычислить p(u), берем вес Bn,i(u) для контрольной точки pi и суммируем их все."
Свойство Ограничивающего Многоугольника: Это значит, что кривая Безье, постороенная по данным n + 1 точкам, лежит польностью внутри ограничивающего многоугольника данных точек. Ограничивающий многоугольник для набора точек - это наименьший многоугольник, содержащий все эти точки. Отрезок, соединяющий две соседние точки в огр. многоугольнике, также содержится в нем. На рисунке ограничивающий многоугольник показан серым цветом. Заметьте, не все контрольные точки лежат на сторонах огр. многоугольника. Например, контрольные точки 3, 4, 5, 6, 8 и 9 находятся внутри него. Кривая, за исключением крайних точек, находится полностью внутри огр. многоугольника.
Это свойство важно, потому что мы гарантированно знаем, что полученная кривая будет в понятной и вычисляемой области и не выйдет за ее пределы. В какой-то мере, построенная кривая очень предсказуема.
Свойство Уменьшения Изменчивости: Если кривая лежит на плоскости, это значит, что нет такой прямой, которая пересекала бы кривую Безье больше раз, чем ее контрольную ломаную.
Взгляните на рисунок. Желтая линия пересекает кривую 3 раза, а ломаную 7 раз; фиолетовая линия пересекает кривую 5 раз, ломаную 7 раз; голубая линия пересекает и кривую, и ломаную дважды.
Если кривая пространственная, достаточно заменить "прямую" на "плоскость". Есть особые случаи; тем не менее, несложно придумать такую схему подсчета, чтобы она подходила для всех случаев.
Так что же это за свойство такое и причем тут изменчивость? Это свойство говорит о том, что сложность (т.е. повороты и изгибы) кривой не сложнее, чем у ее контрольной ломаной. Взгляните на рисунок выше - ломаная запутаннее кривой, построенной по ней.
Подобная Инвариантность: Если к кривой применять подобные преобразования (преобразование подобия - то есть перенос, поворот или масштабирование - прим. перев.), то тот же результат можно получить, применив эти преобразования к контрольным точкам. Это полезное свойство. Я думаю, программистам будет понятно 8-).