Logo Search packages:      
Sourcecode: wims version File versions  Download package

PointSurDroite.java

package geo ;

/**
 * Définit un point d'une droitedont on peut modifier l'emplacement.
 */

00007 public class PointSurDroite extends pointlibre
{ public Droite d ;

/**
 * Construit un point de position modifiable, projeté de M sur d.
 */

00014   public PointSurDroite (int X, int Y, Droite d, String Nom, Repere R)
  { super (R.Abs (X), R.Ord (Y), Nom, R) ; this.d = d ; point () ; }

/**
 * Construit un point de position modifiable, projeté de M (x, y) sur d.
 */

00021   public PointSurDroite (double x, double y, Droite d, String Nom, Repere R)
  { super (x, y, Nom, R) ; this.d = d ; point () ; }

/**
 * Pour un point en cours de déplacement, met à jour (X, Y) et met dans (Xp, Yp) les anciennes
 * coordonnées "écran".
 */

00029   public void bouge (int X, int Y)
  { if (deplace && defini && R.affiche (X, Y))
      { Xp = this.X ; Yp = this.Y ;
        x = R.Abs (X) ; y = R.Ord (Y) ;
        double k = (d.a * x + d.b * y + d.c) / (d.a * d.a + d.b * d.b) ;
        x = x - k * d.a; y = y - k * d.b ;
        this.X = R.Iabs (x); this.Y = R.Iord (y) ;
      }
  }

/**
 * Redéfinit le point en cas de modification de la Droite d.
 */

00043   public void point ()
  { if (d.defini) { double k = (d.a * x + d.b * y + d.c) / (d.a * d.a + d.b * d.b) ;
                    x = x - k * d.a ; y = y - k * d.b ;
                    Xp = X = R.Iabs (x) ; Yp = Y = R.Iord (y) ; }
    defini = d.defini;
  }                   

}

Generated by  Doxygen 1.6.0   Back to index