Rainbow Arch


  size(400, 200);
  smooth();
  
  color skyBlue = color(0x87, 0xCE, 0xEB); // Equivalent of the CSS color #87CEEB
  background(skyBlue); 
  
  float cx = width/2;
  float cy = height;
  float rainbowThick = width / 5.0;
  float outerDiam = width * .9;
  
  colorMode(HSB, 1);
  noFill();                  // We added this line to avoid filling the area below the arcs.
  
  for (int i = 0; i < rainbowThick; ++i) {
    float ratio = i/rainbowThick;
    float hue = ratio*ratio;
    float saturation = 1;
    float brightness = 1;
    float alpha = sin( PI*ratio ) * 1.5 / 2;   // We use dimmer alpha than before to compensate for overdraw
  
    stroke( hue, saturation, brightness, alpha );
    arc(cx, cy, outerDiam-i, outerDiam-i, PI, PI*2);
  }