Benoit Ricaud

Rosetta

function setup() { //colorset from Brendan Dawes BITTERSWEET = 253, 115, 87; BIANCA = 252, 250, 242; ONYX = 18, 10, 13; RICECAKE = 237, 237, 224; createCanvas(600, 600) rectMode(CENTER) cols = width / 3 rows = height / 3 } function rosette(x, y, n) { noFill() strokeWeight(10) //vertical beginShape() vertex(0, -cols / 2) vertex(-cols / 7.375, -cols / 2.275) vertex(-cols / 7.375, -cols / 17.5) endShape() beginShape() vertex(0, -cols / 2) vertex(cols / 7.375, -cols / 2.275) vertex(cols / 7.375, -cols / 17.5) endShape() beginShape() vertex(-cols / 7.375, cols / 17.5) vertex(-cols / 7.375, cols / 2.275) vertex(0, cols / 2) endShape() beginShape() vertex(cols / 7.375, cols / 17.5) vertex(cols / 7.375, cols / 2.275) vertex(0, cols / 2) endShape() //-45deg push() rotate(radians(-45)) //stroke(0,127,255) beginShape() vertex(cols / TWO_PI, -cols + (90)) //vertex( 0 , -cols/2 ) vertex(-cols / 7.375, -cols / 2.275) vertex(-cols / 7.375, -cols / 17.5) endShape() beginShape() //vertex( 0 , -cols/2 ) //vertex( -cols/7.375 , -cols+90 ) vertex(-cols / TWO_PI, -cols + (90)) vertex(cols / 7.375, -cols / 2.275) vertex(cols / 7.375, -cols / 17.5) endShape() beginShape() vertex(-cols / 7.375, cols / 17.5) vertex(-cols / 7.375, cols / 2.275) //vertex( 0 , cols/2 ) //vertex( cols/7.375 , cols-90 ) vertex(cols / TWO_PI, cols - (90)) endShape() beginShape() vertex(cols / 7.375, cols / 17.5) vertex(cols / 7.375, cols / 2.275) //vertex( 0 , cols/2 ) //vertex( -cols/7.375 , cols-90 ) vertex(-cols / TWO_PI, cols - (90)) endShape() pop() //45deg push() rotate(radians(45)) //stroke(0,255,127) beginShape() //vertex( cols/7.375 , -cols+90 ) vertex(cols / TWO_PI, -cols + (90)) //vertex( 0 , -cols/2 ) vertex(-cols / 7.375, -cols / 2.275) vertex(-cols / 7.375, -cols / 17.5) endShape() beginShape() // vertex( 0 , -cols/2 ) //vertex( -cols/7.375 , -cols+90 ) vertex(-cols / TWO_PI, -cols + (90)) vertex(cols / 7.375, -cols / 2.275) vertex(cols / 7.375, -cols / 17.5) endShape() beginShape() vertex(-cols / 7.375, cols / 17.5) vertex(-cols / 7.375, cols / 2.275) //vertex( 0 , cols/2 ) //vertex( cols/7.375 , cols-90 ) vertex(cols / TWO_PI, cols - (90)) endShape() beginShape() vertex(cols / 7.375, cols / 17.5) vertex(cols / 7.375, cols / 2.275) //vertex( 0 , cols/2 ) //vertex( -cols/7.375 , cols-90 ) vertex(-cols / TWO_PI, cols - (90)) endShape() pop() //horizontal push() rotate(radians(90)) beginShape() vertex(0, -cols / 2) vertex(-cols / 7.375, -cols / 2.275) vertex(-cols / 7.375, -cols / 17.5) endShape() beginShape() vertex(-cols / 7.375, cols / 17.5) vertex(-cols / 7.375, cols / 2.275) vertex(0, cols / 2) endShape() beginShape() //stroke(253, 115, 87) vertex(0, -cols / 2) vertex(cols / 7.375, -cols / 2.275) vertex(cols / 7.375, -cols / 17.5) endShape() beginShape() vertex(0, cols / 2) vertex(cols / 7.375, cols / 2.275) vertex(cols / 7.375, cols / 17.5) endShape() pop() } function draw() { translate(width / 2, height / 2) push() rotate(radians(23)) rotate(0) pop() push() rotate(radians(-23)) rotate(0) pop() for (i = 0; i < 8; i++) { push() rotate(radians(i * (45 / 2))) pop() } stroke(237, 237, 224) rosette() push() translate(-cols, 0) rosette() translate(cols * 2, 0) rosette() translate(-cols, cols) rosette() translate(0, -cols * 2) rosette() translate(-cols, 0) rosette() translate(cols * 2, 0) rosette() translate(0, cols * 2) rosette() translate(-cols * 2, 0) rosette() pop() } function undraw() { translate(width / 2, height / 2) push() rotate(radians(23)) rotate(0) pop() push() rotate(radians(-23)) rotate(0) pop() stroke(237, 237, 224) //strokeCap() strokeJoin(BEVEL) for (i = 0; i < 8; i++) { push() translate(-i * 100, -i * 100) rotate(radians(i * (45 / 2))) rosette() pop() } }

A reinterpretation of an islamic star pattern