
- •Кафедра «Вычислительная техника» Компьютерная графика Методические указания к лабораторным работам и курсовому проектированию
- •1Элементы теории компьютерной графики
- •1.1.Визуализация отрезков прямых
- •1.2.Сплайны
- •1.3. Визуализация сплайнов
- •1.4. Алгоритмы закрашивания многоугольников
- •1.5. Теоретико-множественные операции над двумерными областями
- •1.6. Непрерывные геометрические преобразования
- •2Лабораторные работы
- •2.1. Общие требования к выполнению лабораторных работ
- •2.2. Лабораторная работа № 1
- •2.3. Лабораторная работа № 2
- •2.4. Лабораторная работа № 3
- •2.5. Лабораторная работа № 4
- •2.6. Лабораторная работа № 5
- •3Курсовое проектирование
- •3.1. Общие требования к выполнению курсовой работы
- •3.2. Техническое задание для курсовой работы
- •3.3.Варианты индивидуальных заданий для курсовой работы
- •3.4. График выполнения курсовой работы
- •3.5. Порядок защиты курсовой работы
- •3.6. Рекомендации по программной организации данных для представления сложных объектов
- •Библиографический список
1.3. Визуализация сплайнов
Прямое вычисление точек сплайна P(t) для его визуализации весьма трудоемко из-за сложности базисных функций. Чтобы сократить вычисления сплайн обычно аппроксимируют ломаной линией. Аппроксимация приводит к погрешности в изображении сплайна, поэтому для визуализации с хорошим качеством погрешность δ на участках аппроксимации нужно контролировать, не допуская превышения максимально допустимого значения δmax. Однако, если для аппроксимации использовать табуляцию P(t) с постоянным шагом ∆t по t, то из-за разной кривизны P(t) на отдельных участках аппроксимации будет разной и погрешность δ.
Чтобы гарантировать δ ≤ δmax на всех участках аппроксимации можно использовать табуляцию с заведомо малым шагом ∆t. Но при слишком малом ∆t, когда координаты x и y изменяются менее чем на 1, на изображении сплайна могут появиться утолщения, которые сильно портят его вид. Связано это с округлением координат всех вычисляемых и выводимых на экран точек. На рис. 1.4, демонстрирующем этот эффект, «лишние» пиксели закрашены светлым.
Рис. 1.4
Следовательно, желательно чтобы в алгоритме визуализации сплайнов выбор шага ∆t был оптимальным и зависел от заданного значения δmax. В связи с этим рассмотрим довольно простой метод оптимизации ∆t, основанной на контроле условия δ ≤ δmax.
Первоначально табуляцию P(t) выполняют с достаточно большим постоянным шагом ∆t. Затем исследуется погрешность от аппроксимации на участках с вдвое большим шагом, то есть с шагом 2∆t (рис. 1.5).
Строго говоря, погрешность δ на каждом участке аппроксимации должна определяться как наибольшая длина перпендикуляра от отрезка прямой к данному участку кривой, однако это требует весьма сложных расчетов. Поэтому для приближенного, но более простого расчета погрешности δ на очередном участке P(t)P(t + 2∆t) будем оценивать ее как кратчайшее расстояние от середины участка кривой по параметру t, т.е. от точки P(t + ∆t) до отрезка прямой, стягивающего концы этого участка:
Рис. 1.5
(1.21)
где ∆x = x(t + 2∆t) – x(t); ∆y = y(t + 2∆t) – y(t). Знак δ в формуле соответствует расположению (слева или справа) точки P(t + ∆t) относительно прямой P(t)P(t + 2∆t) при движении от P(t) к P(t + 2∆t).
Если |δ| < δmax, значит на участке P(t)P(t+2∆t) заданная точность достигнута уже при шаге 2∆t. В противном случае, чтобы повысить точность на данном участке, шаг ∆t уменьшают вдвое и проводят расчет погрешности для каждого нового участка по той же схеме.
Если на участке кривой есть точка перегиба (рис.1.6), то предложенный подход к оценке погрешности становится неприемлемым, так как точка с максимальной погрешностью скорее всего находится не в центре участка.
Признаком перегиба кривой служит смена знака расстояния δ на соседних участках аппроксимации. Например, для участков P(t)P(t+2∆t) и P(t+2∆t)P(t+4∆t) признаком перегиба будут противоположные знаки погрешности для точек P(t+∆t) и P(t+3∆t). Тогда независимо от величины δ на обоих участках шаг ∆t следует уменьшить вдвое.
Рис. 1.6
Следует отметить, что возможность появления точек перегиба на кривой зависит от степени базисных полиномов. Так, на кубическом сплайне возможна только одна точка перегиба, с повышением степени полиномов возможное число точек перегиба на кривой возрастает.
В результате исполнения описанного алгоритма формируется список точек, которые соединяют между собой отрезками прямых. При этом автоматическая оптимизация шага ∆t гарантирует построение сплайна с требуемой точностью.