Режимы рисования


У пера Pen имеется еще одно свойство, которое мы пока не рассматривали. Это свойство — Mode (режим). Возможные значения Mode приведены в справочной части книги в главе 16. По умолчанию значение Mode = pmCopy. Это означает, что линии проводятся цветом, заданным в свойстве Color. Но возможны и другие режимы, в которых учитывается не только цвет Color, но и цвет соответствующих пикселей фона. Наиболее интересным из этих режимов является режим pmNotXor — сложение с фоном по инверсному исключающему ИЛИ. Операция инверсного исключающего ИЛИ анализирует по битам два своих операнда. Результирующий бит равен «0», если соответствующие биты двух операндов не равны друг другу, а при равенстве битов операндов результирующий бит равен «1».
Вспомните, что каждый пиксель хранит цвет как набор битов. Пусть, например, фоновый пиксель имеет значение 0110011, а цвет пера установлен в 1111000. Применение операции pmNotXor к этим двум числам даст цвет со значением 0110100. Этот цвет перо задаст данному пикселю. А теперь посмотрим, что получится, если перо повторно пройдет по тому же пикселю. В этом случае опять будет выполнена операция pmNotXor по отношению к цвету пера 1111000 и текущему цвету пикселя, который стал равен 0110100. Применение pmNotXor к этим числам даст в результате 0110011, т.е. первоначальный цвет пикселя.
Это значит, что если нарисовать на фоне какую-то фигуру один раз, а затем нарисовать ту же фигуру повторно, то нарисованная фигура исчезнет и каждый пиксель вернется к своему первоначальному цвету. Эту особенность режима pmNotXor, свойственную также режиму рmХоr — сложение с фоном по исключающему ИЛИ, можно использовать для создания простенькой анимации. Достаточно нарисовать нечто, затем стереть нарисованное, перерисовать немного измененным — и рисунок будет представляться ожившим. В последующих разделах мы часто будем использовать такой режим рисования.

Загрузка...