Лекция 7

Растеризация (растеризация) - процесът на определяне на пикселите, които най-добре приближават едно непрекъснато изображение. Процесът на растеризация е тясно свързан с процеса на изобразяване на изображения (растерно сканиране).

Алгоритми за почистване на линии.

Основната задача на алгоритъма за обхождане на линията е да изчисли координатите на пикселите, които се намират близо до отсечките на линията на двумерна растерна мрежа. При решаването на този проблем се приема, че началната и крайната точка на сегмента имат цели числа .

един. Алгоритъм за чертане на сегмент "челно".

2. Алгоритъм на цифровия диференциален анализатор.

3. Алгоритъм на Integer Bresenham.

Реалните променливи изобщо не се използват и следователно не се изисква закръгляване.

сканираща линия

4. Обобщение на алгоритъма на Брезенхам.

Растерно разгъване на полигони.

Обектът е зададен в каркасна рамка в GSK. Полигонална мрежа се използва за представяне на най-простите форми. S = (...) + атрибути на лицето. За да покажете обект на екрана, трябва да научите как да показвате полигони. Той се основава на метода на растерно сканиране.

В реда на сканираните линии от лъча на екрана определете принадлежността на точката към полигона и покажете с посочените атрибути.

сканираща линия

Повтаряйки този процес за всяка сканираща линия, която пресича полигона, ще растеризираме целия полигон. Този процес обаче е неефективен, тъй като последователността от съседни пиксели обикновено принадлежи на многоъгълник.

Свойство за кохерентност на растерни низове: съседните пиксели имат един атрибут, промяната на атрибута се случва в пресечната точка с ръбовете. Линията за сканиране 8 (Фигура 11.25) съдържа две ивици пиксели вътре в полигона, които могат да бъдат боядисани в три стъпки:

1. Намерете пресечните точки на сканиращата линия с всички ръбове на многоъгълника.

2. Подредете точките на пресичане във възходящ ред на координатата x.

3. Оцветете всички пиксели между двойки точки на пресичане.

За фиг. 11.25 в подредения списък с n-координати на точките на пресичане ще има числа (2, 4, 9, 13). Следователно всички панели се боядисват през интервалите 2-4 и 9-13.

В първата стъпка се правят прости изчисления на пресичанията на всяка сканирана линия с всеки ръб на многоъгълника, който пресича тази линия. Хоризонталните ръбове не могат да пресичат сканиращите линии и следователно не се вземат предвид. Следващите две стъпки са сортиране и боядисване.

Трудности могат да възникнат при сортиране и боядисване на елементите. Ако броят на пресечните точки в сортирания списък е нечетен, процедурата за оцветяване не работи правилно. Това е възможно, когато сканиращата линия пресича връх, в резултат на което две точки на пресичане се въвеждат в списъка на пресичанията. Да разгледаме например ред с y = 3 (Фигура 11.25). Той се пресича с ръбовете на многоъгълника в точки 2, 2 и 10. Тогава последователността на Pels от 2 до 2 (т.е. Pels в точка i = 2, y = 3) ще бъде боядисана, колекцията на Pels от 3 до 9 ще останат неоцветени и последователността от 10 до дясната граница на буфера ще бъде боядисана. Всъщност трябва да се боядисва само група пили от 2 до 10.

сканиращата линия

Очевидно преминаването на сканиращата линия през върха трябва да се брои като едно пресичане. Това обаче не води до коректни резултати в случаите, когато линии 1, 7, 9 или 11 се пресичат с върхове. всички останали върхове се броят като едно пресичане. Локален минимум се достига във връх, когато y-координатите на предишния и следващите върхове са по-големи от тези на въпросния връх. Местният максимум се определя по подобен начин. Върховете, разположени на сканиращи линии 1 и 7, са локални минимуми, а върховете на линии 9 и 11 са локални максимуми. Всички те се броят като две пресичания със съответните сканиращи линии, а върховете, през които преминават линии 3 и 5, се броят като едно пресичане. Доста лесно е да се гарантира, че такива междинни върхове се пресичат само веднъж: един от съседните ръбове се съкращава преди изчисляването на пресечните точки (Фигура 11.26). Такова съкращаване се извършва само ако върхът лежи върху сканиращата линия, което се случва винаги, когато координатите на върховете са цели числа и рядко, ако координатите на върховете са представени с по-висока резолюция от самата растрова мрежа.