Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_zbirna.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.09 Mб
Скачать

Приклад 9.3. Порядковий алгоритм заповнення з запалом

Розглянемо роботу алгоритму для гранично-визначеної області на рис.9.3. При ініціалізації в стек поміщується затравочний піксел, позначений як Запал (5, 7) на рис.9.3a. Спочатку як запал інтервалу зі стека вибирається цей піксел. Інтервал заповнюється праворуч і ліворуч від запалу. Знайдені при цьому кінці інтервалу Хправ=9 і Хлів=1. Потім перевіряється рядок, розташований вище біжучого і виявляється, що він граничний і незаповнений. Крайнім правим пікселем у діапазоні 1<х<9 виявляється піксел (8, 8), позначений цифрою 1 на рис.7.7а. Цей піксел поміститься в стек. Потім аналогічним чином обробляється рядок нижче біжучого. У діапазоні Хлів<х<Хправ є два підінтервали на цьому рядку. Для лівого підінтервала як запал виступає піксел (3, 6), позначений цифрою 2 на рис.9.3а, він теж поміститься в стек. Запал для правого підінтервала - піксел (9, 6), він вміщується в стек. Помітимо, що піксел (9, 6) - це не самий крайній правий піксел на інтервалі, однак це самий крайній піксел у діапазоні Хлів<х<Хправ, тобто в діапазоні 1<х<9. На цьому завершується перший прохід алгоритму.

Далі зі стека вибирається верхній піксел. Тут заповнюються інтервали, розташовані в правій частині багатокутника на послідовних скануючих рядках (рис.9.3 b, c, d). Для рядка 3 запалом служить піксел (10, 3) (рис.9.3 d). У результаті заповнення інтервалу праворуч і ліворуч від запалу одержуємо нові межі діапазону: Хлів=1 і Хправ=10. Обробляючи рядок вище, одержуємо для лівого підінтервала затравочний піксел (3, 4), що вміщується в стек. Правий підінтервал до цього часу уже заповнений. Обробка рядка нижче дає запал (3, 2) для лівого і (10, 2) для правого підінтервалів. Ці піксели також помістяться в стек. Саме зараз досягається максимальна глибина стека для оброблюваного багатокутника.

Після заповнення 4-зв’язних полігональних підобластей із затравочними пікселами 5, 4 і 3 на рис.7.7е зі стека вибирається піксел, позначений цифрою2.

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

Порядок виконання роботи

  1. Запрограмувати алгоритм заповнення з запалом.

  2. Створити малюнок, у якому би були помічене затравочне заповнення.

  3. Здійснити затравку. Результат роботи алгоритму - заливка замкнутої області іншим кольором.

ЗМІСТ ЗВІТУ

Звіт повинен містити:

1) назву роботи;

2) мету роботи;

3) короткий теоретичний вступ;

4) завдання до лабораторної роботи;

5) тексти розроблених і відлагоджених програм

6) малюнки з реалізацією програми

7) висновки

Література

1. Аммерал Л. Машинная графика на персональных компьютерах. М.: "Сол Систем", 1992.

2. Аммерал Л. Программирование графики на Турбо Си. М.: "Сол Систем", 1992.

3. БолтянскийВ .Г., Ефремович В.А. Наглядная топология. М.: Наука, 1983.

4. Ватолин Д.С. Алгоритмы сжатия изображений. Методическое пособие. М.: Издательскийотдел факультета вычмслительной математики и кибернетики МГУ им. М.В.Ломоносова, 1999, -76с.

5. Вельтмандер П.В. Машинная графика. Учебное пособие в 3-х книгах. "Новосибирскийгосударственныйуниверситет ", 1997.

6. Демидов В. Как мы видим то, что видим. М.: "Знание", 1979.

7. КотовЮ. В. Как рисует машина. М.: "Наука", 1988.

8. Паленичка Р.М., Грицик В.В. Англо-російсько-українськийтлумачний словник з комп'ютерної графіки та обробки зображень. К.: Наукова думка, 1994.

9. Роджерс Д. Алгоритмические основы машиннойграфики . М.: "Мир", 1989.

10. Фокс А., Пратт М. Вычислительная геометрия применение в проектировании и на производстве. М.: "Мир", 1982.

НАВЧАЛЬНЕ ВИДАННЯ

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