Bevor wir uns dem XOR-Mode zuwenden, wollen wir erst mal klären wie der Paint-Mode arbeitet:
Jedes neue Pixel, das gezeichnet wird, ersetzt das vorhandene Pixel in der eingestellten Zeichenfarbe.
Beim XOR-Mode ist das ganze etwas komplizierter. Dazu muss man zunächst einmal wissen, was XOR ist. Damit diejenigen nicht gelangweilt werden, die im Differenzierungskurs 10 ausführlich die logischen Verknüpfungen kennen gelernt haben, werden diese im Exkurs 2 erklärt.
Darüber braucht man nun Informationen darüber, wie die Farben in Java definiert sind. Das RGB-Farbmodell von Java ist ein 24-Bit-Farbmodell, dass heißt jeder Farbcode wird durch 24 Bit dargestellt. Dabei werden jeweils drei Blöcke zu je 8 Bit festgelegt, die die Farben Rot, Grün und Blau definieren.
111111110000000000000000 = rot 000000001111111100000000 = grün 000000000000000011111111 = blau 111111111111111111111111 = weiß
Stellen wir nun mit dem Befehlt
g.setXORMode(altFarbe);
den XOR-Mode ein, dann wir eine XOR-Verknüpfung zwischen folgenden drei Farben hergestellt:
Nehmen wir an, dass mit der Zeichenfarbe rot auf einem roten Pixel gezeichnet wird, wenn die altFarbe die Einstellung grün hat:
111111110000000000000000 = rot 111111110000000000000000 = rot 000000000000000000000000 = Zwischenergebnis 000000001111111100000000 = altFarbe = grün 000000001111111100000000 = Ergebnis = grün
Zeichnet man also rot auf rot mit einer XOR-Farbe grün, kommt genau diese Farbe raus.
Zeichne wir rot auf weiß kommt blau raus:
111111110000000000000000 = rot 111111111111111111111111 = weiß 000000001111111111111111 = Zwischenergebnis 000000001111111100000000 = altFarbe = grün 000000000000000011111111 = Ergebnis = blau
Will man nun eine Figur löschen, dann wird der XOR-Mode folgendermaßen eingesetzt:
111111110000000000000000 = rot 111111110000000000000000 = rot 000000000000000000000000 = Zwischenergebnis 000000001111111100000000 = altFarbe = grün 000000001111111100000000 = Ergebnis = grün Nun wird noch einmal drübergemalt 000000001111111100000000 = grün 111111110000000000000000 = rot 111111111111111100000000 = Zwischenergebnis 000000001111111100000000 = altFarbe = grün 111111110000000000000000 = Ergebnis = rot, die Originalfarbe des Pixels
Was ist das Ergebnis, wenn ein gelber Pixel (Mischung aus rot und grün) im blauen XOR-Modus mit Magenta (Mischung aus rot und blau) übermalt wird.
© Ralph-Erich Hildebrandt, 04. Februar 2007