docs: function(src,dst,opt){
  
          var srcPixels = src.data,
              dstPixels = dst.data,
              xSize = src.width,
              ySize = src.height,
              xMid = opt.polarCenterX || xSize/2,
              yMid = opt.polarCenterY || ySize/2,
              i, x, y, dx, dy, r=0,g=0,b=0,a=0;
  
  
          // Find the largest radius
          var rad, rMax = Math.sqrt( xMid*xMid + yMid*yMid );
          x = xSize - xMid;
          y = ySize - yMid;
          rad = Math.sqrt( x*x + y*y );
          rMax = (rad > rMax)?rad:rMax;
  
          // We'll be uisng x as the radius, and y as the angle (theta=t)
          var rSize = ySize,
          tSize = xSize,
          radius, theta,
          phaseShift = opt.polarRotation || 0;
  
          // We need to convert to degrees and we need to make sure
          // it's between (0-360)
          // var conversion = tSize/360*180/Math.PI;
          //var conversion = tSize/360*180/Math.PI;
  
          var x1, y1;
  
          for( x=0; x<xSize; x+=1 ){
              for( y=0; y<ySize; y+=1 ){
                  dx = x - xMid;
                  dy = y - yMid;
                  radius = Math.sqrt(dx*dx + dy*dy)*rSize/rMax;
                  theta = (Math.atan2(dy,dx)*180/Math.PI + 360 + phaseShift)%360;
                  theta = theta*tSize/360;
                  x1 = Math.floor(theta);
                  y1 = Math.floor(radius);
                  i = (y1*xSize + x1)*4;
                  r = srcPixels[i+0];
                  g = srcPixels[i+1];
                  b = srcPixels[i+2];
                  a = srcPixels[i+3];
  
                  // Store it
                  i = (y*xSize + x)*4;
                  dstPixels[i+0] = r;
                  dstPixels[i+1] = g;
                  dstPixels[i+2] = b;
                  dstPixels[i+3] = a;
              }
          }
  
      }