Заливка по ребрам
Заливка по ребрам.
Смысл данного способа заключается в следующем.
Для обрабатываемых точек габаритного пространства, в котором находится заливаемая область, вводится признак цветности, который может принимать одно из двух противоположных значений:
- цвет закраски точек области;
- цвет фона.
В исходном состоянии признак цветности всех точек соответствует значению «фон». При каждом обращении к точке ее признак цветности меняется на противоположный.
В процессе заливки поочередно для каждого ребра закрашиваемой области меняется значение признака цветности на противоположное для всех точек области, расположенной между этим ребром и осью Y. Ребра могут браться в любой последовательности. После обработки последнего ребра нужным цветом будет закрашена все точки заданной области.
На Рис. 4.2‑1 приведен пример закраски многоугольника рассматриваемым способом.
Разновидностью данного способа является заливка с перегородкой.
Рекомендуемые материалы
При реализации способа заливки с перегородкой внутри габаритного прямоугольника задается перегородка в виде вертикальной линии.
Действия при этом способе аналогичны действиям при способе заливки по ребрам с той лишь разницей, что для каждого ребра изменяется значение признака цветности для точек области, расположенной между текущим ребром и перегородкой.
Рис. 4.2‑1
Способ поясняется ниже приведенным рисунком (Рис. 4.2‑2).
Достоинством способов заливки по ребрам является простота выполняемых действий над точками. Однако данные способы требует обработку большого количества точек, а некоторые точки обрабатываются многократно.
Заливка с перегородкой предполагает уменьшение количества обрабатываемых точек по сравнению с заливкой по ребрам.
Рис. 4.2‑2
Cписок активных ребер.
Рассмотрим понятия списка активных ребер на конкретном примере.
На Рис. 4.2‑3 приведен многоугольник в пространстве, которое включает десять растровых линий. В Табл. 4.2‑1 приведен изменяющийся в соответствии с номером текущей растровой строки список активных ребер заданного многоугольника. В полном списке ребер заданного многоугольника ребра упорядочены по координате «Y» их верхнего конца. Если несколько ребер начинаются на одной и той же координате «Y», то они располагаются в соответствии c координаты «Y» их нижнего конца. Начало каждого списка для каждой растровой линии отмечается на общем множестве ребер буквой «н», а конец – буквой «к».
Перечень активных ребер можно представить в виде односвязного списка с групповой сортировкой. В этом случае используется несколько групп по количеству растровых строк. В каждую группу включаются ребра, верхняя точка которых начинается в соответствующей растровой строке. В группе ребра сортируются по координате X. Каждому ребру в группе соответствует одна запись, которая может включать:
- Dy – высота ребра;
- xп - координата X пересечения ребра с соответствующей растровой линией;
- Dx – величина изменения X для данного ребра при переходе к очередной растровой линии;
- Aс – адрес следующей записи в группе линией.
Рис. 4.2‑3
Список активных ребер для очередной растровой линии представляет собой остаток списка активных ребер, использовавшийся для предыдущей растровой линии, увеличенный на группу ребер, соответствующую очередной растровой линии. При переходе к очередной растровой линии в записях активных ребер изменяется Dy на «-1», а поле xп изменяется на значение, равное содержимому поля Dx. Кроме того, при переходе к очередной растровой линии из списка активных ребер удаляются ребра,
Табл. 4.2‑1
Номер растровой строки | ||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
ad | н | н | н | |||||||
bc | н | н | н | |||||||
ea | к | н | н | н | н | |||||
cd | к | к | к | к | н | Информация в лекции "10. Эргономический расчёт параметров РМ" поможет Вам. н | ||||
de | к | к | к | |||||||
в записи которых поле «y» после очередной модификации обнулилось.