Continuing the Processing.py series, this article demonstrates how to use a slight variant of the 10 PRINT example to build a grid pattern design made up of squares of differing sizes and colors. This technique can also produce digital camo (camouflage) patterns!
For the previous entry in the Processing.py series, see this page:
The variability of the patterns can be determined by using color, square size, backgrounds, square borders (using
stroke()) , and using
random() with if statements. In the code shown below,
random(1) returns a floating point number between 0 and 1 and outputs are determined by where the random number falls between 0 and 100. More ranges can be added for more variability by filtering outputs into smaller and smaller buckets.
x = 0 y = 0 spacing = 20 rand_point1 = 0.25 rand_point2 = 0.50 rand_point3 = 0.75 def setup(): size(400, 400) background(255) #stroke(255) #stroke(0) #strokeWeight(3) def draw(): global x, y, spacing, rand_point noStroke() # Between 0 and 25 if (random(1) <= rand_point1): #fill('#5D4C2E') fill(0) rect(x, y, spacing, spacing) # Between 25 and 50 elif (random(1) > rand_point1 and random(1) <= rand_point2): #fill('#A29980') fill(64) rect(x, y, spacing, spacing) # Between 50 and 75 elif (random(1) > rand_point2 and random(1) <= rand_point3): #fill('#C1B594') fill(128) rect(x, y, spacing, spacing) else: #fill('#CECECE') fill(255) rect(x, y, spacing, spacing) x += spacing if x > width: x = 0 y += spacing saveFrame("print10_rect21.gif")
Here are some of the patterns I was able to create by playing with these variables: