Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Алгоритм закраски областей, заданных списком вершин





(метод построчного сканирования)

 

Интерполяция яркости при закраске областей

О линейной интерполяции яркости при закраски области можно говорить, если закрашиваемая фигура плоская т.е. лежит в одной плоскости, например (ХУ).

 

 

Рис. 2.9.5.

 

Плоскость определяется по трём точкам:

 

Рис. 2.9.6.

 

 

 

|| || - определитель матрицы;

 

 

A·x + B·y + D A В D

V = - ¾¾¾¾¾¾¾ = a·x + b·y + g, где a = - ¾, b = - ¾, g = - ¾;

C С C C

 

V = V1 + α (х - х1)+β (у - у1), где

V – яркость в произвольной точке, V1 – яркость известная.

 

 

Предварительно производится отсечение многоугольника по полю вывода. Существуют различные задачи закраски: выпуклых многоугольников и многоугольников произвольной формы. Начнем с закраски произвольного многоугольника.

Рис.2.9.7.

 

Сначала находят ymax и ymin. Далее для текущей у-координаты находят крайнее левое и крайнее правое ребро. Начинают с крайнего левого ребра: идут вправо (и закрашивают соответствующие точки) до пересечения со следующим ребром. Также необходим анализ на наличие локальных экстремумов. В этих точках режим закраски не меняется.

 

Алгоритм работает с помощью 2-х таблиц:

1. 1. таблица ребер (ТР);

2. 2. таблица активных ребер (ТАР);

В ТР заносятся все ребра, а в ТАР лишь те ребра, которые мы пересекаем.

Составление ТР:

Все ребра делятся на группы по нарастанию у-координаты, а внутри группы рёбра упорядочиваются в соответствии с нарастанием хнач. Ребро в таблицу заносится только 1 раз, горизонтальные ребра игнорируются.

 
 
A (1, 2) B (4, 8) C (8, 6) D (7, 2) E (5, 4)  

 

 

Таблица рёбер:

Группа, № Ребро ymin ymax хНАЧ хКОН ∆x VНАЧ VКОНЕЧ ∆V
  АВ         0.5      
  АЕ              
  DC       0.25      
  DE       -1      
 
    CB           -2      

 

хКОН ¾ хНАЧ VКОНЕЧ ¾ VНАЧ

Dх = ¾¾¾¾¾¾; DV = ¾¾¾¾¾¾¾;

ymax ¾ ymin ymax ¾ ymin

 

 

Алгоритм

1. 1. Сформировать ТР и подготовить ТАР

2. 2. Выбор первой координаты сканируемой строки: у = min {ymin};

3. 3. Если у = уmin, то перенос группы из ТР в ТАР.

 

Таблица активных ребер (ТАР)

Ребро уНАЧ хНАЧ ∆х VНАЧ ∆V
AB     0.5    
AE          
DC     0.25    
DE     -1    

 

4. Упорядочивание ребер в ТАР по возрастанию хНАЧ.

5. Сканирование (проводят сканирующую строку).
а) переключение режимов по хНАЧ

б) учёт прохождения через вершины – локальные экстремумы. Если точка – локальный экстремум, то режим следует сохранить. Для отслеживания данной ситуации можно включить в ТР уmax, при совпадении необходим дополнительный анализ.

в) проводить линейную интерполяцию яркости при закраске от (хНАЧ , VНАЧ)i до (хНАЧ , VНАЧ)i+1

6. Удалить из ТАР те ребра, для которых справедливо у = уmax

7. Для всех элементов в ТАР произвести: хНАЧ = хНАЧ + ∆х; VНАЧ = VНАЧ + ∆V;

8. Переход к следующей сканирующей строке: y=y+1;

9. Проверка на окончание: если y>max{уmax}, то конец, иначе осуществить переход к п.3).







Date: 2015-07-17; view: 478; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию