function RGBtoCOLOR(rgb){
return (rgb.r<16 ? '0' : '') +
rgb.r.toString(16).toUpperCase() +
rgb.g.toString(16).toUpperCase() +
rgb.b.toString(16).toUpperCase() ;
{r: 195 ,g: 11 ,b: 142 },
{r: 198 ,g: 13 ,b: 139 },
{r: 201 ,g: 17 ,b: 135 },
{r: 203 ,g: 20 ,b: 132 },
{r: 206 ,g: 23 ,b: 127 },
{r: 208 ,g: 26 ,b: 121 },
{r: 210 ,g: 29 ,b: 116 },
{r: 212 ,g: 33 ,b: 111 },
{r: 214 ,g: 37 ,b: 103 },
{r: 254 ,g: 216 ,b: 12 },
{r: 255 ,g: 219 ,b: 15 },
{r: 255 ,g: 221 ,b: 23 },
{r: 255 ,g: 224 ,b: 32 },
{r: 255 ,g: 227 ,b: 39 },
{r: 255 ,g: 229 ,b: 50 },
{r: 255 ,g: 232 ,b: 63 },
{r: 255 ,g: 235 ,b: 75 },
{r: 255 ,g: 238 ,b: 88 },
{r: 255 ,g: 239 ,b: 102 },
{r: 255 ,g: 241 ,b: 116 },
{r: 255 ,g: 242 ,b: 134 },
{r: 255 ,g: 244 ,b: 149 },
{r: 255 ,g: 245 ,b: 164 },
{r: 255 ,g: 247 ,b: 179 },
{r: 255 ,g: 248 ,b: 192 },
{r: 255 ,g: 249 ,b: 203 },
{r: 255 ,g: 251 ,b: 216 },
{r: 255 ,g: 253 ,b: 228 },
{r: 255 ,g: 254 ,b: 239 }
function showIronPalette(){
for (var idx = 0; idx < iron.length; idx++){
var box = document.createElement("div");
box.style.backgroundColor = "#"+RGBtoCOLOR(iron[idx]);
document.getElementById("palette").appendChild(box);
function showPM3DPalette(){
for (var idx = 0; idx < iron.length; idx++){
var x = idx * 1.0/iron.length;
var rgb = {r: Math.round(255*Math.sqrt(x)),
g: Math.round(255*Math.pow(x,3)),
b: Math.round(255*(Math.sin(2 * Math.PI * x)>=0?
Math.sin(2 * Math.PI * x) :
var box = document.createElement("div");
box.style.backgroundColor = "#"+RGBtoCOLOR(rgb);
document.getElementById("pm3d").appendChild(box);