La classe Ortho comporte une seule méthode: un constructeur réalisant le calcul de la matrice de transformation.

/**
 * La classe <code>Ortho</code> permet l'instanciation d'objets
 * de type transformation geometrique
 * pour mise en projection parallele orthographique.
 * 
 * @author Nicolas Janey
 * @author nicolas.janey@univ-fcomte.fr
 * @version 1.0, 12/11/08
 */


public class Ortho extends TransformationGeometrique3D {

/**
 * Constructeur pour une transformation <code>Ortho</code> definie par la position
 * de l'observateur, un point directement vise et la conservation des verticales.
 *
 * @param observateur la {@link Position3D Position3D} definissant
 *   la position de l'observateur
 * @param pointVise la {@link Position3D Position3D} definissant
 *   la position du point directement vise par l'observateur
 */

  public Ortho(Position3D observateur,Position3D pointVise) {
    super();
    Direction3D n = new Direction3D(observateur,pointVise);
    double nx = n.getX();
    double ny = n.getY();
    double nz = n.getZ();
    double pox = observateur.getX();
    double poy = observateur.getY();
    double poz = observateur.getZ();
    double a = 1.0/Math.sqrt(1.0-ny*ny);
    c[0][0] = -a*nz;
    c[0][1] = 0.0;
    c[0][2] = a*nx;
    c[0][3] = a*(pox*nz-poz*nx);
    c[1][0] = -a*nx*ny;
    c[1][1] = 1.0/a;
    c[1][2] = -a*nz*ny;
    c[1][3] = (a*ny*(pox*nx+poz*nz)-poy/a);
    c[2][0] = -nx;
    c[2][1] = -ny;
    c[2][2] = -nz;
    c[2][3] = (pox*nx+poy*ny+poz*nz);
    c[3][0] = 0.0;
    c[3][1] = 0.0;
    c[3][2] = 0.0;
    c[3][3] = 1.0;
  }
}

Ortho.java

RETOUR