fractalkitty looking for math? fractalkitty.com

quilts

hex-a-quilt

#random#trig#text#interactive#geometry#tiling#home

cArrayrandNhexianglevariation

let cArray = [];
let s, r, r1, g1, b1, t, randN;
let v = 0;
let cnv;

function setup() {
  c = min(windowHeight, windowWidth) * 0.9;
  cnv = createCanvas(c, c);
  randN = int(random(-10, 10));
  randN = int(random() * 100000000);
  n = int(random(80, 120));
  r1 = int(random(170, 285));
  g1 = int(random(170, 285));
  b1 = int(random(170, 285));
  for (let i = 0; i < 4; i++) {
    cArray[i] = color(r1 / (i + 1), g1 / (i + 1), b1 / (i + 1));
  }
  strokeWeight(0.02);
  stroke(cArray[1]);
  noLoop();
  t = 3;
}

function draw() {
  background(cArray[0]);

  push();

  translate(width / 2, width / 2);
  scale(0.9, 0.9);
  if (b1 % 3 === 0) {
    rotate(PI / 2);
  }
  r = width / n;
  for (let j = 0; j < n; j++) {
    for (let i = 0; i < n; i++) {
      if (j % 2 === 0) {
        x = -width / 2 + r * j * 3;
        y = -width / 2 + r * i * 3.45;
      } else {
        x = -width / 2 + r * j * 3;
        y = -width / 2 + r * i * 3.45 + r * (3.45 / 2);
      }
      variation(v, i, j);
      push();
      translate(x, y);
      hexi(r * 2, c1, c2, s);
      pop();
    }
  }
  fill(cArray[3]);
  rect(-width / 2, -width / 2, width, r);
  rect(-width / 2, -width / 2, r, width);
  rect(width / 2 - r, -width / 2, r, width);
  rect(-width / 2, width / 2 - r, width, r);
  pop();
  rect(0, 0, width, 0.05 * height);
  rect(0, height - 0.05 * height, width, 0.05 * height);
  rect(0, 0, width * 0.05, height);
  rect(width - width * 0.05, 0, width * 0.05, height);
  stroke(100);
  fill(150);
  if (v % 2 === 0) {
    text("Random Quilt v:" + randN, 10, 10);
    text("r:" + r1 + " g:" + g1 + " b:" + b1 + " n:" + n, 10, height - 5);
  } else {
    text("Quilt variation: " + floor(v / 2), 10, 10);
    text("r:" + r1 + " g:" + g1 + " b:" + b1 + " n:" + n, 10, height - 5);
  }
}

function hexi(radius, c1, c2, s) {
  let angle = TWO_PI / 6;
  fill(c1);
  beginShape();
  for (let a = s; a <= s + PI; a += angle) {
    let sx = cos(a) * radius;
    let sy = sin(a) * radius;
    vertex(sx, sy);
  }
  endShape(CLOSE);
  fill(c2);

  beginShape();
  for (let a = PI + s; a < TWO_PI + s; a += angle) {
    let sx = cos(a) * radius;
    let sy = sin(a) * radius;
    vertex(sx, sy);
  }
  endShape(CLOSE);
}

function variation(v, i, j) {
  if (v % 2 === 0) {
    s = (PI / 3) * int(randN - i * b1 + j * g1 + i * j);
    c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    c2 = cArray[3];
  }
  if (v === 1) {
    if (j % 2 === 1) {
      s = PI * 3;
      c2 = cArray[1];
      c1 = color(
        r1 - (t / 2) * i - (t / 2) * j,
        g1 - (t / 2) * i - (t / 2) * j,
        b1 - (t / 2) * i - (t / 2) * j
      );
    } else {
      s = 0;
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c2 = color(
        r1 - (t / 2) * i - (t / 2) * j,
        g1 - (t / 2) * i - (t / 2) * j,
        b1 - (t / 2) * i - (t / 2) * j
      );
    }
  }
  if (v === 3) {
    if (j % 3 === 0) {
      s = PI * 3 * r1;
      c1 = cArray[2];
      c2 = color(
        r1 - (t / 2) * i - (t / 2) * j,
        g1 - (t / 2) * i - (t / 2) * j,
        b1 - (t / 2) * i - (t / 2) * j
      );
    } else {
      s = 0;
    }
    c1 = cArray[1];
    c2 = color(
      r1 - (t / 2) * i - (t / 2) * j,
      g1 - (t / 2) * i - (t / 2) * j,
      b1 - (t / 2) * i - (t / 2) * j
    );
  }
  if (v === 5) {
    if (i % 2 === 1) {
      s = -PI * 3;
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c2 = cArray[2];
    } else {
      s = 0;
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c2 = cArray[2];
    }
  }
  if (v === 7) {
    if (i % 3 === 2 || j % 3 === 2) {
      s = -PI * 3;
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c2 = cArray[1];
    } else {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 9) {
    if (i % 3 === 2 || j % 3 === 2) {
      s = -PI * 3;
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c1 = cArray[1];
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 11) {
    if (i % 3 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = cArray[0];
    }
  }
  if (v === 13) {
    if (i % 5 === 2 || j % 5 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 15) {
    if (i % 3 === 2 || j % 5 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 17) {
    if (i % 3 === 2 || j % 5 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 19) {
    if (i % 3 === 2 && j % 5 === 3) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 5 === 2 && j % 4 === 3) {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = cArray[0];
    } else {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 21) {
    if (i % 5 === 2 && j % 5 === 3) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 2 && j % 5 === 3) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 23) {
    if (i % 3 === 1 && j % 5 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 2 && j % 5 === 2) {
      s = (PI / 3) * int(t);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 25) {
    if (i % 4 === 1 && j % 3 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 1 && j % 2 === 0) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 27) {
    if (i % 3 === 1 || j % 3 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 2 || j % 3 === 2) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 29) {
    if (i % 2 === 1 || j % 3 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 2 || j % 3 === 2) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 31) {
    if (i % 2 === 1 || j % 2 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 2 || j % 3 === 2) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 33) {
    if (i % 2 === 1 || j % 2 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 5 === 2 || j % 5 === 2) {
      s = (-PI / 3) * 2;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 35) {
    if (i % 2 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 5 === 2 || j % 5 === 2) {
      s = (-PI / 3) * 2;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 37) {
    if (i % 2 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 5 === 2) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 39) {
    if (i % 2 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 2) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 41) {
    if (i % 4 === 2 || i % 6 === 2) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 1 || j % 6 === 1) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 43) {
    if (i % 2 === 0) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 1) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 45) {
    if (i % 2 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 1) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 47) {
    if (i % 3 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 0) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 49) {
    if (i % 3 === 0 && j % 2 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 0) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 51) {
    if (i % 4 === 0 && j % 2 === 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 53) {
    if (i % 2 === 0 && j % 2 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 55) {
    if (i % 2 === 0 && j % 2 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 0) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 57) {
    if (i % 3 === 0 && j % 3 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 0) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 59) {
    if (i % 2 === 0 && j % 2 === 0) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 1 || i % 3 === 1) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = cArray[0];
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 61) {
    if (i % 2 === 1 && j % 2 === 0) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 1 || i % 3 === 1) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = cArray[0];
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 63) {
    if (i % 2 === 1 && j % 2 === 0) {
      s = PI;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 1 || i % 3 === 1) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = cArray[0];
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 65) {
    if (i % 2 === 0 && j % 2 === 0) {
      s = (-PI / 3) * i;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 1 && i % 3 === 1) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = cArray[0];
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 67) {
    if (i % 2 === 1 && j % 2 === 1) {
      s = (-PI / 3) * i;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 1 && i % 3 === 1) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 69) {
    if (i % 3 != 1 && j % 3 != 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 0 && i % 2 === 0) {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 71) {
    if (i % 3 != 1 && j % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 73) {
    if (i % 3 != 1 && j % 3 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 75) {
    if (i % 2 != 0 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 === 1) {
      s = (PI / 3) * ((i * j) % 3);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 77) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 79) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (PI / 3) * ((i * j) % 4);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 81) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 5 != 1) {
      s = (PI / 3) * ((i * j) % 4);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 83) {
    if (i % 3 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 5 != 1) {
      s = (PI / 3) * ((i * j) % 4);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 85) {
    if (i % 3 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 5);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 87) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 4);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 89) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 91) {
    if (i % 2 != 1 && j % 2 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 93) {
    if (i % 2 != 1 && j % 2 != 1) {
      s = (PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 95) {
    if (i % 3 != 1 && j % 3 === 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1 && j % 4 === 1) {
      s = (-PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 97) {
    if (i % 2 != 1 && j % 3 === 1) {
      s = (-PI / 3) * ((i * j) % 4);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1 && j % 4 === 1) {
      s = (-PI / 3) * ((i * j) % 3);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (-PI / 3) * (i % 3);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 99) {
    if (i % 3 != 1 && j % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 101) {
    if (i % 3 != 0 && j % 4 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 103) {
    if (i % 3 != 0 && j % 4 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 != 0 && j % 4 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 105) {
    if (i % 4 != 0 && j % 4 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 != 1 && j % 3 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 107) {
    if (i % 3 != 0 || j % 3 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 109) {
    if (i % 3 != 1 && j % 3 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 111) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 113) {
    if (i % 3 != 0 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 115) {
    if (i % 3 != 0 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 117) {
    if (i % 3 != 0 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 119) {
    if (i % 2 != 0 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 || j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 121) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 1 || j % 2 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 123) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 != 1 || j % 3 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 125) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 2 != 1 || j % 3 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 127) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 2 != 1 || j % 4 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 129) {
    if (i % 2 != 1 && j % 2 != 0) {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 2 != 1 || j % 4 != 1) {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 131) {
    if (i % 2 != 1 && j % 3 != 0) {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 2 != 1 || j % 2 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }

  if (v === 133) {
    if (i % 3 != 1 && j % 3 != 0) {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 3 != 0 && j % 3 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 135) {
    if (i % 4 != 1 && j % 4 != 0) {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 != 2 && j % 4 != 1) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = (PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 137) {
    if (i % 4 != 1 && j % 4 != 0) {
      s = (-PI / 3) * ((i * j) % 2);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 === 2 && j % 4 != 3) {
      s = (PI / 3) * ((i * j) % 2);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = c2;
    } else {
      s = 0;
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
    }
  }
  if (v === 139) {
    if (j % 2 !== j % 4) {
      s = (-PI / 3) * (i % 4);
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 !== j % 3) {
      s = (PI / 3) * (i % 3);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
    }
  }
  if (v === 141) {
    if (j % 4 === 1 && i % 2 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 1 && i % 2 == 1) {
      s = PI;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 4 === 2 && i % 2 == 1) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c1 = cArray[0];
      c2 = cArray[1];
    }
  }
  if (v === 143) {
    if (j % 2 === 1 && i % 2 === 1) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 2 === 0 && i % 2 === 0) {
      s = PI;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (j % 3 === 0 && i % 3 === 0) {
      s = PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = -PI / 3;
      c1 = cArray[0];
      c2 = cArray[1];
    }
  }
  if (v === 145) {
    if (i % 4 === 0) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      if (j % 2 === 1) {
        s = PI / 3;
      }
    } else if (i % 4 === 1) {
      s = (-2 * PI) / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      if (j % 2 === 1) {
        s = 0;
      }
    } else if (j % 2 === 1) {
      s = -PI / 3;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else if (i % 4 === 2) {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
  if (v === 147) {
    if (i % 9 === 0 || i % 9 == 4) {
      s = -PI / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      if (i % 9 == 4) {
        c2 = color(
          (r1 - t * i - t * j) * 2,
          (g1 - t * i - t * j) * 2,
          (b1 - t * i - t * j) * 2
        );
        c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      }
      if (j % 2 === 1) {
        s = PI / 3;
      }
    } else if (i % 9 === 1 || i % 9 == 5) {
      s = (-2 * PI) / 3;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      if (i % 9 == 5) {
        c2 = color(
          (r1 - t * i - t * j) * 2,
          (g1 - t * i - t * j) * 2,
          (b1 - t * i - t * j) * 2
        );
        c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
      }
      if (j % 2 === 1) {
        s = 0;
      }
    } else if (i % 9 === 2 || i % 9 === 7) {
      s = 0;
      c2 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c1 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    } else {
      s = 0;
      c1 = color(
        (r1 - t * i - t * j) * 2,
        (g1 - t * i - t * j) * 2,
        (b1 - t * i - t * j) * 2
      );
      c2 = color(r1 - t * i - t * j, g1 - t * i - t * j, b1 - t * i - t * j);
    }
  }
}
function windowResized() {
  c = min(windowHeight, windowWidth) * 0.9;
  resizeCanvas(c, c);
}
function mousePressed() {
  setup();
  draw();
}

function keyPressed() {
  if (keyCode === 38) {
    if (v < 148) {
      v = (v + 1) % 148;
      setup();
      draw();
    }
  }
  if (keyCode === 40) {
    if (v > 0) {
      v = v - 1;
      setup();
      draw();
    } else v = 147;
  }
  if (keyCode === 83) {
    save(cnv, "hexiquilt", "png");
  }
}