Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы_Растровая_графика_Матрицы_Побитовые операц...docx
Скачиваний:
2
Добавлен:
19.09.2019
Размер:
1.18 Mб
Скачать

5.1. Алгоритм Брезенхема для окружности.

З апишем уравнение окружности в неявном виде f(x, y) = x2 + y2 – R2. Эта кривая разбивает плоскость на 3 части (см. рис.):

f(x, y) < 0 – внутренняя -

f(x, y) = 0 – граничная область

f (x, y) > 0 – внешняя +

Окружность выпукла во всех своих точках и имеет центральную симметрию. Что это означает? Можно выполнить растеризацию только части окружности и результат распространить отражением на остальные части.

Поместим центр окружности в начало координат. А величину радиуса R считаем целым числом.

Функцию f(x, y) можно рассматривать как целевую функцию процедуры поиска пикселей, отвечающих линии окружности.

Сумма значений целевой функции в двух проверяемых точках (назовём их узловыми) есть критерий близости узловых точек к линии окружности. Точки S и T лежат по разные стороны линии f(x, y) = 0 и значения функции f(x, y) в точках S и T будут иметь разные знаки (противоположные).

Сумма f(S)+f(T) в этом алгоритме играет ту же роль, что и разность расстояний s – t до прямой в алгоритме Брезенхема её растеризации.

Найдём значения f(x, y) в узлах S и T

fsi+1 = (xi + 1)2 + (yi - 1)2 – R2

fTi+1 = (xi + 1)2 + yi 2 – R2

и найдём значения целевой функции

fSTi+1 = |fSi+1| - |fTi+1| = fSi+1 + fTi+1 = 2xi2 + 2yi2 + 4xi – 2yi – 2R2 +3.

Для начальной точки x0 = 0, y0 = R целевая функция имеет значение fSTi=1 = 3 – 2R.

Направление перемещения в алгоритме должно выбираться так, что бы на каждом шаге уменьшалось абсолютное значение целевой функции. В данном случае целевая функция имеет квадратичную форму и для неё можно предложить пошаговый инкрементный алгоритм вычисления. Пока целевая функция fST отрицательна надо продвигаться по оси X и выбирать узел T, а если fST положительна надо выбрать узел S.

Алгоритмическая форма записи:

T: if (fSTi ≤ 0), then (x = x+1, y) =>

S: if (fSTi > 0), then (x = x+1, y = y - 1).

В алгебраической форме алгоритм записывают так:

если fSTi ≤ 0, то fi+1 = fi + 4xi + 6

если fSTi > 0, то fi+1 = fi + 4(xi – yi) + 10

Структурная схема алгоритма показана на следующем рисунке.

  1. Типы пространств и системы координат их.

При создании и последующем преобразовании (редактировании) изображений в зависимости от задачи (от того, что нам надо сделать) или от этапа работы выбирают различные типы пространств. Каждое пространство при этом определяют своей системой координат.

Дадим короткое определение наиболее часто используемым пространствам в компьютерной графике.

1 Пространство объекта . В этом пространстве выполняют моделирование и описание объекта, его формы и его размеров. Этот процесс производят в локальной собственной системе координат – ЛСК. Моделирование выполняется безотносительно того, где будет размещён объект на сцене, как его будут ориентировать или масштабировать. Можно провести здесь аналогию с 3-D моделью или рабочим чертежом детали, которые позже будут перенесены в другое пространство и объеденены с другими объектами.

2 Мировое пространство с МСК используют для размещения объектов на сцене. В нём осуществляют аффинные и другие преобразования объекта, проводят описание освещения сцены, вычисляют столкновения между объектами при моделировании их движения в пространстве.

3 Видовое пространство, это пространство ассоциируют с виртуальным наблюдателем (иначе с камерой, например, с видоискателем в камере фотоаппарата при его наведении на фотографируемый объект). Видовое пространство можно представить и как определённую проекцию сцены, или ее часть на экран, например, фронтальную или аксонометрическую. Посредством видового пространства описывают ту часть сцены, которая доступна для просмотра и работы в видовом окне. Здесь также присутствует своя система координат – система координат камеры СКК или СКК.

4 Ещё одно пространство – собственно плоскость – экранное пространство. В нём отражают аксонометрические или перспективные проекции объектов на плоскость поверхности монитора или другой носитель изображения. Здесь своя система координат: СКЭ или СКэ – экранная.

5 Отметим дополнительно UVW параметрическое пространство. Оно применяется при математическом моделировании сложных кривых и поверхностей, например, NURBS – объектов, или для задания UVW – координат текстурирования поверхностей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]