- •2. Геометрическое моделирование (4 часа)
- •Геометрическое моделирование
- •Классификация 2-d моделей
- •Классификация 3-d моделей
- •Классификация поверхностей
- •Исторические предшественники
- •Описание кривой
- •Виды сплайнов (интерполяция)
- •Фюргюссон - Эрмит
- •Безье – Бернштейн
- •Свойства кривых Безье
- •Канонический вид кривой Безье
- •Сравнение кривых b-spline и Безье.
- •Nurbs-кривая
- •3. Твердотельные модели
- •Системы cae
Исторические предшественники
В докомпьютерные времена специалисты, которые работали с линейными изображениями (архитекторы, кораблестроители и инженеры) для создания своих проектов пользовались только бумагой, карандашами и простейшими чертежными инструментами (линейками, циркулями, угольниками и транспортирами). Однако при создании чертежей больших деталей в натуральную величину, например шпангоутов судов, возникали естественные сложности. Причем проблема состояла не только в размере, но скорее в том, чтобы провести гладкую кривую через определенное количество заранее фиксированных точек.
Пытливая мысль и изобретательность нашли оригинальный способ: в больших помещениях нужную форму кривой получали, выгибая длинные тонкие полоски дерева или металла. Такие полоски называли сплайнами (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)
Запишем равенство
Пример: На концах крайних кривых
неизвестны
.
Недостатки:
Вычисление дополнительных касательных векторов
Глобальная корректировка
Необходимо знать касательные векторы на концах
