InitGraph(); rows=31;cols=47; ScaleWindow(0, 0,cols+1, rows+1); Colour(Black); BoxFill(0,0,cols+1,rows+1); pic1=new Array(cols);pic2=new Array(cols); for(var i = 0;i<=cols;i++){ pic1[i]=new Array(rows);pic2[i]=new Array(rows); } function showpic2() { //and copy to pic1 for(var i = 0;i<=cols;i++){ for(var j = 0;j<=rows;j++) { m=5*pic2[i][j] ColourRGB(m,m,m); BoxFill(i, j, 1.1, 1.1); Colour(Red); pic1[i][j]=pic2[i][j]; } } } function blurrh() { b = 6.; //sets the 'blur' constant for(var j = 0;j<=rows;j++) { a = pic1[0][j]; for(var i = 0;i<=cols;i++){ a = a + (pic1[i][j] - a) / b; pic1 [i][j] = a; c=6*a; ColourRGB(c,c,c); BoxFill(i, j, 1, 1); } for(var i = cols-1;i>=0;i+=-1){ a = a + (pic1 [i][j] - a) / b; pic1 [i][j] = a; c=6*a; ColourRGB(c,c,c); BoxFill(i, j, 1, 1); } } } function blurrv() { b = 6; //sets the 'blur' constant for(var i = 0;i<=cols;i++){ var a = pic1 [i][0]; for(var j = 0;j<=rows;j++) { a = a + (pic1[i][j] - a) / b; pic1 [i][j] = a; c=6*a; ColourRGB(c,c,c); BoxFill(i, j, 1, 1); } for(j = rows-1;j>=0;j+=-1) { a = a + (pic1[i][j] - a) / b; pic1 [i][j] = a; c=6*a; ColourRGB(c,c,c); BoxFill(i, j, 1, 1); } } } //Set up picture with a ragged diamond Colour(Dull); m=(rows+cols)/2; for (i = 0;i<= cols;i++){ for (j = 0; j<=rows;j++) { k = m - Math.abs(i - cols/2) - Math.abs(j - rows/2); k = k + 12. * Math.random(); pic1 [i][j] = k; c = 5 * k; ColourRGB(c, c, c); BoxFill(i, j, 1, 1); } } blurrh(); blurrv();