Game Development Reference

In-Depth Information

good enough results as it would introduce aliasing due to the fact that pixels on the screen

are represented as integral coordinates, while rotations are floating point operations. Er-

rors creep in when we round off the results causing pixels to land on the same destination

as neighboring source pixels, or to miss their target altogether, causing gaps or tears in the

resulting image.

Oneapproachtosolvealiasingproblemswhenrotatingbitmapsistoapplyanareamapping

algorithm,foreachrotatedpixelwefindfoursourcepixelsthatpartiallycoverit,thencom-

pute the rotated pixel as the area weighted average of those four pixels.

1.3.2.2Rotation by Shear

There is an approach to rotation that works by performing three shear transformations on

a bitmap. A horizontal shear transformation will move a row of pixels by a distance that is

proportional to its vertical distance from some reference point. By doing three shear oper-

ations alternating between horizontal and vertical shears we can achieve a perfect rotation

by any angle (Paeth, 1986).

The shear matrix along the x axis has the form:

And along the y axis:

Asmentionedabove,rotation byshearingcanbeachievedbythreesuccessiveshearsalong

alternating axes. This implies that the product of the three shear matrices will be the same

as the rotation matrix we had previously found.

By solving this equation we can find the values
α
,
β
we need for a given angle
Ɵ
.