Растеризация. Прямые. Кривые. Поверхности. Андрей Татаринов Растеризация. Прямые. Кривые. Поверхности.
Примитивы Точка – имеет две координаты и бесконечно малый размер Отрезок – неупорядоченная пара из двух точек Прямая – задается начальной точкой и вектором направления. Имеет бесконечную длину
Растеризация. Прямые. Кривые. Поверхности. Примитивы
Растеризация. Прямые. Кривые. Поверхности. Растеризация – процесс перевода каркасных моделей примитивов в закрашенные для отображения на экране Растеризация
Растеризация. Прямые. Кривые. Поверхности. Скан-конверсия Проходим по горизонтальной строке пикселей, пока не наткнемся на отрезок, являющийся ребром грани Идем по отрезку дальше и ставим закрашенные пиксели Как только мы натолкнулись на еще одно ребро, считаем, что мы вышли из области, занимаемой примитивом Переходим к следующей строке
Растеризация. Прямые. Кривые. Поверхности. Кривые и поверхности Явное представление: y = f (x) Не все кривые и поверхности могут быть представлены явно Неявное представление: f (x, y) = 0 Параметрическое представление: x = x (t) y = y (t) z = z (t)
Основные типы кривых Реконструкция NURBS-поверхности по заданному множеству точек Кубический B-Сплайн – параметрическим образом заданная кубическая кривая или поверхность, обладающая и первой и второй производными NURBS – неравномерный рациональный B-Сплайн, в котором каждой контрольной точке присвоен весовой коэффициент Кривая Безье – кривая, заданная набором контрольных точек, характеризующих направления производной в каждой точке кривой Интерполяционная кривая – кривая, заданная набором контрольных точек, через которые эта кривая должна пройти
Растеризация. Прямые. Кривые. Поверхности. Интерполяционная кривая Заданы четыре точки: P 0, P 1, P 2, P 3 Задача – построить гладкую кривую, проходящую через эти точки Решение предлагается искать в таком виде: P (t) = c 0 t 0 + c 1 t 1 + c 2 t 2 + c 3 t 3 P (0) = P 0 P (1/3) = P 1 P (2/3) = P 2 P (1) = P 3
Кривая Безье Реконструкция NURBS-поверхности по заданному множеству точек Параметрическое задание кривой: P (t) = (1 - t) 3 p 0 + 3t (1 - t) 2 p 1 + 3t 2 (1 - t) p 2 + t 3 p 3 P0P0 P1P1 P2P2 P3P3
Кубический B-сплайн Реконструкция NURBS-поверхности по заданному множеству точек Параметрическое задание кривой: P (t) = (1 - t) 3 p t t 3 p t + 3t 2 – 3t 3 p 2 + t 3 p 3 P0P0 P1P1 P2P2 P3P3
Переход от кривой к поверхности Реконструкция NURBS-поверхности по заданному множеству точек Параметрическое представление: x = x (u, v) y = y (u, v) z = z (u, v)
Преимущества NURBS Реконструкция NURBS-поверхности по заданному множеству точек NURBS - кривая Кривая Безье
Отображение кривых Безье Реконструкция NURBS-поверхности по заданному множеству точек P 0 = l 0 P1P1 P2P2 P 3 = r 3 l1l1 l2l2 r2r2 r1r1 l 3 = r 0 Геометрическое разбиение: P 0 = l 0, P 3 = r 3 l 1 = (P 0 + P 1 ) / 2 r 2 = (P 2 + P 3 ) / 2 l 2 = (l 1 +(P 1 + P 2 ) / 2) / 2 r 1 = (r 2 +(P 1 + P 2 ) / 2) / 2 l 0 = r 3 = (l 2 + r 1 ) / 2