Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложение заполняет область путем вызова функции FillRgn и предоставления дескриптора, идентифицирующего конкретную кисть. Когда приложение вызывает FillRgn, система заполняет регион кистью с помощью текущего режима заливки для указанного контекста устройства. Существует два режима заливки: альтернативный и замкнутый. Приложение может задать режим заполнения для контекста устройства, вызвав функцию SetPolyFillMode. Приложение может получить текущий режим заполнения для контекста устройства, вызвав функцию GetPolyFillMode.
На следующем рисунке показаны два идентичных региона: один заполнен с использованием альтернативного режима, а другой - с помощью режима намотки.
Альтернативный режим
Чтобы определить, какие пиксели система выделяет при указании альтернативного режима, выполните следующий тест:
- Выберите пиксель во внутренней части области.
- Нарисуйте воображаемый луч в положительном направлении по оси x от этого пикселя до бесконечности.
- Каждый раз, когда луч пересекает линию границы, увеличивает значение счетчика.
Система выделяет пиксель, если значение счетчика является нечетным.
Режим обмотки
Чтобы определить, какие пиксели система выделяет при указании режима обмотки, выполните следующий тест:
- Определите направление, в котором рисуется каждая линия границы.
- Выберите пиксель во внутренней части региона.
- Рисуйте мнимый луч, в положительном x-направлении, от пикселя к бесконечности.
- Каждый раз, когда луч пересекает линию границы с положительным y-компонентом, увеличивает значение счетчика. Каждый раз, когда луч пересекает линию границы с отрицательным компонентом y, уменьшайте значение счетчика.
Система выделяет пиксель, если значение счетчика ненулевое.