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

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, точкеМ внутри (С).