- •Комп’ютерна графіка
- •1.3 Перетворення прямих ліній (відрізків)
- •1.4 Обертання
- •1.5 Відображення
- •1.6 Зміна масштабу
- •1.7 Двовимірний зсув і однорідні координати
- •2.2 Тривимірна зміна масштабу
- •2.3 Перетворення трьохвимірних координат в двовимірні
- •2.4 Тривимірний зсув
- •2.6 Відображення в просторі
- •2.7 Просторовий перенос
- •2.8 Тривимірне обертання навколо довільної осі
- •3.2 Косокутні проекції
- •Лабораторна робота №4 Алгоритм креслення відрізків
- •Теоретичні основи
- •Лабораторна робота № 5 Метод цифрового диференціального аналізатора
- •Теоретичні відомості
- •Алгоритм Брезенхема розкладання в растр відрізка для першого октанта
- •6.2. Загальний алгоритм Брезенхема.
- •Узагальнений цілочисельний алгоритм Брезенхема для усіх квадрантів
- •Лабораторна робота № 7 Алгоритм Брезенхема для генерації кола
- •Теоретичні основи
- •8.2 . Простий алгоритм з упорядкованим списком ребер
- •Простий алгоритм з упорядкованим списком ребер
- •8.3. Більш ефективні алгоритми з упорядкованим списком ребер
- •Більш ефективний алгоритм з упорядкованим списком ребер
- •9.1 Простий алгоритм заповнення з запалом і стеком
- •9.2 Простий алгоритм заповнення
- •Приклад 9.1. Простий алгоритм заповнення з запалом
- •Приклад 9.2. Алгоритм заповнення з запалом для багатокутника з діркою
- •9.3 Порядковий алгоритм заповнення з запалом
- •9.4 Алгоритм порядкового заповнення з запалом
- •9.5 Порядковий алгоритм заповнення з запалом
- •Приклад 9.3. Порядковий алгоритм заповнення з запалом
- •Література
- •Комп’ютерна графіка Методичні вказівки
Приклад 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) короткий теоретичний вступ;
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.
НАВЧАЛЬНЕ ВИДАННЯ
