hexagonal pattern
@author
float e = 15.0;
void setup(){
size(640, 480);
mousePressed();
}
void draw(){
}
void mousePressed(){
color c1 = color(random(255), random(255), random(255));
color c2 = color(random(255), random(255), random(255));
strokeWeight(3);
float margin = random(e, 50);
boolean isDisplayed = false;
for(float y = -margin; y < height + margin; y += 3.0 / 2.0 * e){
for(float x = -margin; x < width + margin; x += sqrt(3) * e){
pushMatrix();
if(!isDisplayed){
translate(x, y);
} else {
translate(x + sqrt(3) / 2.0 * e, y);
}
stroke(c1);
fill(c2);
beginShape();
for(float angle = 0.0; angle < 360; angle += 60){
float radian = radians(angle - 90);
vertex(e * cos(radian), e * sin(radian));
}
endShape(CLOSE);
float rnd = random(1);
if(rnd < 0.33){
beginShape();
for(float angle = 0.0; angle < 360; angle += 60){
float radian = radians(angle - 90);
vertex((e * 0.5) * cos(radian), (e * 0.5) * sin(radian));
}
endShape(CLOSE);
} else if(rnd < 0.66){
noStroke();
stroke(c1);
fill(c1);
beginShape();
for(float angle = 0.0; angle < 360; angle += 60){
float radian = radians(angle - 90);
vertex((e * 0.5) * cos(radian), (e * 0.5) * sin(radian));
}
endShape(CLOSE);
}
popMatrix();
}
isDisplayed = !isDisplayed;
}
}