Скачать презентацию Интерактивная Компьютерная Графика Часть 4 -4 сплайны Скачать презентацию Интерактивная Компьютерная Графика Часть 4 -4 сплайны

Часть 4-4.ppt

  • Количество слайдов: 22

Интерактивная Компьютерная Графика Часть 4 -4 (сплайны) Интерактивная Компьютерная Графика Часть 4 -4 (сплайны)

Определение сплайна Нестрогое определение: Сплайн – непрерывная функция, проходящая как можно ближе к контрольным Определение сплайна Нестрогое определение: Сплайн – непрерывная функция, проходящая как можно ближе к контрольным точкам Контрольные точки Не сплайны!

Определение сплайна Другие определения: Сплайн – функция, область определения которой разбита на подобласти, на Определение сплайна Другие определения: Сплайн – функция, область определения которой разбита на подобласти, на каждой из которых сплайн совпадает с некоторым алгебраическим многочленом (полиномом) Степень сплайна – максимальная степень из использованных полиномов Гладкость сплайна – максимальный порядок непрерывной производной Дефект сплайна – разность между степенью сплайна и его гладкостью

Сплайн (пример) Пример для непрерывной ломаной линии: Сплайн: кусочно-линейная функция Производная сплайна: кусочно-постоянная функция Сплайн (пример) Пример для непрерывной ломаной линии: Сплайн: кусочно-линейная функция Производная сплайна: кусочно-постоянная функция Степень сплайна: 1 Гладкость сплайна: 0 Дефект сплайна: 1

Классификация сплайнов ü По близости к контрольным точкам (КТ): • Интерполяционные (обязаны проходить через Классификация сплайнов ü По близости к контрольным точкам (КТ): • Интерполяционные (обязаны проходить через КТ) • Сглаживающие (не обязаны проходить через КТ) ü По учету КТ при расчете коэффициентов сплайна: • Локальные (коэффициенты рассчитываются через соседние КТ) • Глобальные (коэффициенты рассчитываются через все КТ) ü По типу производной: • Рациональные (с разрывной производной) • Не рациональные (с непрерывной первой, второй, . . . производной) ü По типу используемых полиномов: • Лагранжевые, эрмитовые • Экспоненциальные, логарифмические, тригонометрические ü По мерности пространства: • Одномерные (кривые) • Двумерные (поверхности)

Эрмитовые сплайны Общий вид сплайна: Условие для интерполяционного сплайна: Эрмитовый интерполяционный сплайн: Условие для Эрмитовые сплайны Общий вид сплайна: Условие для интерполяционного сплайна: Эрмитовый интерполяционный сплайн: Условие для сглаживающего сплайна: Эрмитовый сглаживающий сплайн: Функционал минимизации для расчета коэффициентов:

Сплайн Безье (Bézier Curve) Кривая Безье – это параметрическая кривая, задаваемая выражением: – число Сплайн Безье (Bézier Curve) Кривая Безье – это параметрическая кривая, задаваемая выражением: – число контрольных точек – функция компонент векторов опорных вершин – базисные функции кривой Безье (полиномы Бернштейна): – число сочетаний из n по i

Сплайн Безье (2 КТ) Кривая представляет собою отрезок – точка на отрезке Сплайн Безье (2 КТ) Кривая представляет собою отрезок – точка на отрезке

Сплайн Безье (3 КТ) точка кривой Безье: Сплайн Безье (3 КТ) точка кривой Безье:

Сплайн Безье (4 КТ) Сплайн Безье (4 КТ)

Сплайн Безье (6 КТ) Сплайн Безье (6 КТ)

Свойства кривой Безье • соединяет начальную и конечную КТ, в частности, нельзя получить окружность Свойства кривой Безье • соединяет начальную и конечную КТ, в частности, нельзя получить окружность • изменение координат хотя бы одной из точек ведет к изменению формы всей кривой (глобальность) • всегда располагается внутри фигуры (выпуклой оболочки), образованной линиями, соединяющими контрольные точки • симметрична, то есть обмен местами между начальной и конечной КТ (изменение направления траектории) не влияет на форму кривой • степень кривой всегда на одну ступень ниже числа КТ (например, при трех контрольных точках форма кривой – парабола)

B-сплайн (Basic spline ) B-сплайн – это сплайн-функция, имеющая наименьший носитель для заданных: - B-сплайн (Basic spline ) B-сплайн – это сплайн-функция, имеющая наименьший носитель для заданных: - степени - порядка гладкости - разбиения области определения Т. е. B-сплайн – это «базисный сплайн» Теорема: любой сплайн с заданной степени, гладкости и область может быть представлен как линейная комбинация B-сплайнов той же степени и гладкости на той же области определения Если КТ равноудалены друг от друга, то B-сплайн является однородным, в противном случае - неоднородный

B-сплайн – число контрольных точек – степень сплайна Базисные функции рассчитываются по рекуррентным формулам B-сплайн – число контрольных точек – степень сплайна Базисные функции рассчитываются по рекуррентным формулам Кокса-де Бура:

B-сплайн Некоторые свойства: • если , то вырождается в Кривую Безье • масштабирование и B-сплайн Некоторые свойства: • если , то вырождается в Кривую Безье • масштабирование и параллельный перенос КТ не влияет на • содержится в выпуклой оболочке его КТ • в общем случае является локальным • степень гладкости равна • кривая проходит вблизи средней точки каждой стороны выпуклой оболочки, за исключением первой и последней

NURBS-сплайн NURBS Неоднородный рациональный B-сплайн NURBS (Non-uniform rational B-spline) Рациональный В-сплайн это проекция нерационального NURBS-сплайн NURBS Неоднородный рациональный B-сплайн NURBS (Non-uniform rational B-spline) Рациональный В-сплайн это проекция нерационального (полиномиального) В-сплайна, определенного в четырехмерном (4 D) однородном координатном пространстве, на трехмерное (3 D) физическое пространство Т. е. рациональные В-сплайны и их базисы – это обобщение нерациональных В-сплайнов и базисов. Они наследуют почти все аналитические и геометрические свойства последних

NURBS-сплайн NURBS – вершины полигона в 3 D – базисные функции, – веса контрольных NURBS-сплайн NURBS – вершины полигона в 3 D – базисные функции, – веса контрольных точек

Поверхности ? Поверхности ?

Поверхность Безье и B-сплайна Дано: – (m+1)·(n+1) контрольных точек (вершин сетки) – полиномы Бернштейна Поверхность Безье и B-сплайна Дано: – (m+1)·(n+1) контрольных точек (вершин сетки) – полиномы Бернштейна Поверхность Безье порядка (n, m): Поверхность B-сплайна порядка (p, q):

Поверхность Безье Поверхность Безье

Поверхность Безье Поверхность Безье

Поддержка NURBS в Open. GL glu. New. Nurbs. Renderer () // создание объекта типа Поддержка 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 (*) // завершение рисования кривой