Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
02-- Геометрическое моделирование.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
440.83 Кб
Скачать

Исторические предшественники

В докомпьютерные времена специалисты, которые работали с линейными изображениями (архитекторы, кораблестроители и инженеры) для создания своих проектов пользовались только бумагой, карандашами и простейшими чертежными инструментами (линейками, циркулями, угольниками и транспортирами). Однако при создании чертежей больших деталей в натуральную величину, например шпангоутов судов, возникали естественные сложности. Причем проблема состояла не только в размере, но скорее в том, чтобы провести гладкую кривую через определенное количество заранее фиксированных точек.

Пытливая мысль и изобретательность нашли оригинальный способ: в больших помещениях нужную форму кривой получали, выгибая длинные тонкие полоски дерева или металла. Такие полоски называли сплайнами (splines). Для того чтобы придать упругой полоске нужную форму, ее фиксировали в требуемых точках с помощью особых свинцовых грузил, которые за сходство формы назывались "утятами" (ducks). Результирующая кривая получалась гладкой, а форма изменялась перемещением грузил.

Чертежные сплайны

Впоследствии понятие сплайна стали применять в математике для похожей цели — описания кривых.

В 1885 году Карл Вейерштрасс сформулировал и доказал теорему, названную его именем. Примерно в таком виде она приводится в современных курсах математического анализа: в соответствии с этой теоремой для любой непрерывной на отрезке функции найдется многочлен, сколь угодно мало отличающийся от данной функции. В более простой формулировке это означает, что согласно доказанной теореме Вейерштрасса можно обрисовать любую функцию с помощью полиномов.

Слово "полином" происходит от греческого слова "poly", что означает "многочисленный", и латинского слова "nomen" — "имя", русский эквивалент этого понятия — многочлен. Полином представляет собой алгебраическую сумму конечного числа одночленов, например для одного переменного х многочлен имеет вид

Вопрос о построении аппроксимирующего многочлена привлек многих математиков. Среди них одну из решающих ролей сыграл выдающийся ученый Сергей Натанович Бернштейн, который закончил Харьковский университет, учился в Сорбонне, а в начале XX века предложил новое доказательство теоремы Вейерштрасса с помощью теории вероятностей. В этом случае необходимый полином строится в явном виде (не параметрически). Именно данный полином и стал основой сплайновых кривых, в частности NURBS-кривых и кривых Безье.

Описание кривой

Ломаная линия, соединяющая вершины – дескриптор кривой. Точки – вершины. Количество вершин – класс кривой. Количество отрезков – порядок кривой. Кривая должна быть касательная к первому и последнему отрезку дескриптора. Кривые описываются в параметрическом виде (параметры U и V), изменяющиеся от 0 до 1.

x = f1(U), y = f1(V)

Виды сплайнов (интерполяция)

Все сплайны строятся по полиному третьей степени в виде

(1)

Цель – по известным радиус-векторам получить коэффициенты a, b, c и d интерполяционного полинома (1)

Фюргюссон - Эрмит

Заданы два радиус-вектора и (координаты точек) и 2 радиус-вектора и производных.

Проецируем на оси x, y и z ПДСК.

; соответственно для , и .

Рассмотрим для оси х:

.

Граничные условия

При u = 0 ,

При u = 1 ,

Соответственно имеем

Получаем обратную матрицу

Аналогично для осей у и z

, .

Складывая, замечаем что

Получим

Таким образом, окончательно имеем

(1’)

В скобках – весовые функции.

Рассмотрим две соседние кривые. Условия , .

Для исключения перегибов в точке сопряжения кривых . Берем производные уравнения (1)

Запишем равенство

Пример: На концах крайних кривых неизвестны .

Недостатки:

  1. Вычисление дополнительных касательных векторов

  2. Глобальная корректировка

  3. Необходимо знать касательные векторы на концах