- •Параметрические Кривые: Обзор
- •Примеры
- •Касательный Вектор и Касательная
- •Примеры
- •Нормальный Вектор и Кривизна
- •Кривизна
- •Еще примеры
- •Почему Направляющая Тройка Важна?
- •Вопросы Непрерывности
- •Проблемы с Параметрическим Представлением
- •Параметризация По Длине Дуги
- •Геометрическая Непрерывность
- •Рациональные Кривые
- •Рациональные Формы Стандартных Кривых
- •Теоремы Объединения [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]
- •Метод Длины Хорды
- •Центростремительный Метод
- •Получение Узлового Вектора
- •Универсальный Метод
- •Параметры и Узловые Векторы для Поверхностей
- •Глобальная Интерполяция Кривых
- •Нахождение Решения
- •Алгоритм
- •Влияние Параметров и Узлов
- •Влияние Степени
- •Почему Этот метод Назывется Глобальным?
- •Глобальная Аппроксимация Кривых
- •Значение Наименьшей Площади
- •Поиск Решения
- •Алгоритм
- •Влияние Степени и Количества Контрольных Точек
- •Почему Этот Метод Глобальный?
- •Глобальная Интерполяция Поверхностей
- •Поиск Решения
- •Почему Этот Метод Глобальный?
- •Глобальная Аппроксимация Поверхностей
- •Поиск Решения
- •Усовершенствование Алгоритма
- •Простое Сравнение
Теоремы Объединения [Uniformization]
Вы видели способ преобразования многочлена в параметрической форме в многочлен p(x, y) = 0 в предыдущем примере. Рациональные формы также можно преобразовывать в многочлены. Загвоздка в устранении параметра u из всех параметрических уравнений. Это сложно, но, как говорится, можно. Фактически, с помощью теории исключения, можно преобразовать полиномиальную или рациональную параметрическую форму в многочлен с двумя переменными. Это называется приведением к явному виду [implicitization].
Вопрос: если кривая задана в форме многочлена явно, можно ли найти параметрическую форму, полиномиальную или рациональную, чтобы она описывала ту же самую кривую? К сожалению, нет. То есть, существуют кривые, не имеющие параметрического рационального представления или в виде многочлена (напр., эллиптическая кривая y2 = x3 + ax + c). Это результат теорем объединения.
По этой причине с помощью явных многочленов можно описать больше разных кривых, чем с помощью полиномиальной и рациональной параметрической форм. Почему бы не использовать явные многочлены направо и налево? Дело вот в чем. Параметрические кривые использовать легко. И хоть явные многочлены являются мощным средством, с помощью которого можно описать разные кривые, многие их важные свойства трудно рассчитывать и, вообще, явные многочлены - это тяжело. Поговорим об этом позже.
Спрашивается: зачем нам нужны новые виды параметрических кривых? Наверное, ответ в том, что те кривые, что мы рассматривали в прошлых темах, не очень-то и геометрические. Точнее говоря, по алгебраической записи не скажешь, как будет выглядеть кривая, пока не проанализируешь ее. Коэффициенты не имеют геометрического значения, так что непонятно, как изменится форма кривой, если изменить какие-то коэффициенты. И в итоге разработать вид кривой так, чтобы ее форма соответствовала запросам, очень сложно.
На практике проектировщикам и пользователям вообще фиолетово, что там за математика (и уравнения) у этой кривой. Их больше заботит, сделана ли их работа. Поэтому система, предоставляющая пользователям возможность проектирования кривых должна быть
Интуитивной: В общем, понятной для обезьян и студентов.
Гибкой: Чтобы можно было выполнять больше разных операций над объектами.
Единые Методы: То есть, принципы создания и редактирования разных объектов должны быть едиными.
Инвариантность: Кривая не должна изменять своей геометрии при таких преобразованиях, как перенос, поворот и проецирование.
Эффективность и Численная Устойчивость: Пользователю системы разработки кривых может быть пофигу, что там за геометрия; ему надо, чтобы система выдала нужную ему кривую быстро и точно. А также, большое количество вычислений не должно "исказить" форму кривой (это и есть численная устойчивость).
В этом разделе мы обсудим некоторые техники разработки кривых, соответствующие вышеизложенным критериям. Обсудим кривые Безье, рациональные кривые Безье, кривые B-spline и NURBS. Тема дает следующие возможности:
Пользователь задает набор контрольных точек для системы, чтобы для начала получить кривую, хотя бы более или менее следующей по направлению этого набора точек.
Пользователь может изменять положения некоторых контрольных точек и некоторые другие параметры, чтобы изменить вид кривой.
Если необходимо, пользователь может добавлять какую-то информацию без изменения формы кривой. Таким образом, он получает больше возможностей, так как добавление контрольных точек и другой информации увеличивает количество степеней свободы кривой.
Пользователь также может разрывать кривую на две части для более тщательного редактирования, а затем снова соединять их вместе.
Есть геометрические, интуитивные и численно стойкие алгоритмы для нахождения точек на кривой без знания ее уравнения.
Зная кривые, перейти к поверхностям будет несложно.
И кривые Безье, и B-spline - полиномиальные параметрические кривые Как уже обсуждалось, такие кривые не могут быть использованы для представления некоторых простых кривых, например, окружностей. При введении [homogeneous] координат, делающих их рациональными, кривые Безье и B-spline обобщаются до рациональных кривых Безье и неравномерных рациональных B-сплайнов (Non-Uniform Rational B-splines), сокращенно NURBS. Очевидно, что рациональные кривые Безье более сильные, чем просто кривые Безье, так как с помощью рациональных можно также представлять и окружности и эллипсы. Аналогично, NURBS сильнее B-сплайнов. Вот соотношение между этими четырьмя типами представления кривых.