- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Кривые Безье Касательны к их Первому и Последнему Сегменту.
Принимая u = 0 и u = 1, имеем p'(0) = n(p1 - p0) и p'(1) = n(pn - pn-1) В превом случае получается, что касательный вектор в точке u = 0 направлен по вектору p1 - p0, умноженному на n. Таким образом, первый сегмент в указанном направлении касателен кривой Безье. Во втором случае - касательный вектор в точке u = 1 направлен по вектору pn - pn-1, умноженному n. То есть, и последний сегмент касателен кривой. Вот рисунки, хорошо это поясняющие.
Объединение Двух Кривых Безье с соблюдением c1-Непрерывности
Раз уж кривая Безье касательна своим крайним сегментам, почему бы не объединить две в одну? - спросите вы. Я отвечу - запросто. Ну, может, и не очень запросто, но можно. Пусть первая кривая описывается m + 1 контрольными точками p0, p1, p2, ..., pm, и поэтому ее степень равна m. Пусть вторая кривая описывается n + 1 контрольными точками q0, q1, q2, ..., qn, и поэтому ее степень равна n. Если мы хотим объединить эти две кривые в одну, pm должно быть равно q0. Это гарантирует объединению непрерывность C0. И первая, и вторая кривые касательны крайним сегментам. Следовательно, чтобы получить гладкий переход, pm-1, pm = q0 и q1 должны лежать на одной прямой, на которой направления от pm-1 к pm и от q0 к q1 совпадают. Это показано ниже.
Хотя объединение двух кривых Безье таким способом выглядит гладким, оно все-таки является лишь C0-непрерывным, но не C1. Тем не менее, оно является G1-непрерывным, потому что направления касательных веткоров одинаковы и, значит, у них общая касательная. Чтобы получить непрерывность C1, нам нужно убедиться, что касательный вектор при u = 1 на первой кривой, p'(1), и касательный вектор вектор при u = 0 на второй кривой, совпадают. То есть, должно выполняться следующее:
m(pm - pm-1) = n(q1 - q0)
Это соотношение означает, что для того, чтобы получить непрерывность C1 в точке перехода, нужно, чтобы отношение длин последнего сегмента первой кривой (т.e. |pm - pm-1|) и первого сегмента второй кривой (т.e. |q1 - q0|) должно быть равно n/m. Так как степени m и n фиксированы, можно переместить pm-1 или q1 в такое положение, чтобы вышеуказанное соотношение выполнялось.
На следующем рисунке слева изображены две кривые Безье - 4-й степени (слева) и 5-й степени (справа). Так как последний сегмент первой кривой и первый сегмент второй кривой не лежат на одной прямой, кривые соединяются не гладко. На рисунке справа кривые 4-й и 7-й степени в месте соединяются сегментами, лежащими на одной прямой. Тем не менее, они не являются C1-непрерывными. Кривая слева - 4-й степени, а справа - 7-й. Но отношение их смежных сегментов близко к единице, а не к 7/4=1.75. Чтобы получить непрерывность C1, нужно увеличить длину последнего сегмента первой кривой, или, соответственно, уменьшить длину первого сегмента второй кривой. Как бы то ни было, соединение уже является G1-непрерывным.
Есть еще одно интересное применение этого свойства. Если взять совпадающие первую и последнюю контрольные точки, (т.e. p0 = pn), а p1, p0 и pn-1 лежащими на одной прямой, полученная кривая Безье будет замкнутой и G1-непрерывной в точке соединения, как показано на рисунке ниже:
Заметьте, что, хотя вышеуказанная кривая и похожа на эллипс, эллипсом она не является, потому что эта кривая - 6 степени, а кривые Безье - это полиномы, которыми нельзя описать окружности и эллипсы.