- •1 Аксонометрические проекции. Изометрия, диметрия, триметрия
- •2 Алгоритмы разложения в растр отрезка прямой линии и окружности
- •4 Использование методов порталов и иерархических подсцен при создании виртуальной реальности. Метод порталов
- •5 Классификация цветовых моделей и форматов компьютерной графики
- •6 Колориметрия. Цветовые модели, смешение цветов и законы Гроссмана
- •7 Математическая модель и виды перспективного проецирования
- •8 Методы геометрического моделирования
- •9 Моделирование кривых и поверхностей в форме Безье
- •10 Моделирование кривых и поверхностей в форме Эрмита
- •11. Моделирование прозрачности и теней при построении реалистических изображений
- •12. Моделирование трехмерных поверхностей порциями поверхностей Кунса
- •13 Моделирование фотореалистичных изображений при помощи метода излучательности
- •14. Построение реалистических изображений методом Торренсанса-Сперроу
- •15. Построение реалистичных изображений. Формула закраски
- •16. Преобразования на плоскости и в пространстве. Система однородных координат
- •17. Развертка сплошных областей. Алгоритмы построчной развертки и заполнения с затравкой.
- •18. Сплайновая модель пространственных кривых и поверхностей
- •19. Формирование изображений трехмерного пространства методом отсечения лучей.
- •20. Формирование изображений трехмерного пространства при помощи алгоритмов, основанных на построении bsp-деревьев
- •Алгоритмы двоичного разбиения пространства
- •21. Формирование окраски методом Гуро
- •22. Формирование окраски методом Фонга
- •23. Формирование реалистических изображений методом трассировки лучей
- •24. Цветовые модели, ориентированные на аппаратуру и восприятие человеком
- •2. Аппаратно-ориентированные модели
- •2. Модели ориентированные на человека
- •25. Цветовые форматы и стандарты мко
2 Алгоритмы разложения в растр отрезка прямой линии и окружности
Растровая развертка – это процесс вывода на устройство отображения геометрических образов, представленных в виде дискретных элементов. Такое представление называется растровым образом (растром).
Алгоритмы построения отрезков
Цифровой дифференциальный анализатор
Алгоритм цифрового дифференциального анализатора (ЦДА) рассмотрим в качестве базового алгоритма для сравнения с типовыми алгоритмами растровой развертки. Он основан на решении дифференциального уравнения прямой линии:
хn,yn- координаты начальной точки отрезка прямой, xк,yк- координаты конечной точки отрезка прямой, Δ x - шаг по х-вой координате, Δ y - шаг по у-вой координате.
Недостатки: 1) в расчетах используется вещественная арифметика;
2) точность попадания в концевую точку данного отрезка не гарантируется.
Для устранения этих недостатков был предложен алгоритм Брезенхэма.
Алгоритм растровой развертки отрезка прямой Брезенхэма
Существует два вида реализации этого алгоритма: вещественный и целочисленный. Вещественный служит базой для построения целочисленного алгоритма. Работа вещественного алгоритма базируется на расчете дополнительной переменной – оценки отложения точки аппроксимации от истинного направления (обозначим эту оценку как е). Рассмотрим работу алгоритма в I квадранте:
Д
ля
удобства работы величину е
изменяют таким
образом, чтобы она в крайних точках
имела значения с противоположенными
значениями:
Недостатки:
1) наличие операций деления.
2) вещественный характер вычислений.
Для того, чтобы работать в одной области определения с растровыми данными, осуществляется переход к целочисленным значениям оценки е:
Алгоритм основанный на данном вычисление оценки, позволяет эффективно реализовать растровые разложения отрезка как на аппаратном, так и на программном уровнях.
Растровая развертка окружностей
Построения окружностей и эллипсов можно осуществлять двумя способами:
1) используя уравнения тригонометрии и аналитической геометрии;
2) с использованием численных методов.
Построение окружности с использованием аналитических выражений. В простейшем случае отображение окружности в растр можно осуществить при помощи аналитической зависимости между координатами X и Y. Алгоритм будет иметь вид:
Данный алгоритм легко модернизировать для случая построения эллипса.
И в том и в другом случае алгоритм растровой развертки окружности достаточно прост для программирования, однако, его вычислительная сложность слишком велика для реализации в составе ядра базовой графической системы. Это объясняется наличием тригонометрических функций в первом случае и степенных – во втором. Поэтому использовать подобные процедуры или функции в составе базовой графической системы не целесообразно. Необходимо разработать такие алгоритмы, которые бы максимально эффективно выполняли растровую развертку окружности при минимальной вычислительной сложности:
Алгоритм разложения в растр окружностей Брезенхема
Брезенхемом был предложен алгоритм аппроксимации разложения окружности в растр, использующий целочисленную арифметику. Кроме отказа от длинных операций и сложности арифметических вычислений трудоемкость этого алгоритма можно сократить в 8 раз, если учесть симметричный характер окружности. Рассмотрим окружность, центр которой расположен в начале координат. При элементарных изменениях можно получить алгоритм, отображающий окружность в произвольном положении. Окружность имеет бесконечное множество осей симметрии, однако, для практики важно наличие восьмисторонней симметрии. Достаточно вычислить величины координат одной точки (х, у), после чего без дополнительных вычислений можно вывести на экран еще 7 точек
C учетом формул, полученных при реализ алг-ма, можно построить целочисленный алгоритм для развертки окружностей в первом октанте:
3 B-сплайновые модели кривых, поверхностей и их разновидности
Модель B-сплайна
Модель базового или фундаментального сплайна разработана в рамках прикладной геометрии.
В-сплайном k-го порядка (или k-1 степени) называется сплайн, определенный на любом числе последовательно расположенных смежных отрезков, но только на k из них отличный от 0 .
Носитель - это число отрезков, на которых сплайн отличен от нуля. С этой точки зрения В-сплайн можно определить как сплайн, имеющий минимальный носитель.
Кубический В-сплайн может быть определен на любом числе смежных отрезков, но только на четырех из них отличен от нуля.
Любой сплайн произвольного порядка m , заданный на n узлах t0, t1,…,tn может быть выражен в виде линейной комбинации В-сплайнов, определенных на том же количестве основных узлов с использованием m-1 доп узла на каждом из концевых интервалов. На расширенном таким образом множестве узлов можно построить m+n-1 последовательных В-сплайнов, каждый из которых отличен от 0 только на m последовательных отрезках. Тогда сплайновая кривая будет описываться:
,где
S(t)
- сплайн порядка
m ,
определенный на n
узлах, а Mmi(t)
– ф-я В-сплайна,
заданная на расшир-м мн-ве узлов и отлич-я
от нуля при ti-m
< t
< ti
; Ci
– весовые
коэфф-ты.
Линейный В-сплайн (1й степени или 2ого порядка), который определяется на 2х смежных отрезках, Квадратичный В-сплайн 2й степени или 3го порядка, определенный на 3 отрезках:
Кубический В-сплайн третьей степени, определенный на четырех отрезках - на рис.:
Уравнение линейного сплайна (m = 1):
Данные выражения определяют наиболее общий случай неоднородных В-сплайнов, т.е. В-сплайнов у которых размеры сегментов [ti ti+1] могут изменяться. В том случае, если размеры сегментов постоянны, сплайны - однородные. Например, для однородного линейного сплайна приведенная выше формула упрощается:
где
L -
длина сплайновой кривой (
),
j -
доп нормированная переменная:
Разновидности В-сплайновых кривых
На практике часто возникает задача, при которой необходимо скорректировать форму кривой (поверхности), не изменяя исходных данных, т.е. узловых (опорных) точек. используется такие разновидности В-сплайновых моделей, как рациональные В-сплайны и β-сплайны.
Рациональные кубические В-сплайны определяются при помощи рациональ дроби:
,где
Pi
- исходные данные
- координаты опорных точек, t
- параметр сегмента
кривой
,
αi
- положительные коэффициенты, которые
определяются
весами или
параметрами
формы, Ki
- функции,
зависящие от параметра.
Изменяя коэффициенты αi пользователь получает возможность изменить форму сплайновой кривой. При равном значении коэффициентов αi т.е. α1=α2=α3=α4 рациональный кубический сплайн вырождается в обычную В-сплайновую форму:
β-сплайн.
Данная модель
- для тех же самых целей, однако использует
несколько иные формальные соотношения.
Для решения данной задачи используются
условия для 2х смежных сегментов
и
:
,
где β1
и β2
- коэффициенты
называемые параметрами формы β-
сплайна; β1
- параметр скоса
(β1>0);
β2
- параметр
напряжения кривой (β2≥0).
При β1=1 и β2=0 β-сплайн вырождается в традиционный кубический β-сплайн.
Кроме приведенной классификации В-сплайнов существует их деление на однородные и неоднородные. Однородные предполагают равную величину сплайнового сегмента. На практике данное допущение не всегда применимо. Для получения наиболее качественных результатов аппроксимации необходимо рассмотреть более общий случай, при котором сплайн сегментов может отличаться – неоднородные рациональные В-сплайны (Non Uniform Rational B-spline - NURBS).
Для любой сплайновой кривой уравнение i-го сегмента описывается в следующем виде:
,где
Мs
- матрица В-сплайна, Gsi
- геометрическая матрица В-сплайна.
В-сплайновая модель поверхности
Построение В-сплайновой модели поверхности происходит на базе В-сплайновой модели кривых и полностью аналогично построению модели по форме Эрмита и Безье.
Формат поверхности формы В-сплайновой поверхности описывается следующими уравнениями:
,
запишем в матричной форме:
где:
- векторы параметров.
Px, Py, Pz –
матрицы, определяющие соответственно
x-, y- и
z-координаты
управляющих точек по соответствующим
координатам,
–
3хмерная матр, опред-щая полные корд-ты
вершин (геом матрица В-сплайна), Ms
– матрица
В-сплайна.
