I have a TBitmap containing an image of starts (generated randomly). I'm using it for the background in my 3d engine. When the camera rotates the background image will move to give an impression of rotation relative to the background. The bitmap is the same size as the screen, so it will have to wrap-round in x and y as it moves. I've worked out that the amount it has to move will be equal to the angle of rotation multiplied by the focal length - for x and y.
My problem is how do I do the image wrap-round. Basically I need to be able to define a point in the bitmap and create another bitmap that has that point at the center with wrap-round. I could do it with scanline (by putting the stars image in a 2D array first) but I could also do it with copyrect - there will be 9 segments of the original image to move into the correct position in the new image.
So what's the best way to do it and has anyone already got delphi code for it?

Thanks

Peter