- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Рациональные Кривые
Параметрическое представление с помощью полиномов просто недостаточно, потому что во многих случаях (например, окружности, эллипсы и гиперболы) невозможно представить кривую в таком виде. Один из способов решения проблемы - использование [homogeneous] координат. Например, кривая в пространстве (соотв., на плоскости) представляется четырьмя (соотв., тремя) функциями, а не тремя:
Кривая в пространстве: F(u) = ( x(u), y(u), z(u), w(u) ) Кривая на плоскости : F(u) = ( x(u), y(u), w(u) ) ,
где u - это параметр на каком-то закрытом промежутке [a,b]. Преобразовывая эти кривые к обычному виду, получаем:
Кривая в пространстве: f(u) = ( x(u) / w(u), y(u) / w(u), z(u) / w(u) ) Кривая на плоскости : f(u) = ( x(u) / w(u), y(u) / w(u) )
Очевидно, если w(u) = 1, т.е. постоянная функция, [homogeneous] вид сводится к стандартному.
Параметрическая кривая в [homogeneous] виде называется рациональной кривой. Для отличия, будем называть кривую в виде многочлена полиномиальной кривой.
Пример
Возьмем параметрическую форму второго порядка:
x = f(u) = au2 + bu + c y = g(u) = pu2 + qu + r
Пусть область u все действительные числа. Затем, пусть u пробегает значения от минус бесконечности до плюс бесконечности. Значения x и y также будут изменяться от минус до плюс бесконечности. Другими словами, кривая, описываемая в вышеуказанном виде, содержит по, крайней мере, одну точку в бесконечности. Так как все точки окружности в конечных пределах, невозможно представить окружность в таком параметрическом виде. Это показывает неудобность параметрического вида.
Того же самого можно достичь при помощи вычислений:
Примем a и p не равными нулю. Делим уравнения соответственно на a и p:
Теперь вычитаем второе из первого, чтобы исключить u2. Затем, решая относительно u, получаем:
В итоге, подставляя u обратно в первое уравнение (параметрическую форму), имеем:
Устранив знаменатели и приведя подобные, получим:
,
где
Заметьте, нам не нужны значения D, E and F для описания этой кривой второго порядка. Так как B2-4A×C=0 (см. Простые Кривые и Поверхности), эта кривая - парабола. Задача в разделе "Задачи" разъясняет некоторые недостатки в вышеизложенных вычислениях.
Рациональные Формы Стандартных Кривых
Найдем рациональную форму окружности.
На рисунке - окружность с центром в начале координат и радиусом 1. Пусть u будет параметром для этой окружнотси. Для общей пользы будем использовать ось x для значений u, то есть каждому отдельному значению u соответствует точка (u,0) на оси x. Проведем прямую от (u,0) до низа окружности, (0,-1). Так как прямая пересекает окружность в двух точках, пусть другая точка, не низ окружности, будет (x(u), y(u)). По мере того, как u перемещается по оси x, соответствующая ей точка движется по окружности. Для любого конечного u есть соответствующая точка. Бесконечному значению u соответствует низ окружности. С другой стороны, любая точка на окружности, не являющаяся самой нижней, соотвтетствует значению u на оси x.
Прямая, соединяющая нижнюю точку окружности и (u,0) - x = uy + u. Уравнение окружности - x2 + y2 = 1. Подставляя уравнение прямой в уравнение окружности и решая его относительно y, получим два корня. Один из них должен быть y = -1, так как эта прямая проходит через нижнюю точку окружности. Другой корень y = (1 - u2) / (1 + u2). Подставляя это значение y в уравнение прямой, получаем x = (2 u) / (1 + u2). Таким образом, для каждого значения u, соответствующая точка на окружности имеет координаты
x = 2 u / (1 + u2) y = (1 - u2) / (1 + u2)
В итоге, окружность имеет рациональную параметризацию. Когда u стремится к бесконечности, x достигает 0, тогда как y достигает -1.
Фактически, это вычисление дает нам еще кое-что. Эта окружность имеет тригонометрическую параметрическую форму ( cos(t), sin(t) ), где t в пределах от 0 до 2PI. Таким образом, точка на окружности может иметь два различных представления, значения которых одинаковы. То есть, ( cos(t), sin(t) ) = ( (2 u) / (1 + u2), (1 - u2) / (1 + u2) ) для некоторого u. Таким образом, тригоном. функции cos(t) и sin(t) могут быть параметризованы следующим образом:
cos(t) = 2 u / (1 + u2) sin(t) = (1 - u2) / (1 + u2)
Используя параметризацию для cos(t) и sin(t), можно легко найти рациональную параметризацию для эллипса и гиперболы. Гиперболу рассмотрим сейчас, а эллипс оставим как упражнение. Гипербола в нормальной форме имеет уравнение след. вида:
x2/a2 - y2/b2 = 1 ,
где a и b - это длины главной и второстепенной полуосей. Легко проверить, что это правильная параметризация для гиперболы:
x = a sec(t) y = b tg(t)
Так как tg(t) = sin(t) / cos(t), а sec(t) = 1 / cos(t), подставив рациональную параметризацию для sin(t) и cos(t) в эти уравнения, преобразовываем их от тригонометрической параметрической формы в рациональную:
x = a (1 + u2) / (2u) y = b (1 - u2) / (2u)