[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: linuxgames@sunsite.auc.dk*Subject*: Re: image rotation*From*: Johnny Taporg <taporg@yahoo.com>*Date*: Sun, 10 Jan 1999 17:26:52 -0800 (PST)*Reply-To*: linuxgames@sunsite.auc.dk

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

- Prev by Date:
**Re: double buffering ?** - Next by Date:
**Poll standings** - Prev by thread:
**image rotation** - Next by thread:
**Re: image rotation** - Index(es):