For Wednesday February 12, by class time, I would like you to do an assignment equivalent to the one you did this last week, but rather than using 3x3 matrices to do 2D transformations, implement a library of 4x4 matrices to do 3D transformations.
Here are notes on matrix 3x3 primitives.Assignment:
You should structure your Matrix4x4
java class the same way you
structured your
Matrix3x3
java class.
For example, in order to create a
translate(x,y,z)
method,
you would implement a
makeTranslation(tx,ty,tz)
method, which makes use of a
static helper method
doMakeTranslation(tx,ty,tz, dst[][])
,
and then call a
doPostMultiply(srcData1[][], srcData2[][], dstData[][])
method,
very much like the way you did things last week.
Your
transform(x,y,z, dstVec[])
method should look very similar to
the one you implemented last week, with
the exception that now it works
with a 4x4 matrix and an (x,y,z) vector.
rather than
with a 3x3 matrix and an (x,y) vector.
Just like last week, you should
create a cool scene by
drawing lines or polygons, using
the java.awt.Graphics
methods.
After you are all done transforming the
points in your scene's shapes,
you can display them by simply ignoring
their z
coordinate, and drawing them as x,y
points.
Next Monday we will go over perspective, so you will have some time before Wednesday to incorporate that into your work if you are feeling ambitious.