import java.lang.Object; import java.lang.Math; import java.awt.geom.*; /** *

Title: TransfMatr

*

Description: Contains a list of mathematical Transforms

* Cassandra Robinson * version 1.0 */ public class TransfMatr { double xval; double yval; double angleval; double [][] transfby; int type; final double PI=3.14159265; public TransfMatr(double ang, double x1, double y1, int ttype) { //input values for transforming a matrix //if unneeded give a 0 value xval = x1; yval = y1; angleval = ang*PI/180; type = ttype; switch ( ttype ){ case 0: //identity double [][] identity = { {1., 0., 0.}, {0., 1., 0.}, {0., 0., 1.} }; transfby = identity; break; case 1: //translation double [][] translation = { { 1., 0., xval }, { 0., 1., yval }, { 0., 0., 1. } }; transfby = translation; break; case 2: //scaling double [][] scaling = { {xval, 0., 0.}, {0., yval, 0.}, {0., 0., 1.} }; transfby = scaling; break; case 3: //rotation double [][] rotation = { {java.lang.Math.cos( angleval ), -java.lang.Math.sin( angleval ) , 0.}, {java.lang.Math.sin( angleval ),java.lang.Math.cos( angleval ) , 0.}, {0., 0., 1.} }; transfby = rotation; break; case 4: //shear by x double [][] shearbyx = { {1., xval, 0.}, {0., 1., 0.}, {0., 0., 1.} }; transfby = shearbyx; break; case 5: //shear by y double [][] shearbyy = { {1., 0., 0.}, {yval, 1., 0.}, {0., 0., 1.} }; transfby = shearbyy; break; default: System.out.println("Constructor for TransfMatr given invalid type of transformation."); break; } } void transform(Point2D point) { double x; double y; //tranform x = (transfby[0][0] * point.getX() ) + (transfby[0][1] * point.getY() ) + (transfby[0][2]); y = (transfby[1][0] * point.getX() ) + (transfby[1][1] * point.getY() ) + (transfby[1][2]); point.setLocation(x,y); } void print() { System.out.print(" [" + transfby[0][0] + "," + transfby[0][1] + "," + transfby[0][2] + " ] " ); System.out.print("\n"); System.out.print(" [" + transfby[1][0] + "," + transfby[1][1] + "," + transfby[1][2] + " ] " ); System.out.print("\n"); System.out.print(" [" + transfby[2][0] + "," + transfby[2][1] + "," + transfby[2][2] + " ] " ); System.out.print("\n"); } }