I22 Answer — Noisy Ripples


Everything else is the same as in I21 except for one line (in red):

  for ( r = 0; r < img.nrows; r++ )
    for ( c = 0; c < img.ncols; c++ )
    {
      dist = sqrt( (double)((r-rc)*(r-rc)+(c-cc)*(c-cc)) ); 
      gray = rand() % (128 + (int)(127*cos( 2*M_PI*nripples*dist/halfDiag ) ) ); 
      setPixel( img, r, c, gray );
    }

back