На эллипсах, нарисованных в режиме замены цвета, перо полностью закрыло линии штриховки.

Теперь следует подробнее рассмотреть механизм создания результирующего цвета в режиме г*2_ХС№РЕМ. Черный цвет на пересечении границ сегмента и пятиугольника образуется из-за того, что они используют перья одинакового цвета, заданного макросом г&В(0.200.200). Это соответствует заносимому в переменную типа СОКШЕР двоичному коду 110010001100100000000000, а первый параметр макроса заносится в младший байт. Учитывая, что логическая операция ХСЖ дает нулевой результат при совпадающих операндах, легко понять, что в итоге будет получен нулевой код, который как раз и реализует черный цвет.

Также следует отметить, что при использовании растровой операции логического умножения (константа г*2_МА5КРЕМ) изображение, существовавшее до вывода примитива, не изменяется при рисовании примитива белого цвета и становится черным при выводе черных фигур. Если используется растровая операция [}2_Х0г}РЕМ или г*2_МЕг&ЕРЕМ, то черные области экрана заменяются новым цветом, как при копировании операцией г*2_С0РУРЕМ. При использовании растровой операции г}2_Х0г^РЕМ и рисовании черным цветом существующее на экране изображение не изменяется.

Позже будет показано, как указанные свойства растровых операций использовались для организации движения по экрану плоских изображений, которые часто называют спрайтами. В свое время при организации движения спрай-тов из всех возможных способов смешивания цветов самым популярным было использование операции ХСЖ. Стоит рассмотреть методику ее применения на простом примере. Для начала нужно взять два произвольных двоичных кода: код А - 10011001 код В - 01001001

Выполнив с ними операцию Я = А ХСЖ В, можно получить Я = 11010000. Если к полученному результату повторно применить операцию Я ХСЖ В, то будет получен исходный код А.

Фоновый цвет примитивов При использовании режима R2C0PYPEN для организации движения прямоугольных растровых картинок программа должна циклически выполнять действия, описанные в следующем списке:


⇐ Предыдущая| |Следующая ⇒