Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
объединенная КГ полная.pdf
Скачиваний:
14
Добавлен:
05.06.2015
Размер:
1.61 Mб
Скачать

16. Нелинейные преобразования ГО (операции композиции, декомпозиции и мультиплицирования).

1. Композиция - объединение более мелких объектов в один. Необходимо задать правила вычисления атрибутов аналогичных данных для создаваемого нового объекта. В процессе обобщения вычисляются данные для создающегося объекта в зависимости от заданного метода отношений атрибутов. Большинство ГИС - технологий содержит следующие методы обобщения данных при объединении объектов:

сумма - значения атрибутов, соответствующих исходным объектам , складываются, и сумма присваивается новому объекту. At{M) =T.At(A.)i I.......k (где k - число исходных объектов)

среднее - вычисляется среднее значение атрибутов исходных объектов и присваивается атрибуту нового объекту. At{M) = T.At{A,)l кi=l.......k

взвешенное среднее - разные значения для исходных объектов умножаются на различные коэффициенты (веса) р Веса можно брать из любого числового поля таблицы или вычислять по значению характеристики пространственного объекта (например,

использовать его площадь или периметр, которые могут отсутствовать в таблице.)

2. Декомпозиция (break) – обратная композиция. При декомпозиции используют следующие методы преобразования атрибутов:

пусто - удаляет значение, которое соответствовало изменяемому объекту.

значение - сохраняет значение, которое соответствовало изменяемому объекту.

пропорционально размеру - вычитает из значения (которое соответствовало изменяемому объекту) долю, пропорциональную размеру вырезанного фрагмента.

3. Мультиплицирование - преобразование отдельного изображения в большое число идентичных изображений. Методы:

Шаговые фотокамеры с последовательным экспонированием - создает последовательно одно изображение за другим,

причем их местоположением можно управлять. Преимущества такого прибора заключаются в доступности, легкости программирования, идентичности качества каждого изображения и разнообразии вариантов.

Некогерентные оптические системы (рис 1) - При

точечном освещающем источнике в выходной плоскости

 

формируется изображение периодической маски (ПМ). Если

 

освещающим источником является входное изображение, то

на

выходе наблюдается множество копий входного изображения

по одному изображению для каждой точки периодической

 

маски.

 

Когерентные неголографические системы;

Когерентные голографические системы.

Встрого когерентных вариантах системы периодическая структура осуществляет выборку дифракционной картины Фраунгофера входного изображения, так что выходное изображение представляет собой свертку входного изображения с

периодической функцией.

Этим двум методам присущи два основных недостатка. Во-первых, в выходном изображении имеет место конкуренция между яркостью и разрешением. Чтобы получить хорошее разрешение, маска должна иметь очень маленькие отверстия, а чтобы иметь хорошее пропускание, отверстия должны быть большие. Во-вторых, очень трудно получить N изображений с одинаковой яркостью. Эти проблемы голографического мультиплицирования изображений требуют своего решения.

17. Операция отсечения ГО (алгоритм Сазерленда) Преобразование отсечения

Рассмотрим команду построения линии в AutoCad: Command: line

from point 0,0

to point 2000,1500

y

600

необходимоscan-преобразованиеыполнить x

(0;0)

800

Отсечение- это отбрасывание части изображения, лежащей вне заданной области (вне заданного окна).

В приведённом примере: чтобы выполнить отсечение отрезка, ограниченного прямоугольным окном отсечения, необходимо исследовать уравнение отрезка для каждой границы области отсечения:

форма окна более сложная, то расчёты ещё более усложняются. Общее требование - окно отсечения должно быть выпуклым.

фигура:

фигура

выпуклыхфигур:

(вогнутая - ?)

>квадрат;

 

> прямоугольник;

 

> трапеция.

 

Алгоритм Сазерленда

В этом алгоритме отсутствует вычисление точек пересечения с окном. Окно отображения делит экран на 9 областей, положение в которых задаётся четырёхразрядным двоичным кодом.

Область окна отсчёта изображения кодируется четырёхразрядным двоичным кодом (в данном случае, a0 - старший разряд):

Область изображения

a0

a1

a2

a3

Область окна отсечения

0

0

0

0

Область выше окна отсечения

1

X

X

X

Область ниже окна отсечения

X

1

X

X

Область, правее окна отсечения

X

X

1

X

Область, левее окна отсечения

X

X

X

1

Например, в разряде a0 стоит 1, если область находится выше окна отсечения. Рассматривается несколько случаев:

1)отрезок целиком находится в области окна отображения;

2)отрезок частично находится в области окна отображения;

3)отрезок не находится в области окнаотображения.

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

Алгоритм:

1) Определяется, лежит ли отрезок полностью в области отсечения. Для этого выполняется операция логического "ИЛИ" кодов конца отрезка. И если результат =0, то отрезок полностью лежит в области окра отсечения и должен быть сохранён; 2) я ли отрезок полностью вне окна отсечения. Для этого выполняется операция логического "И". Если результат операции НЕ равен нулю, то этот отрезок лежит вне области окна отсечения и должен быть отброшен;

3)Если логическое "ИЛИ" для кодов конца отрезка НЕ равно 0, а логическое "И" равно =0, то отрезок прямой пересекается с окном отображения. Причём, результат логического "ИЛИ" (не равный нулю) укажет, с какой границы от окна отображения находится отрезок;

4)Далее, если отрезок пересекает окно отображения, ищем точку пересечения; и концам отрезков присваиваются новые

коды;

5)Далее алгоритм повторяется для полученных отрезков.

частичнонаходитсяв

начасти- вместе

 

областиотображения

пересечениясокном

повторяется

длякаждогоиз полученных отрезков

1.3 применяется алгоритм нахождения пересечения отрезка с границей области отсечения.

18. Растровые преобразования прямой (СКЭН преобразования).

Рассмотрим команду построения линии в AutoCad: Command: line

from point 5,10 to point 10,20

Цель scan-преобразования - представить начальную и конечную координату отрезка в совокупность пикселей в видеобуфере. Подходы к решению задачи:

1) Использование классического уравнения прямой. y = Ax + B

x1 xi x2

yi = Ax + B; A = tgα, т.е.

yi+1 = A(xi +∆) + B = Axi + B +∆A = yi +∆A

т.е. перебираем все множество точек. Чем меньше зерно (пиксель), тем дольше идет операция. Занимает много времени, а следовательно уменьшается быстродействие. Такой подход редко используется, несмотря на простоту.

2) Метод вычисления по приращению (алгоритм Брезенхема1)

По известным координатам x и y начального пикселя прямой с помощью прибавления приращений по осям x и y с учётом наклона прямой можно найти положение следующего пикселя.

С помощью этого алгоритма формируется набор пикселей, наиболее близко прилежащих к данной прямой. Допущения:

1.Наша прямая проходит через начало координат;

2.Она проходит под углом α ≤ 45° (0 ≤ tgα ≤ 1);

3.x2 > x1 ;

4.(0, 0) – координаты начального пикселя.

Тогда уравнение прямой:

y =

y2 y1

x = dy x

 

 

x

2

x

dx

 

 

1

 

То есть в общем случае мы имеем алгоритм следующего вида:

tgα

0<tgα<1

-1<tgα<0

tgα>1

tgα<-1

19.Растровые преобразования окружности и эллипса.

Существует несколько очень простых, но не эффективных способов преобразования окружностей в растровую форму.

Например, рассмотрим для простоты окружность с центром в начале координат. Ее уравнение записывается как x2 + y2 = R2. Решая

это уравнение относительно y, получим

y = ±

.

 

 

 

 

 

 

Чтобы изобразить четвертую часть окружности,

будем изменять x с единичным шагом от 0

до R и

на

каждом

шаге

вычислять y. Вторым

простым

методом растровой

развертки окружности является

использование

вычислений и y по

формулам x = R cos α, y = R sin α

 

 

придо90пошаговом.

изменении угла

α

 

от 0

 

Для упрощения

алгоритма

растровой развёртки

стандартной окружности

можно

воспользоваться её

симметрией

относительно координатных осей и прямыхy = ± x; в случае, когда центр окружности не совпадает с началом координат, эти прямые необходимо сдвинуть параллельно так, чтобы они прошли через центр окружности. Тем самым достаточно построить растровое представление для 1/8 части окружности, а все оставшиеся точки получить симметрией (см. рис. 2.5).

Рис.

2.5. Восьмисторонняя симметрия

 

 

Рассмотрим участок окружности из второго октанта x Є [0, R/

]. Далее опишем

 

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

 

 

 

 

 

 

На

каждом

шаге

алгоритм выбирает точкуPi (xi

, yi), которая является

 

 

 

 

ближайшей к истинной окружности. Идея алгоритма заключается в выборе ближайшей

 

 

 

 

точки при помощи управляющих переменных, значения которых можно вычислить в

 

 

 

 

пошаговом режиме с использованием небольшого числа сложений, вычитаний и

 

 

 

 

сдвигов.

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим небольшой участок сетки пикселов, а также возможные способы (от

A

 

 

 

до E) прохождения истинной окружности через сетку (рис. 2.6).

Предположим,

что точка Pi-1 была

выбрана как ближайшая к окружности

при x = xi-1. Теперь

найдем, какая из точек

(Si или Ti) расположена ближе к окружности при x = xi-1 + 1.

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.6. Варианты прохождения окружности через растровую

 

 

 

 

 

 

 

сетку

 

 

 

 

 

 

 

 

 

 

Заметим, что ошибка при выборе точки Pi (xi, yi) была равна

 

 

 

 

 

 

 

D(Pi) = (xi2+ yi2) – R2.

 

 

 

 

 

 

 

 

Запишем выражение для ошибок, получаемых при выборе

 

 

 

 

 

 

 

точки Si или Ti:

 

 

 

 

 

 

 

 

 

D(Si) = [(xi-1

+ 1)2 + (yi-1)2] – R2;

 

 

 

 

 

 

 

 

D(Ti) = [(xi-1

+ 1)2 + (yi-1 – 1)2] – R2.

 

 

 

 

 

 

 

 

Если | D(Si) | ≥ |

D(Ti) |, то Ti ближе к реальной окружности,

 

 

 

 

 

 

 

иначе выбирается Si.

 

 

 

 

 

 

 

 

Введем di = | D(Si) | – | D(Ti) |.

 

 

 

 

 

 

 

 

Ti

будет выбираться при di ≥ 0, в противном случае будет

 

 

 

 

 

 

 

устанавливаться Si.

преобразования,

 

 

 

 

 

 

 

Опуская

 

алгебраические

запишем di и di+1 для разных вариантов выбора точки Si или Ti.

 

 

 

 

 

 

 

 

 

 

D1

= 3 – 2 R.

 

 

 

 

Если выбирается Si

(когда di

< 0), то di+1

= di

+ 4 xi-1 + 6.

 

 

 

 

 

Если выбирается Ti

(когда di

≥ 0), то di+1

= di

+ 4 (xi-1

yi-1) + 10.

 

 

 

 

Существует модификация алгоритма Брезенхейма для эллипса.

 

 

 

 

по уравнению эллипса

b2 x2

+a2 y2 a2b2 =0

 

 

 

 

 

 

 

 

 

0, точка на прямой,

 

 

 

 

Алгоритм средней точки F(xn , yn ) =

 

 

 

 

 

 

> 0, точке М выше ( D),

 

 

 

 

 

 

 

 

< 0, точкеМ внутри (С).