Что делает Graphics.setXORMode(Color) простыми словами?

Вот что я читал об этом, но не могу точно понять, что он делает:

Один из способов реализации резиновой ленты — рисовать в режиме XOR. Вы устанавливаете режим XOR, вызывая метод setXORMode() для графического контекста и передавая ему цвет — обычно цвет фона. В этом режиме пиксели не записываются непосредственно на экран. Цвет, которым вы рисуете, комбинируется с цветом пикселя, отображаемого в данный момент, вместе с третьим цветом, который вы задаете, путем исключающего ИЛИ их вместе, и результирующий цвет пикселя записывается на экран. Третий цвет обычно устанавливается в качестве цвета фона, поэтому цвет записываемого пикселя является результатом следующей операции:

resultant_Color = foreground_color^background_color^current_color

Я знаю, как работает XOR, но не знаю, что означает приведенный выше абзац. Пожалуйста, объясните это для меня


person Dummy Derp    schedule 26.08.2012    source источник
comment
Вы спрашиваете о Graphics.setXORMode(Color), верно?   -  person Jeffrey    schedule 26.08.2012
comment
Да, именно об этом я и спрашиваю! :)   -  person Dummy Derp    schedule 26.08.2012
comment
@DummyDerp - ну, это помогло бы, если бы ты так сказал ...   -  person Stephen C    schedule 26.08.2012
comment
Я манекен, помнишь? :п   -  person Dummy Derp    schedule 26.08.2012


Ответы (1)


Он принимает цвет и применяет маску XOR точно так же, как обычное XOR будет использовать битовую маску, за исключением того, что это относится к цветам RGB, поэтому он создает цвет, который вы передаете, если он накладывает цвет с теми же значениями или обратным этому цвета RGB и и цвет ниже его RGB, если значения разные.

Просто напишите код и попробуйте его, и сразу станет ясно, что произойдет.

person Community    schedule 26.08.2012