Кривые и поверхности высших порядков Астана 2004 Лекция 12.

Презентация:



Advertisements
Похожие презентации
Прямые. Кривые. Поверхности Лекция 12. Алексей Игнатенко.
Advertisements

Лекция апреля 2002 г. Прямые Кривые Поверхности.
Лекция февраля 2003 г. (Астана) Прямые Кривые Поверхности.
Растеризация. Прямые. Кривые. Поверхности. Андрей Татаринов Растеризация. Прямые. Кривые. Поверхности.
В-сплайны При построении В-сплайна – цель найти непрерывную(p-1)(p-степень многочлена)раз дифференцируемую функцию, принимающую ненулевые значения только.
Параметрическое представление плоских и пространственных кривых При параметрическом задании кривая представляется векторной функцией r 1, r 2, r 3 - радиус.
Свойства базиса Бернштейна (функций полиномиальной аппроксимации) Вещественны Не зависят от опорных точек, значения аппроксимирующих функций ненулевые.
Основные сведения из математики, необходимые для понимания геометрических моделей Три главных формы математического представления кривых и поверхностей.
Математический аппарат компьютерной графики. Интерполяция. Сплайны. Лекция 6.
ПРИБЛИЖЁННОЕ ВЫЧИСЛЕНИЕ ОПРЕДЕЛЁННОГО ИНТЕГРАЛА ПО ФОРМУЛАМ ПРЯМОУГОЛЬНИКОВ И ТРАПЕЦИЙ. ОЦЕНКА ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙ. Мелков Владислав, 2Л21.
Геометрическое моделирование трехмерных объектов..
НПП «Динамические системы» г Киев, ул. Героев Севастополя 5-А Пути оптимизации скелетной анимации Тема: Докладчик: Николай Гаркавец.
ВВЕДЕНИЕ В ВЫЧИСЛИТЕЛЬНУЮ МАТЕМАТИКУ Лекция 9 3 ноября 2009 Задача интерполяции (гладкого восполнения функций)
Кривые в геометрическом моделировании ТИПЫ КРИВЫХ Кубическиq сплайн Кривая Эрмита Кривая Безье В- сплайновая кривая Кривая NURBSS.
УМФ МОДУЛЬ 5 УЭ-5 Задача Гильберта для уравнений Коши-Римана в круге.
Производная функции. Производная функции (1) Пусть функция определена в некоторой окрестности точки (включая точку ). Определение 1. Определение 2. Касательной.
Способы построения поверхностей Поверхности, составные поверхности Аналитические- квадратичные поверхности Построенные на базе точек Построенные на базе.
Лекция 4. Тема: «Дифференциал и интеграл» Специальность: «Сестринское дело» Курс: 2 Дисциплина: «Математика» Подготовила: преподаватель высшей категории.
Лобанов Алексей Иванович Основы вычислительной математики Лекция 1 8 сентября 2009 года.
Производная и дифференциал.. Вычисление производной путем логарифмирования. Функцию вида называют показательно-степенной или сложной показательной функцией.
Транксрипт:

Кривые и поверхности высших порядков Астана 2004 Лекция 12

Кривые высших порядков: постановка задачи Задача: построить параметрическую кривую повторяющую заданную ломаную (на плоскости или в пространстве) - контрольные точки Для рисования кривая обычно разбивается на M точек - базисные функции (обычно полиномы некоторой степени)

Кривые высших порядков: примеры базисов Базис первого порядка для 5 контрольных точек Кривые Безье. Степень кривой = N - 1 Любая контрольная точка P i оказывает влияние на форму всей кривой Для большого количества точек степень кривой окажется тоже высокой. - полиномы Бернштейна

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

Открытый узловой вектор Равномерный вектор: t = [ ] p+1 N + p + 1 N = 4, p = 3N = 7, p = 3t = [ ]

Периодический узловой вектор Равномерный вектор: t = [ ] p+1 N + p + 1 N = 4, p = 3N = 7, p = 3

Повторяющиеся узлы t = [ ] N = 7, p = 3

Расчет производных Коэффициенты при степенях постоянны на каждом из интервалов узлового вектора: Формулы для вычисления получаются из формул Кокса-де-Бура

Рациональные сплайны Рациональный сплайн является проекцией обычного сплайна из пространства более высокой размерности (см. однородные координаты) w > 0 является веcом вершины. Чем больше вес, тем большее влияние вершина оказывает на форму кривой. Формулы для пересчета нормалей оказываются неверными.

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

Литература Роджерс Д., Адамc Дж. Математические основы машинной графики. vprat. ifrance.com - статься про NURBS Копия этой статьи на сайте cg.cs.msu.su :)

Вспомогательная библиотека GLU Входит в состав OpenGL и основана на командах OpenGL Функции GLU можно разделить на четыре класса Вспомогательные функции (gluPerspective, gluLookAt, …) Функции для рисования базовых геометрических объектов: сферы, цилиндра, круга и сектора круга. Функции для разбиения невыпуклых многоугольников Функции для работы с кривыми и поверхностями NURBS

Рисование геометрических объектов (1/2) Перед началом рисования необходимо создать объект GLUQuadricObj, хранящий режимы рисования объектов GLU GLUquadricObj *obj = gluNewQuadric(); Для управления режимами рисования предназначены следующие функции: gluQuadricDrawStyleКаркасный или сплошной режим рисования gluQuadricOrientation Направление нормалей gluQuadricNormals Режим расчета нормалей gluQuadricTextureРассчитывать или нет текстурные координаты gluQuadricNormals(obj, GL_FLAT);

Рисование геометрических объектов (2/2) disk partial disk sphere Для рисования объектов предназначены функции gluSphere, gluCylinder, gluDisk и gluPartialDisk. gluSphere(obj, 1.0, 20, 10); Когда объект не нужен, память можно освободить gluDeleteQuadric(obj);

Рисование кривых и поверхностей NURBS (1/2) Перед началом рисования кривой или поверхности NURBS необходимо создать объект для хранения режимов построения NURBS GLUnurbsObj *obj = new gluNewNurbsRenderer(); При помощи функции gluNurbsProperty можно задать режим разбиения, режим рисования и режимы отсечения кривых и поверхностей. Предусмотрены следующие режимы разбиения кривых и поверхностей: 1. Постоянный шаг по параметрам u и v 2. Адаптивное разбиение в зависимости от длины кривой/площади поверхности на экране. 3. Адаптивное разбиение в зависимости от ошибки аппроксимации

Рисование кривых и поверхностей NURBS (2/2) Рисование кривой NURBS Между командами gluBeginCurve и gluEndCurve вызываются команды gluNurbsCurve для задания массивов контрольных точек, а также нормалей, цветов и текстурных координат вершин. Рисование поверхности NURBS Между командами gluBeginSurface и gluEndSurface вызываются команды gluNurbsSurface для задания массивов контрольных точек, а также нормалей, цветов и текстурных координат вершин.

Алгоритм Брезенхема (1/4) Отрезок, соединяющий P(x1, y1) и Q(x2, y2)

Алгоритм Брезенхема (2/4) F(x,y) = 0 -- точка на отрезке F(x,y) < 0 -- точка выше F(x,y) > 0 -- точка ниже Точка P определена, тогда координаты срединной точки и значение функции в этой точке

Алгоритм Брезенхема (3/4) Если d < 0, то выбирается Е и Если d 0, то выбирается NE В начальной точке

Алгоритм Брезенхема (4/4) Одна неприятность -- деление на 2 Чтобы избежать вещественной арифметики, сделаем преобразование d 0 = = 3 > 0 (NE) d 1 = = -1 < 0 (E) d 2 = = 9 (NE) d 3 = = 5 (NE) d 4 = = 1 (NE) d 5 = = -3 (E) d 6 = = 7 (NE)

Алгоритм Брезенхема (1/4) (окружность) Неявное и явное представление Параметрическое представление

Алгоритм Брезенхема (2/4) (окружность)

Алгоритм Брезенхема (3/4) (окружность) Для точки P c коорд. Для пиксела Е: Для пиксела SE:

Алгоритм Брезенхема (4/4) (окружность) В начальной точке5 (0, R) И опять нужно исключить вещественные операции. Сделав замену h = d-1/4, получим h = 1-R. Тогда необходимо сравнивать h с -1/4, но так как приращения d – целые числа, то сравнивать можно с нулем.