Rotation
Mouse drag: Rotates the image
Scaling
Mouse drag: Scales in the X-Y plane
Shift-Mouse drag: Scales in the Z plane
Skew
Horizontal Mouse drag: Skews XY
Vertical Mouse drag: Skews YZ
Shift-Vertical Mouse drag: Skews XZ
Translation
Mouse drag: Translates in the X-Y plane
Shift-Vertical Mouse drag: Translates in the Z plane
Note that the orthographic view is automatically scaled by a factor of 10, because otherwise it does not fit on the screen. The perspective view is scaled by a factor of 10 because it is 10 units away from the camera. Therefore, if the orthographic view is also going to fit in the screen, it must also be scaled down by a factor of 10.
My code:
Raster.java
Point3D.java
Matrix3D.java
TestMatrix.java
Only TestMatrix.java and Matrix3D.java are different than the versions which were provided for this project.