[vox-tech] Success with fltk and SDL_image

Peter Jay Salzman vox-tech@lists.lugod.org
Wed, 12 May 2004 13:36:23 -0700


On Wed 12 May 04, 11:49 AM, Micah J. Cowan <micah@cowan.name> said:
> On Tue, May 11, 2004 at 05:26:26PM -0700, Bill Kendrick wrote:
> > On Tue, May 11, 2004 at 05:11:25PM -0700, Jan W wrote:
> > > Hi all:
> > > 
> > > Just a question:
> > > 
> > > Has anyone used SDL_image to do scaling and rotation?  If so, is there anything
> > > that I could use to do basic image manipulations?  I am looking for code
> > > examples/basic theories so that I can start off down a (more or less)
> > > reasonable path...
> > 
> > SDL_image itself doesn't do scaling and rotation.  Just loading. :^)
> > 
> 
> <snip>
> 
>> 90-degree rotation is pretty trivial.  When you start doing zoom-in our -out,
>> it gets trickier, but it really ends up being only as complicated as you make
>> it (e.g., do you do interpolation, averaging, or just skip pixels?)
> 
> Other than 90-degree rotation just takes a little trig. But pixel loss
> comes into play unless you're doing an antialiasing-type thing.

Even for pi/2 rotations, it takes a little trig.   :-)

it should also be pointed out that if you decide to roll your own
rotation routines that rotation tensors (a set of N^2 components which
can be represented by a matrix) are anti-symmetric.

therefore, a rotation in 2-space only has a single degree of freedom yet
the rotation tensor has 4 components.  a rotation in 3-space has 6
degrees of freedom yet the tensor has 9 components.

this means your rotations are inefficient if you chose this method to
rotate pixels, since you're carrying around a lot of extra baggage in
your calculations.

if you do a google search on "rotation quaternions" you'll find a much
more efficient routine for rotations at the price of being much more
abstract.

pete



-- 
Make everything as simple as possible, but no simpler.  -- Albert Einstein
GPG Instructions: http://www.dirac.org/linux/gpg
GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D