xxxxxxxxxx
//Declare variables
var numLeaves;
var leafSz;
var coreSz;
var leafDist;
var gap = 10;
var gridSize = 140;
function setup() {
createCanvas(windowWidth, windowHeight);
//set angle mode
angleMode(DEGREES);
//Declare leaf size, core size,number of leaves and leaf distance
leafSz = 50;
coreSz = 30;
numLeaves = floor(random(6, 8));
//numLeaves = 2;
leafDist = coreSz * 1.2;
}
function draw() {
background(250);
//Set the grid
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
let xpos = gap + (i * gridSize);
let ypos = gap + (j * gridSize);
noFill();
stroke(0);
square(xpos, ypos, gridSize);
//Arrange the placement of the flowers
drawFlower(xpos + gridSize / 2, ypos + gridSize / 2);
numLeaves = numLeaves + 1;
}
}
noLoop();
}
function drawFlower(_x, _y) {
noStroke();
fill(250, 20, 222, 50);
circle(_x, _y, coreSz);
noFill();
var angle = 360 / numLeaves; // angle between each leaf
for (var i = 0; i < numLeaves; i++) {
push();
var x = leafDist * cos(angle * i);
var y = leafDist * sin(angle * i);
translate(_x + x, _y + y);
drawLeaf();
pop();
}
}
function drawLeaf() {
stroke(250, 0, 0);
for (var i = 0; i < 10; i++) {
var reduceVal = i * 10;
ellipse(0, 0, leafSz - reduceVal, leafSz - reduceVal);
}
}