7.7. Зображення
відрізків
Подібна адресація буфера кадру
дозволяє поводитися з ним як з графічним дисплеєм на запам'ятовуючій трубці.
Спочатку буфер кадру очищується або встановлюється в фонову інтенсивність або
колір. Замість того щоб записувати вектори прямо на екран дисплея, для
розкладання в растр відрізка застосовується або алгоритм Брезенхема,
або ЦДА, і відповідні пікселі записують в буфер кадру. Коли зображення або кадр
побудовані, контролер дисплея читає буфер кадру в порядку сканування рядків і
виводить результат на відеомонітор.

Рис. 7.18. Вибіркове стирання
відрізків в буфері кадру
Вибіркове стирання відрізків
можна реалізувати за допомогою повторного використання алгоритму розкладу в
растр і запису відповідних пікселів з фоновою інтенсивністю або кольором.
Проблема, яка виникає при використанні цього методу, наведена на рис. 7.18.
Якщо відрізок, який видаляється, перетинає інший відрізок, то в останньому
з'явиться розрив. На рис. 7.18, а показані два відрізка, що перетинаються. Якщо
горизонтальний відрізок у = 5 стирається за допомогою запису пікселів з фоновою
інтенсивністю або кольором в буфер кадру, то в результаті в іншого відрізка
з'явиться розрив у пікселі (5, 5). Виявити і заповнити розриви не складає
труднощів, потрібно лише визначити перетин видаляючого
відрізка з усіма іншими відрізками у зображенні. Дана операція для складного
зображення може зайняти багато часу.
Для зменшення витрат можна
використовувати оболонковий або мінімаксний текст.
Цей метод наведено на рис. 7.19. Відрізок ab можуть
перетинати лише ті відрізки, які проходять через намальовану пунктиром
прямокутну оболонку, що сформована з мінімальних і максимальних значень
координат х, у відрізка ab.

Рис. 7.19. Оболонковий або мінімаксний текст
Тести для наступного відрізка
виглядають наступним чином:
Мінімаксний або
оболонковий текст
If (Xoтpmax < Хоболmin) or
(Xoтpmax > Хоболmin) or
(Yoтрmax < Yoболmin) or
(Yoтрmax < Yoболmin)
Then
перетину
немає
Else
обчислити перетин
Finish.