# Generating a pleasing colour palette

### Generating a pleasing colour palette

What this does is randomly choose RGB values that are bright and colourful, while not being primary colours.  It gives the application a much nicer look than standard colours.  Below is the code to choose the random colour:

``` // figure out a pleasing colour
\$grc = M_PI / 3;
\$h = mt_rand(0, (M_PI / 3) * 85) / 100; // use random start value
\$h += fmod(\$i, 3) * \$grc;
\$h = (1 / M_PI) * \$h;

\$rgb = HSVtoRGB(array(\$h, 1, 1));```

And the next portion is to convert the HSV values that were generated above in to useable RGB values for your css eg. rgba(R, G, B, 1.0)

```function HSVtoRGB(array \$hsv) {
// original author: http://stackoverflow.com/users/127724/artefacto

list(\$H,\$S,\$V) = \$hsv;
//1
\$H *= 6;
//2
\$I = floor(\$H);
\$F = \$H - \$I;
//3
\$M = \$V * (1 - \$S);
\$N = \$V * (1 - \$S * \$F);
\$K = \$V * (1 - \$S * (1 - \$F));
//4
switch (\$I) {
case 0:
list(\$R,\$G,\$B) = array(\$V,\$K,\$M);
break;
case 1:
list(\$R,\$G,\$B) = array(\$N,\$V,\$M);
break;
case 2:
list(\$R,\$G,\$B) = array(\$M,\$V,\$K);
break;
case 3:
list(\$R,\$G,\$B) = array(\$M,\$N,\$V);
break;
case 4:
list(\$R,\$G,\$B) = array(\$K,\$M,\$V);
break;
case 5:
case 6: //for when \$H=1 is given
list(\$R,\$G,\$B) = array(\$V,\$M,\$N);
break;
}
return array(round(\$R*255), round(\$G*255), round(\$B*255));
}```