Back to index

wims  3.65+svn20090927
Public Member Functions | Public Attributes | Package Attributes | Private Member Functions
geo.point Class Reference

Super classe contenant tous les points calculés tels les points d'intersections de Droites et Cercles. More...

Inheritance diagram for geo.point:
Inheritance graph
[legend]
Collaboration diagram for geo.point:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 point (String Nom, Repere R)
 Construit un point non défini.
 point (pt A, String Nom, Repere R)
 Construit une copie du point A.
 point (int X, int Y, String Nom, Repere R)
 Construit le point placé en (X, Y) sur la fenêtre d'affichage.
 point (double x, double y, String Nom, Repere R)
 Construit le point de coordonnées (x, y).
void Milieu (Segment s)
 Donne le milieu du Segment s.
void Intersection (Droite d1, Droite d2)
 Donne l'intersection des droites d1 et d2.
void Intersection (Segment s1, Segment s2)
 Donne l'intersection des segments s1 et s2.
void Intersection1 (Droite d, Cercle c)
 Donne le premier point d'intersection, s'il existe, de la droite d et du cercle c.
void Intersection2 (Droite d, Cercle c)
 Donne le second point d'intersection, s'il existe, de la Droite d et du Cercle c.
void Intersection1 (Cercle c1, Cercle c2)
 Donne le premier point d'intersection de deux cercles quand celui-ci existe.
void Intersection2 (Cercle c1, Cercle c2)
 Donne le second point d'intersection de 2 Cercles quand celui-ci existe.
void Centre (Cercle c)
 Donne le centre d'un cercle.
void Projection (pt A, Droite d)
 Donne le projeté d'un point sur une Droite.
void Projection (pt A, Segment s)
 Donne le projeté d'un point sur un segment (le point peut être à l'extérieur du segment).
void Symetrique (pt A, Droite d)
 Donne le symétrique de A par rapport à la droite d.
void Symetrique (pt A, Segment s)
 Donne le symétrique de A par rapport au segment s.
void Rotation1 (pt A, pt O, ArcDeCercle ARC)
 Donne l'image de A par la rotation de centre O et d'angle correspondant à l'arc de cercle ARC.
double Distance (Droite d)
 Retourne la distance du point à une droite.
double Distance (Segment s)
 Retourne la distance du point à un segment.
void Translation (pt A, Vecteur v)
 Donne l'image du point A par la translation de vecteur v.
void majXY ()
 Met à jour la position (X, Y) du point à l'aide des coordonnées (x, y).
void Milieu (pt A, pt B)
 Positionnement du point au milieu du bi-point AB.
void Symetrique (pt A, pt C)
 Point sur le symétrique de A par rapport au point C.
void Rotation (pt A, pt O, double a)
 Donne l'image du point A par la rotation de centre O et d'angle a.
void Homothetique (pt A, pt O, double k)
 Donne l'image du point A par l'homothétie de centre O et de rapport k.
double Distance (pt A)
 Donne la distance du point A au point courant.
boolean zone (int X, int Y)
 teste si la souris est proche du point libre, retourne alors deplace = true
void trace (Graphics g)
 Trace ou efface le point.
void traceNom (Graphics g)
 Trace ou efface uniquement le Nom du point.
void point (double x, double y)
 Redéfinit le point par des coordonnées (x, y).
void point ()
 Redéfinit le point.

Public Attributes

int X
 Position du point sur l'écran.
double x
 Abscisse du point.
double y
 Ordonnée du point.
Repere R
 Repere associé.
boolean defini
 Existence de l'objet.
String Nom
 Nom de l'objet.

Package Attributes

int Y

Private Member Functions

void i12 (Droite d, Cercle c, double signe)
void icc (Cercle c1, Cercle c2, double signe)

Detailed Description

Super classe contenant tous les points calculés tels les points d'intersections de Droites et Cercles.

Definition at line 9 of file point.java.


Constructor & Destructor Documentation

geo.point.point ( String  Nom,
Repere  R 
) [inline]

Construit un point non défini.

Definition at line 16 of file point.java.

  { super (Nom, R) ; }
geo.point.point ( pt  A,
String  Nom,
Repere  R 
) [inline]

Construit une copie du point A.

Definition at line 23 of file point.java.

  { super (A, Nom, R) ; }
geo.point.point ( int  X,
int  Y,
String  Nom,
Repere  R 
) [inline]

Construit le point placé en (X, Y) sur la fenêtre d'affichage.

Definition at line 30 of file point.java.

  { super (X, Y, Nom, R) ; }
geo.point.point ( double  x,
double  y,
String  Nom,
Repere  R 
) [inline]

Construit le point de coordonnées (x, y).

Definition at line 37 of file point.java.

  { super (x, y, Nom, R) ; }

Member Function Documentation

void geo.point.Centre ( Cercle  c) [inline]

Donne le centre d'un cercle.

Definition at line 161 of file point.java.

  { defini = c.defini ;
    if (defini) { x = c.xo ; y = c.yo ; majXY () ; }
  }

Here is the call graph for this function:

double geo.pt.Distance ( pt  A) [inline, inherited]

Donne la distance du point A au point courant.

Definition at line 128 of file pt.java.

   { if (defini && A.defini)
       { double dx = x - A.x ; double dy = y - A.y ;
         return Math.sqrt(dx * dx + dy * dy) ;
       }
     else return -1.0 ; }
double geo.point.Distance ( Droite  d) [inline]

Retourne la distance du point à une droite.

Definition at line 224 of file point.java.

   { if (defini && d.defini) return Math.abs (d.a * x + d.b * y + d.c) / Math.sqrt (d.a * d.a + d.b * d.b) ;
     else                    return -1.0 ;
   }
double geo.point.Distance ( Segment  s) [inline]

Retourne la distance du point à un segment.

Definition at line 234 of file point.java.

   { double resultat = -1.0 ;
     if (defini && s.defini) { double a = s.By - s.Ay ; double b = s.Ax - s.Bx ;
                               if ((a != 0.0) || (b != 0.0))
                resultat = Math.abs (a * x + b * y + s.Ay * s.Bx - s.Ax * s.By) / Math.sqrt (a * a + b * b) ;
                             }
   return resultat ;
   }
void geo.pt.Homothetique ( pt  A,
pt  O,
double  k 
) [inline, inherited]

Donne l'image du point A par l'homothétie de centre O et de rapport k.

Definition at line 116 of file pt.java.

   { defini = A.defini && O.defini ;
     if (defini) { x = O.x + k * (A.x - O.x) ;
                   y = O.y + k * (A.y - O.y) ;
                   majXY () ;
                 }
   }

Here is the call graph for this function:

void geo.point.i12 ( Droite  d,
Cercle  c,
double  signe 
) [inline, private]

Definition at line 89 of file point.java.

  { defini = (d.defini) && (c.defini) ;
    if (defini) { if (d.b != 0.0) { double u = d.a * (d.c + d.b * c.yo) - d.b * d.b * c.xo ;
                                    double v = d.a * d.a + d.b * d.b ;
                                    double w = d.c + d.b * c.yo ;
                                    double deltap = u * u - v * (d.b * d.b * (c.xo * c.xo - c.r * c.r) + w * w) ;
                                    if (deltap >= 0.0) { x = (- u + signe * Math.sqrt (deltap)) / v ;
                                                         y = - (d.a * x + d.c) / d.b ; }
                                    else               defini = false ;
                                  }
                  else            { x = - d.c / d.a ;
                                    double u = x - c.xo ;
                                    double v = c.r * c.r - u * u ;
                                    if (v >= 0.0) y = c.yo + signe * Math.sqrt (v) ;
                                    else          defini = false ;
                                  }
                  majXY () ;
                }
  }

Here is the call graph for this function:

Here is the caller graph for this function:

void geo.point.icc ( Cercle  c1,
Cercle  c2,
double  signe 
) [inline, private]

Definition at line 124 of file point.java.

  { if (defini = c1.defini && c2.defini)
                   { double a1 = -2.0 * c1.xo ; double b1 = -2.0 * c1.yo ;
                  double a2 = -2.0 * c2.xo ; double b2 = -2.0 * c2.yo ;
                  double a12 = a1 - a2 ; double b12 = b1 - b2 ;
                  double a = a12 * a12 + b12 * b12 ;
                  if (defini = (a != 0.0))
                              { double C1 = c1.xo * c1.xo + c1.yo * c1.yo - c1.r * c1.r ;
                                double C2 = c2.xo * c2.xo + c2.yo * c2.yo - c2.r * c2.r ;
                                double C12 = C1 - C2 ;
                                double b, c;
                                boolean bpga = Math.abs(b12) >= Math.abs(a12) ;
                                if (bpga)
                                   { b = 2.0 * a12 * C12 + b12 * (b1 * a2 - a1 * b2) ;
                                     c = C12 * C12 + b12 * (b1 * C2 - b2 * C1) ;
                                   }
                                else
                                   { b = 2.0 * b12 * C12 + a12 * (a1 * b2 - b1 * a2) ;
                                     c = C12 * C12 + a12 * (a1 * C2 - a2 * C1) ;
                                   }
                                double delta = b * b - 4.0 * a * c ;
                                if (defini = (delta >= 0.0))
                                            { x = -0.5 * (b + signe * Math.sqrt (delta)) / a ;
                                              if (bpga) y = - (a12 * x + C12) / b12 ;
                                              else
                                              { y = x ; x = - (b12 * x + C12) / a12 ;
                                              }
                                              majXY () ;
                                            }
                              }
                }
  }

Here is the call graph for this function:

Here is the caller graph for this function:

void geo.point.Intersection ( Droite  d1,
Droite  d2 
) [inline]

Donne l'intersection des droites d1 et d2.

Definition at line 53 of file point.java.

  { double det = d1.a * d2.b - d2.a * d1.b ;
    defini = (d1.defini) && (d2.defini) && (det != 0.0) ;
    if (defini) { x = (d2.c * d1.b - d1.c * d2.b) / det ;
                  y = (d2.a * d1.c - d1.a * d2.c) / det ;
                  majXY () ; }
  }

Here is the call graph for this function:

void geo.point.Intersection ( Segment  s1,
Segment  s2 
) [inline]

Donne l'intersection des segments s1 et s2.

Definition at line 64 of file point.java.

  { double a1 = s1.By - s1.Ay ; double b1 = s1.Ax - s1.Bx ; double c1 = s1.Ay * s1.Bx - s1.Ax * s1.By ;
    double a2 = s2.By - s2.Ay ; double b2 = s2.Ax - s2.Bx ; double c2 = s2.Ay * s2.Bx - s2.Ax * s2.By ;
    double det = a1 * b2 - a2 * b1 ;
    defini = (s1.defini) && (s2.defini) && (det != 0.0) ;
    if (defini) { x = (c2 * b1 - c1 * b2) / det ;
                  y = (a2 * c1 - a1 * c2) / det ;
                  majXY () ; }
  }

Here is the call graph for this function:

void geo.point.Intersection1 ( Droite  d,
Cercle  c 
) [inline]

Donne le premier point d'intersection, s'il existe, de la droite d et du cercle c.

Definition at line 78 of file point.java.

  { i12 (d, c, 1.0) ; }

Here is the call graph for this function:

void geo.point.Intersection1 ( Cercle  c1,
Cercle  c2 
) [inline]

Donne le premier point d'intersection de deux cercles quand celui-ci existe.

Definition at line 113 of file point.java.

  { icc (c1, c2, 1.0) ; }

Here is the call graph for this function:

void geo.point.Intersection2 ( Droite  d,
Cercle  c 
) [inline]

Donne le second point d'intersection, s'il existe, de la Droite d et du Cercle c.

Definition at line 86 of file point.java.

  { i12 (d, c, -1.0) ; }

Here is the call graph for this function:

void geo.point.Intersection2 ( Cercle  c1,
Cercle  c2 
) [inline]

Donne le second point d'intersection de 2 Cercles quand celui-ci existe.

Definition at line 121 of file point.java.

  { icc (c1, c2, -1.0) ; }

Here is the call graph for this function:

void geo.pt.majXY ( ) [inline, inherited]

Met à jour la position (X, Y) du point à l'aide des coordonnées (x, y).

Definition at line 74 of file pt.java.

  { X = R.Iabs (x) ; Y = R.Iord (y) ; }

Here is the call graph for this function:

Here is the caller graph for this function:

void geo.point.Milieu ( Segment  s) [inline]

Donne le milieu du Segment s.

Definition at line 44 of file point.java.

  { defini = s.defini ;
    if (defini) { x = (s.Ax + s.Bx) / 2.0 ; y = (s.Ay + s.By) / 2.0 ; majXY () ; }
  }

Here is the call graph for this function:

void geo.pt.Milieu ( pt  A,
pt  B 
) [inline, inherited]

Positionnement du point au milieu du bi-point AB.

Definition at line 82 of file pt.java.

  { x = (A.x + B.x) / 2.0 ; y = (A.y + B.y) / 2.0 ;
    majXY () ;
    defini = A.defini && B.defini ; }

Here is the call graph for this function:

void geo.pt.point ( double  x,
double  y 
) [inline, inherited]

Redéfinit le point par des coordonnées (x, y).

Definition at line 161 of file pt.java.

  { this.x = x ; this.y = y ; majXY () ; defini = true ; }

Here is the call graph for this function:

void geo.pt.point ( ) [inline, inherited]

Redéfinit le point.

Reimplemented in geo.pointlibre, geo.PointSurCercle, and geo.PointSurDroite.

Definition at line 168 of file pt.java.

  { majXY () ; }

Here is the call graph for this function:

void geo.point.Projection ( pt  A,
Droite  d 
) [inline]

Donne le projeté d'un point sur une Droite.

Definition at line 170 of file point.java.

  { defini = A.defini && d.defini ;
    if (defini) { double u = (d.a * A.x + d.b * A.y + d.c) / (d.a * d.a + d.b * d.b) ;
                  x = A.x - u * d.a ; y = A.y - u * d.b ;
                  majXY () ;
                }
  }

Here is the call graph for this function:

Here is the caller graph for this function:

void geo.point.Projection ( pt  A,
Segment  s 
) [inline]

Donne le projeté d'un point sur un segment (le point peut être à l'extérieur du segment).

Definition at line 182 of file point.java.

  { double a, b ;
    a = s.Ay - s.By ; b = s.Bx - s.Ax ;
    defini = A.defini && ((a != 0.0) || (b != 0.0)) ;
    if (defini) { double c = - (a * s.Ax + b * s.Ay) ;
                  double u = (a * A.x + b * A.y + c) / (a * a + b * b) ;
                  x = A.x - u * a ; y = A.y - u * b ;
                  majXY () ;
                }
  }

Here is the call graph for this function:

void geo.pt.Rotation ( pt  A,
pt  O,
double  a 
) [inline, inherited]

Donne l'image du point A par la rotation de centre O et d'angle a.

Definition at line 100 of file pt.java.

   { defini = A.defini && O.defini ;
     if (defini) { double OAx = A.x - O.x ;
                   double OAy = A.y - O.y ;
                   double cosa = Math.cos (a) ;
                   double sina = Math.sin (a) ;
                   x = O.x + cosa * OAx - sina * OAy ;
                   y = O.y + sina * OAx + cosa * OAy ;
                   majXY () ;
                 }
   }

Here is the call graph for this function:

Here is the caller graph for this function:

void geo.point.Rotation1 ( pt  A,
pt  O,
ArcDeCercle  ARC 
) [inline]

Donne l'image de A par la rotation de centre O et d'angle correspondant à l'arc de cercle ARC.

Definition at line 216 of file point.java.

  { if (defini = ARC.defini) Rotation (A, O, ARC.b) ;
  }

Here is the call graph for this function:

void geo.pt.Symetrique ( pt  A,
pt  C 
) [inline, inherited]

Point sur le symétrique de A par rapport au point C.

Definition at line 91 of file pt.java.

  { defini = A.defini && C.defini ;
    if (defini) { x = 2.0 * C.x - A.x ; y = 2.0 * C.y - A.y ; majXY () ; }
  }

Here is the call graph for this function:

void geo.point.Symetrique ( pt  A,
Droite  d 
) [inline]

Donne le symétrique de A par rapport à la droite d.

Definition at line 197 of file point.java.

  { double Ax = A.x ; double Ay = A.y ; Projection (A, d) ;
    if (defini) { x = 2.0 * x - Ax ; y = 2.0 * y - Ay ; majXY () ; }
  }

Here is the call graph for this function:

void geo.point.Symetrique ( pt  A,
Segment  s 
) [inline]

Donne le symétrique de A par rapport au segment s.

Definition at line 207 of file point.java.

  { double Ax = A.x ; double Ay = A.y ; Projection (A, s) ;
    if (defini) { x = 2.0 * x - Ax ; y = 2.0 * y - Ay ; majXY () ; }
  }

Here is the call graph for this function:

void geo.pt.trace ( Graphics  g) [inline, inherited]

Trace ou efface le point.

Reimplemented from geo.ObjetRepere.

Definition at line 146 of file pt.java.

  { if (defini) { g.fillRect (X - 1, Y - 1, 3, 3);
                  if (Nom.length () != 0) g.drawString (Nom, X + 3, Y - 3); } }

Here is the caller graph for this function:

void geo.pt.traceNom ( Graphics  g) [inline, inherited]

Trace ou efface uniquement le Nom du point.

Definition at line 154 of file pt.java.

  { if (defini && (Nom.length () != 0)) g.drawString (Nom, X + 3, Y - 3) ; }
void geo.point.Translation ( pt  A,
Vecteur  v 
) [inline]

Donne l'image du point A par la translation de vecteur v.

Definition at line 247 of file point.java.

   { defini = A.defini && v.defini ;
     if (defini)
       { x = A.x + v.x ; y = A.y + v.y ;
         majXY () ;
       }
   }

Here is the call graph for this function:

boolean geo.pt.zone ( int  X,
int  Y 
) [inline, inherited]

teste si la souris est proche du point libre, retourne alors deplace = true

Reimplemented from geo.ObjetRepere.

Reimplemented in geo.pointlibre.

Definition at line 139 of file pt.java.

  { return ((X >=  this.X - 2) && (X <= this.X + 2) && (Y >= this.Y - 2) && (Y <= this.Y + 2)) ; }

Member Data Documentation

Existence de l'objet.

Definition at line 22 of file ObjetRepere.java.

String geo.ObjetRepere.Nom [inherited]

Nom de l'objet.

Definition at line 28 of file ObjetRepere.java.

Repere associé.

Definition at line 16 of file ObjetRepere.java.

int geo.pt.X [inherited]

Position du point sur l'écran.

Definition at line 21 of file pt.java.

double geo.pt.x [inherited]

Abscisse du point.

Definition at line 27 of file pt.java.

int geo.pt.Y [package, inherited]

Definition at line 21 of file pt.java.

double geo.pt.y [inherited]

Ordonnée du point.

Definition at line 33 of file pt.java.


The documentation for this class was generated from the following file: