but they both use an image that 'wants' to be rotated about its center. Imagine that instead of a drawing compass needle, you wanted to draw the hands of a clock. This would mean one end of the clock hand would be fixed on the screen and the other end of the bitmap would rotate around it. One solution would be to extend my bitmap with a new transparent half which would give the desired effect (since the end would now be at the centre) but if there's an simpler way to do this in code with the relevant transformation that would be sweet
Canvas.DrawBitmapRotated rotates the bitmap around its center.
You can either increase the bitmap, or rotate the bitmap and move it to the right place.
I think that it will be easier to increase the bitmap in the case of a clock or compass.