- int k = dir>=0 ? 0 : rr-1;
- for( int i=0; i<rr; ++i,k+=dir )
- psf[k] = 255*exp(-s*((double)i/rr));
- int mx = dir > 0 ? 0xff : 0;
+ float p = powf(10.f, s/2);
+ for( int i=0; i<rr; ++i ) {
+ float v = powf((float)i/rr,p);
+ if( dir < 0 ) v = 1-v;
+ int vv = v*256;
+ if( vv > 255 ) vv = 255;
+ psf[i] = vv;
+ }