# rotate bmp (Xlib)

Discussion in 'C Programming' started by Dariusz.Donimirski@gmail.com, Jan 17, 2008.

1. ### Guest

I must rotate bmp using Xlib without change bmp's memory. If someone

dariusz
sorry about my english, I'm still learning

, Jan 17, 2008

2. ### Ben PfaffGuest

writes:

> I must rotate bmp using Xlib without change bmp's memory. If someone

You are more likely to get correct responses if you ask there.
--
char a[]="\n .CJacehknorstu";int putchar(int);int main(void){unsigned long b[]
={0x67dffdff,0x9aa9aa6a,0xa77ffda9,0x7da6aa6a,0xa67f6aaa,0xaa9aa9f6,0x11f6},*p
=b,i=24;for(;p+=!*p;*p/=4)switch(0[p]&3)case 0:{return 0;for(p--;i--;i--)case+
2:{i++;if(i)break;else default:continue;if(0)case 1utchar(a[i&15]);break;}}}

Ben Pfaff, Jan 17, 2008

3. ### Malcolm McLeanGuest

<> wrote in
>
>I must rotate bmp using Xlib without change bmp's memory. If someone
>

I recently posted functions to do this.

Then apply the formula

ax = x - centralx;
ay = y - centraly;

(assuming you wnat to rotate about the centre)

theta is the angle to rotate by

bx = ax * cos(theta) - ay * sin(theta);
by = ax * sin(theta) + ay * cos(theta);

x = bx + centralx;
y = by + centraly;

Work from destination to source, or you will get missing pixel in the
destination image.
(For a very high quality rotate you need to do anti-alising as well).

Then you simply use Xlib to display the new image you have constructed. I'm
pretty sure it has no built-in rotate functions itself.

--
Free games and programming goodies.
http://www.personal.leeds.ac.uk/~bgy1mm

Malcolm McLean, Jan 17, 2008