Часть 4-4.ppt
- Количество слайдов: 22
Интерактивная Компьютерная Графика Часть 4 -4 (сплайны)
Определение сплайна Нестрогое определение: Сплайн – непрерывная функция, проходящая как можно ближе к контрольным точкам Контрольные точки Не сплайны!
Определение сплайна Другие определения: Сплайн – функция, область определения которой разбита на подобласти, на каждой из которых сплайн совпадает с некоторым алгебраическим многочленом (полиномом) Степень сплайна – максимальная степень из использованных полиномов Гладкость сплайна – максимальный порядок непрерывной производной Дефект сплайна – разность между степенью сплайна и его гладкостью
Сплайн (пример) Пример для непрерывной ломаной линии: Сплайн: кусочно-линейная функция Производная сплайна: кусочно-постоянная функция Степень сплайна: 1 Гладкость сплайна: 0 Дефект сплайна: 1
Классификация сплайнов ü По близости к контрольным точкам (КТ): • Интерполяционные (обязаны проходить через КТ) • Сглаживающие (не обязаны проходить через КТ) ü По учету КТ при расчете коэффициентов сплайна: • Локальные (коэффициенты рассчитываются через соседние КТ) • Глобальные (коэффициенты рассчитываются через все КТ) ü По типу производной: • Рациональные (с разрывной производной) • Не рациональные (с непрерывной первой, второй, . . . производной) ü По типу используемых полиномов: • Лагранжевые, эрмитовые • Экспоненциальные, логарифмические, тригонометрические ü По мерности пространства: • Одномерные (кривые) • Двумерные (поверхности)
Эрмитовые сплайны Общий вид сплайна: Условие для интерполяционного сплайна: Эрмитовый интерполяционный сплайн: Условие для сглаживающего сплайна: Эрмитовый сглаживающий сплайн: Функционал минимизации для расчета коэффициентов:
Сплайн Безье (Bézier Curve) Кривая Безье – это параметрическая кривая, задаваемая выражением: – число контрольных точек – функция компонент векторов опорных вершин – базисные функции кривой Безье (полиномы Бернштейна): – число сочетаний из n по i
Сплайн Безье (2 КТ) Кривая представляет собою отрезок – точка на отрезке
Сплайн Безье (3 КТ) точка кривой Безье:
Сплайн Безье (4 КТ)
Сплайн Безье (6 КТ)
Свойства кривой Безье • соединяет начальную и конечную КТ, в частности, нельзя получить окружность • изменение координат хотя бы одной из точек ведет к изменению формы всей кривой (глобальность) • всегда располагается внутри фигуры (выпуклой оболочки), образованной линиями, соединяющими контрольные точки • симметрична, то есть обмен местами между начальной и конечной КТ (изменение направления траектории) не влияет на форму кривой • степень кривой всегда на одну ступень ниже числа КТ (например, при трех контрольных точках форма кривой – парабола)
B-сплайн (Basic spline ) B-сплайн – это сплайн-функция, имеющая наименьший носитель для заданных: - степени - порядка гладкости - разбиения области определения Т. е. B-сплайн – это «базисный сплайн» Теорема: любой сплайн с заданной степени, гладкости и область может быть представлен как линейная комбинация B-сплайнов той же степени и гладкости на той же области определения Если КТ равноудалены друг от друга, то B-сплайн является однородным, в противном случае - неоднородный
B-сплайн – число контрольных точек – степень сплайна Базисные функции рассчитываются по рекуррентным формулам Кокса-де Бура:
B-сплайн Некоторые свойства: • если , то вырождается в Кривую Безье • масштабирование и параллельный перенос КТ не влияет на • содержится в выпуклой оболочке его КТ • в общем случае является локальным • степень гладкости равна • кривая проходит вблизи средней точки каждой стороны выпуклой оболочки, за исключением первой и последней
NURBS-сплайн NURBS Неоднородный рациональный B-сплайн NURBS (Non-uniform rational B-spline) Рациональный В-сплайн это проекция нерационального (полиномиального) В-сплайна, определенного в четырехмерном (4 D) однородном координатном пространстве, на трехмерное (3 D) физическое пространство Т. е. рациональные В-сплайны и их базисы – это обобщение нерациональных В-сплайнов и базисов. Они наследуют почти все аналитические и геометрические свойства последних
NURBS-сплайн NURBS – вершины полигона в 3 D – базисные функции, – веса контрольных точек
Поверхности ?
Поверхность Безье и B-сплайна Дано: – (m+1)·(n+1) контрольных точек (вершин сетки) – полиномы Бернштейна Поверхность Безье порядка (n, m): Поверхность B-сплайна порядка (p, q):
Поверхность Безье
Поверхность Безье
Поддержка NURBS в Open. GL glu. New. Nurbs. Renderer () // создание объекта типа NURBS glu. Delete. Nurbs. Renderer (*) // создание объекта типа NURBS glu. Nurbs. Property (*) // задание свойств glu. Nurbs. Callback() // проверка на ошибки и возврат стесселированных значений glu. Begin. Surface (*) // начало рисование поверхности glu. Nurbs. Surface (*) // передача контрольных точек, нормалей, …. glu. End. Surface (*) // завершение рисования поверхности glu. Begin. Curve (*) // начало рисование кривой glu. Nurbs. Curve (*) // передача контрольных точек, нормалей, …. glu. End. Curve (*) // завершение рисования кривой


