Bitpattern

Java besitzt ja bekanntlich auch Operatoren zur Bitmanipulation. Und auch wenn sie in der Processing-Referenz nicht erwähnt werden, BitAND (&), BitOR (|), BitXOR (^) und die Bit-Negation (~) funktionieren natürlich auch dort. Bei den Bit-Operatoren werden im Gegensatz zu den logischen Operatoren die Wahrheitswerte bitweise berechnet. So ist z.B. 6 | 1 = 7, da 110 | 001 = 111.

image

Damit lassen sich interessante Pattern erzeugen, wenn man zum Beispiel eine Fläche mit den Veroderungen ihrer Koordinaten (in Bits) füllt und dieses in Graustufen (modulo 255) zeichnet. Die entstehende Figur ist auch als Sierpinski-Dreieck bekannt und ist eine der Schlüsselfiguren in der Mathematik vom Chaos.

Code

Zur Darstellung in Processing benötigt man nur wenige Zeilen Code:

size(768, 768);
for (int i = 0; i < width; i++) {
  for (int j = 0; j < height; j++) {
    int c = (i | j) % 255;
    set(i, j, color(c));
  }
}

image

Wenn man mit den Bit-Operatoren ein wenig herumspielt (man darf sie auch mit arithmetischen Operatoren kombinieren), kann man weitere interessante Strukturen erzeugen. Obiges Bild entstand z.B. mit ci,j = (i | j) | (i*j) % 255

Literatur

  • Clifford A. Pickover: Mazes For The Mind: Computers and the Unexpected, New York (St. Martin’s Press) 1992, Seite 79 - 82



Sie sind hier: StartProgrammierungCreative CodingProcessing → bitpattern.txt


Suche

Werkzeuge