public FImage2D rotate( float angle ) {
FImage2D r = new FImage2D( xsize, ysize );
float x,y;
float ca = (float) Math.cos( angle);
float sa = (float) Math.sin( angle);
for (int xa = 0; xa < xsize; xa++) {
for(int ya = 0; ya < ysize; ya++) {
x = (xa* ca + ya * sa)+127.5f;
y = (-xa* sa + ya * ca)+127.5f;
r.set(xa,ya,pv(x,y,1));
}
// enumerate all (xa, ya) in resultant image
// calculate the corresponding (x,y) in original image
// use interpolation to set r(xa,ya) to original(x,y)
}
return r;