Learn how to use the game-math library for translation and animation in two dimensions.
Table of contents
Preface
This module is one in a collection of modules designed for teaching
GAME2302 Mathematical Applications for Game Development at Austin
Community College in Austin, TX.
What you have learned
In the previous module, you learned:
- how to add two or more vectors,
- about the head-to-tail rule in vector addition,
- about the vector addition parallelogram,
- about the relationship between the length of the sum of two or more
vectors and the lengths of the individual vectors in the sum,
- how to add a vector to a point,
- how to get the length of a vector, and
- how to represent an object in different coordinate frames.
What you will learn
In this module we will put the game-math library to work. I will provide and
explain four sample programs. The first program will teach you how to translatea geometric object in two dimensions. The second program will teach you how to
accomplish the same thing but in a possibly more efficient manner. The thirdprogram will use the library to produce animation in two dimensions.
(A future module will produce translation and animation in three
dimensions.)
The fourth program will teach you how to use methods of the game-math library
to produce relatively complex drawings.
Viewing tip
I recommend that you open another copy of this module in a separate
browser window and use the following links to easily find and view the Figuresand Listings while you are reading about them.
-
Figure 1 . Translation of black hexagon to location of red hexagon.
-
Figure 2 . Screen output for geometric object with 50 vertices.
-
Figure 3 . Screen output without drawing the points at the vertices.
-
Figure 4 . Starting point for the hexagon in VectorAdd06.
-
Figure 5 . Possible ending point for the hexagon in VectorAdd06.
-
Figure 6 . String art with 15 vertices and 7 loops.
-
Figure 7 . String art with 25 vertices and 11 loops.
-
Figure 8 . String art with 100 vertices and 100 loops.
-
Figure 9 . Output from StringArt01 at startup.
-
Figure 10 . Screen output from Exercise 1 at
startup.
-
Figure 11 . Screen output from Exercise 1 after clicking Replot button.
Listings
-
Listing 1 . Instance variables in the class named GUI.
-
Listing 2 . Abbreviated constructor for the GUI class.
-
Listing 3 . Beginning of the drawOffScreen method.
-
Listing 4 . To draw or not to draw the lines.
-
Listing 5 . Change the drawing color to RED.
-
Listing 6 . Translate the geometric object.
-
Listing 7 . Draw the lines if drawLines is true.
-
Listing 8 . The actionPerformed method.
-
Listing 9 . Abbreviated listing of the drawOffScreen method.
-
Listing 10 . The class named MyCanvas, the update method, and the paint method.
-
Listing 11 . Abbreviated listing of actionPerformed method.
-
Listing 12 . The inner Thread class named Animate.
-
Listing 13 . Do the animated move.
-
Listing 14 . Beginning of the drawOffScreen method in StringArt01.
-
Listing 15 . Implement the algorithm that draws the lines.
-
Listing 16 . Draw the lines.
-
Listing 17 . Source code for the game-math library named GM2D04.
-
Listing 18 . Source code for the sample program named VectorAdd05.
-
Listing 19 . Source code for the program named VectorAdd05a.
-
Listing 20 . Source code for the program named VectorAdd06.
-
Listing 21 . Source code for the program named StringArt01.