[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: image rotation
Ken Dunn <luser@xtra.co.nz> wrote:
>
> Problem: I'm totally and utterly clueless on how to rotate an
> image. Would someone please give me a URL or a quick run down on
> how to do it ?
www.gimp.org :-)
Actually, this will probably be more useful, from the
comp.graphics.algorithms FAQ (you'll need to understand
matrix math in order to make sense of it):
Subject 3.01: How do I rotate a bitmap?
The easiest way, according to the comp.graphics faq, is to take
the rotation transformation and invert it. Then you just iterate
over the destination image, apply this inverse transformation and
find which source pixel to copy there.
A much nicer way comes from the observation that the rotation
matrix:
R(T) = { { cos(T), -sin(T) }, { sin(T), cos(T) } }
is formed my multiplying three matrices, namely:
R(T) = M1(T) * M2(T) * M3(T)
where
M1(T) = { { 1, -tan(T/2) },
{ 0, 1 } }
M2(T) = { { 1, 0 },
{ sin(T), 1 } }
M3(T) = { { 1, -tan(T/2) },
{ 0, 1 } }
Each transformation can be performed in a separate pass, and
because these transformations are either row-preserving or
column-preserving, anti-aliasing is quite easy.
Reference:
Paeth, A. W., "A Fast Algorithm for General Raster Rotation",
Proceedings Graphics Interface '89, Canadian Information
Processing Society, 1986, 77-81
[Note - e-mail copies of this paper are no longer available]
[Gems I]
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com