Based on: Hex Variation by William Kolmyjec, 1978
Category: experimental
Description:
This sketch is running in the browser.
/* Part of the ReCode Project (http://recodeproject.com) Based on "Hex Variation" by William Kolmyjec Originally published in "Computer Graphics and Art" vol3 no4, 1978 Copyright (c) 2012 Steve Berrick - OSI/MIT license (http://recodeproject/license). */ int _width = 600; int _height = 900; int _size = 20; // hexagon radius int mod = 2; void setup() { size(_width, _height); noLoop(); background(255); noFill(); stroke(0); strokeWeight(2); } void draw() { // clear background background(255); // line length (hypotenuse) float h = sin(THIRD_PI) * _size; int r = 0; for (int i = 0; i <= _width / (_size * 3); i++) { for (int j = 0; j <= (_height / h) + 1; j++) { // reference points (centre of each hexagon) float x = i * _size * 3 + (_size / 2); float y = j * h; // offset each odd row if (j % 2 > 0) { x += _size * 1.5; } r++; pushMatrix(); translate(x, y); // random hexagon rotation (0, 120, 240 degrees) rotate(r % mod * THIRD_PI); // draw line line(0, -h, 0, h); // draw arcs arc(-_size, 0, _size, _size, -THIRD_PI, THIRD_PI); arc( _size, 0, _size, _size, THIRD_PI * 2, THIRD_PI * 4); popMatrix(); } } }void mousePressed() { redraw(); } void mouseMoved() { mod = (mouseX % width / (_size * 3)) + 1; redraw(); }