Средства для растровой графики
процедура mouseMoveO становится процедурой обратного вызова для события «перемещение мыши с нажатой кнопкой». Глобальный объект - прямоугольник гг - используется в обеих подпрограммах и является в них объектом ссылки. Начальный прямоугольник (нулевых размеров) устанавливается подпрограммой nvyMouseO. Избегайте рисовать этот прямоугольник черным цветом (все нули)! (Почему?)
Отметим, что при рисовании в режиме XOR резиновый прямоугольник не имеет однородного цвета. Вместо этого каждый пиксел вдоль прямоугольника рисуется тем цветом, который получается после применения операции XOR к «истинному» цвету прямоугольника и цвету фона в этой точке. Обычно это отсутствие однородности цвета не слишком мешает. Более того, оно может оказаться полезным, поскольку ясно видны объекты, находящиеся «под» этим прямоугольником.
Практические упражнения
10.3.5. Рисование различных цветов в режиме XOR
Предположим, что буфер кадров поддерживает три бита на пиксел и что цвета изображаются в соответствии со схемой с рис. 1.3. Опишите, какой цвет будет наблюдаться после выполнения операции XOR над значением пиксела 110 и каждым из возможных значений пиксела.
10.3.6. Двукратное рисование в режиме XOR эквивалентно отсутствию рисования Покажите для произвольных значений пикселов А и В, что в режиме XOR двукратное рисование пиксела В оставляет пиксел А неизменным; иначе говоря, требуется показать, что (A XOR В) XOR В = А.
10.3.7. Симметричные операторы
Отметим, что оператор OR является симметричным: A OR В - это то же самое, что В OR А. Какие из 16 операторов А являются симметричными в том смысле, что a Ab = b Аа?
10.3.8. Обмен данными двух изображений Покажите, что две пиксельные карты An В можно поменять местами посредством выполнения следующих трех операций XOR (после завершения этого процесса карта А содержит значения пикселов, которые первоначально содержала карта В, и наоборот): О A-A XORB; О B-AXORB; О А=А X0R5.