Upload
tariq-majeed
View
224
Download
0
Embed Size (px)
Citation preview
7/27/2019 2D Transformations and the 2D Viewing Pipeline
1/5
2D Transformations and the 2D Viewing
Pipeline
Part 1: 2D Tranformations
The ability to perform transformations on objects in an image is an important feature of a
graphics system. Operators were added to this system which allow the user to create 2D
transformation matrices that perform the following transformations:
scale around (0, 0) scale around an arbitrary point, with the x-scale direction oriented to a specified
angle
translate rotate around (0, 0) rotate around an arbitrary point
In addition, helper functions were created that perform matrix multiplication, reset a matrix
to the identity, reset a matrix to the zero matrix, and print a matrix. Below are some sample
images created using these methods. The original polygons are in red, and the tranformed
ones are in blue. The images are of translation, rotation of PI/4 about (0, 0), rotation of PI/4
about (80, 40), scaling by .8 in x and y, and respectively.
Part 2: The Starship Enterprise
The next task was to create an image of the Starship Enterprise by applying the
transformation tools developed in the previous task to a unit circle and square. Below is the
generated image.
7/27/2019 2D Transformations and the 2D Viewing Pipeline
2/5
Part 3: Animating the Starship Enterprise
The next step was to create an animation of the Enterprise orbiting a planet.
Part 4: The Viewing Pipeline
The final task consisted of creating a 2D viewing pipeline that would allow the designer to
pan around the image. The animation below is an example of this feature. The viewing
pipeline moves in a diamond shape that shadows the motion of the Enterprise.
7/27/2019 2D Transformations and the 2D Viewing Pipeline
3/5
Extensions
As an extension, we used the transformation matrices that we had created to make an
animated gif of the Enterprise going to warp speed. The parts of the Enterprise are
stretched and then shrunk over time, and a filled polygon was added at the end to create the
effect of an explosion.
Questions
1. Who did you work with on this assignment, and what tasks did each of you do? I worked with Casey Smith, and we shared the work on most of the tasks.
7/27/2019 2D Transformations and the 2D Viewing Pipeline
4/5
2.Describe the mechanism you developed for handling the global transformationparameters and matrix.
The "global transformation parameters" weren't really global, they were local to the
test program. Each new graphics object had its own transformation matrix, and each
of these was passed to the appropriate drawing function (polyLineM,
drawUnfilledCircleM, drawFilledCircleM). The transformation was applied to the
points in the the draw functions.
3.Describe the mechanism you developed for handling the viewing pipelineparameters and transformation matrix.
For this assignment, the global transformation parameters were hardcoded into the
test programs, and the matrix was constructed by translating and scaling the View
Transformation Matrix using the translation and rotation functions. In the future,
however, a function will be created that will take in the points at the lower left and
upper right of the viewing window and the desired scale and will perform the
translation and rotation on the VTM.
4. Once you had the code in place, what was the process and how difficult was it tomodify the view window and the position of the Enterprise?
The transformation functions made it very easy to move the objects in the scene and
to change the view window. To change the position of the enterprise, simply apply
the same translation or rotation to each piece of the figure. This will, of course,
become even simpler when we have created a hierarchical modeling system in which
individual graphical elements can be combined into one object and tranformed as a
unit.
Moving the viewing window is equally easy. Points are stored for the lower left and
7/27/2019 2D Transformations and the 2D Viewing Pipeline
5/5
upper right corners of the view window, along with the desired dimensions of the
output image. Changing the viewing window is as simple as changing the points for
the corners of the viewing window and then applying the transformation matrix to
the image objects (lines, circles, etc.).
5.If you extended this assignment in any way, describe what you did and how you didit. Include pictures, or links to pictures that show what you did. As an extension, we
created an image of the Starship Enterprise going into warp speed (see above). We
just created series of images in which the Enterprise was stretched, followed by aseries of images in which it was collapsed into an explosion (a filled polygon).