org.geotools.resources.geometry
Class ShapeUtilities

java.lang.Object
  extended by org.geotools.resources.geometry.ShapeUtilities

public final class ShapeUtilities
extends java.lang.Object

Static utilities methods. Those methods operate on geometric shapes from the java.awt.geom package.

Since:
2.0
Version:
$Id: ShapeUtilities.java 30641 2008-06-12 17:42:27Z acuster $
Author:
Martin Desruisseaux (IRD)

Field Summary
static int HORIZONTAL
          Constante pour les calculs de paraboles.
static int PARALLEL
          Constante pour les calculs de paraboles.
 
Method Summary
static java.awt.geom.Point2D circleCentre(double x1, double y1, double x2, double y2, double x3, double y3)
          Retourne la coordonnée centrale d'un cercle passant pas les trois points spécifiés.
static java.awt.geom.Point2D colinearPoint(double x1, double y1, double x2, double y2, double x, double y, double distance)
          Retourne le point sur le segment de droite (x1,y1)-(x2,y2) qui se trouve à la distance distance spécifiée du point point.
static java.awt.geom.Point2D colinearPoint(java.awt.geom.Line2D line, java.awt.geom.Point2D point, double distance)
          Retourne le point sur le segment de droite line qui se trouve à la distance distance spécifiée du point point.
static java.awt.geom.Ellipse2D fitCircle(java.awt.geom.Point2D P1, java.awt.geom.Point2D P2, java.awt.geom.Point2D P3)
          Retourne un cercle qui passe par chacun des trois points spécifiés.
static java.awt.geom.QuadCurve2D fitParabol(double x0, double y0, double x1, double y1, double x2, double y2, int orientation)
          Retourne une courbe quadratique passant par les trois points spécifiés.
static java.awt.geom.QuadCurve2D fitParabol(java.awt.geom.Point2D P0, java.awt.geom.Point2D P1, java.awt.geom.Point2D P2, int orientation)
          Retourne une courbe quadratique passant par les trois points spécifiés.
static double getFlatness(java.awt.Shape shape)
          Returns a suggested value for the flatness argument in Shape.getPathIterator(AffineTransform,double) for the specified shape.
static java.awt.geom.Point2D intersectionPoint(double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2)
          Retourne le point d'intersection de deux segments de droites.
static java.awt.geom.Point2D intersectionPoint(java.awt.geom.Line2D a, java.awt.geom.Line2D b)
          Retourne le point d'intersection de deux segments de droites.
static java.awt.geom.Point2D nearestColinearPoint(double x1, double y1, double x2, double y2, double x, double y)
          Retourne le point sur le segment de droite (x1,y1)-(x2,y2) qui se trouve le plus près du point (x,y) spécifié.
static java.awt.geom.Point2D nearestColinearPoint(java.awt.geom.Line2D segment, java.awt.geom.Point2D point)
          Retourne le point sur le segment de droite line qui se trouve le plus près du point point spécifié.
static java.awt.geom.Point2D parabolicControlPoint(double x0, double y0, double x1, double y1, double x2, double y2, int orientation, java.awt.geom.Point2D dest)
          Retourne le point de contrôle d'une courbe quadratique passant par les trois points spécifiés.
static java.awt.Shape toPrimitive(java.awt.Shape path)
          Tente de remplacer la forme géométrique path par une des formes standards de Java2D.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PARALLEL

public static final int PARALLEL
Constante pour les calculs de paraboles. Cette constante indique que l'axe des x de la parabole doit être parallèle à la droite joignant les points P0 et P2.

See Also:
Constant Field Values

HORIZONTAL

public static final int HORIZONTAL
Constante pour les calculs de paraboles. Cette constante indique que l'axe des x de la parabole doit être horizontale, quelle que soit la pente de la droite joignant les points P0 et P2.

See Also:
Constant Field Values
Method Detail

intersectionPoint

public static java.awt.geom.Point2D intersectionPoint(java.awt.geom.Line2D a,
                                                      java.awt.geom.Line2D b)
Retourne le point d'intersection de deux segments de droites. Cette méthode ne prolonge pas les segments de droites à l'infini. Si les deux segments ne s'interceptent pas (soit par ce qu'ils sont parallèles, ou soit parce qu'ils ne se prolongent pas assez loin pour se toucher), alors cette méthode retourne null.

Parameters:
a - Première ligne.
b - Deuxième ligne.
Returns:
Si une intersection fut trouvée, les coordonnées de cette intersection. Si aucune intersection n'a été trouvée, alors cette méthode retourne null.

intersectionPoint

public static java.awt.geom.Point2D intersectionPoint(double ax1,
                                                      double ay1,
                                                      double ax2,
                                                      double ay2,
                                                      double bx1,
                                                      double by1,
                                                      double bx2,
                                                      double by2)
Retourne le point d'intersection de deux segments de droites. Cette méthode ne prolonge pas les segments de droites à l'infini. Si les deux segments ne s'interceptent pas (soit par ce qu'ils sont parallèles, ou soit parce qu'ils ne se prolongent pas assez loin pour se toucher), alors cette méthode retourne null.

Parameters:
ax1 - x value of the first point on the first line.
ay1 - y value of the first point on the first line.
ax2 - x value of the last point on the first line.
ay2 - y value of the last point on the first line.
bx1 - x value of the first point on the second line.
by1 - y value of the first point on the second line.
bx2 - x value of the last point on the second line.
by2 - y value of the last point on the second line.
Returns:
Si une intersection fut trouvée, les coordonnées de cette intersection. Si aucune intersection n'a été trouvée, alors cette méthode retourne null.

nearestColinearPoint

public static java.awt.geom.Point2D nearestColinearPoint(java.awt.geom.Line2D segment,
                                                         java.awt.geom.Point2D point)
Retourne le point sur le segment de droite line qui se trouve le plus près du point point spécifié. Appellons result le point retourné par cette méthode. Il est garanti que result répond aux conditions suivantes (aux erreurs d'arrondissements près):

Parameters:
segment - The line on which to search for a point.
point - A point close to the given line.
Returns:
The nearest point on the given line.
See Also:
colinearPoint(Line2D, Point2D, double)

nearestColinearPoint

public static java.awt.geom.Point2D nearestColinearPoint(double x1,
                                                         double y1,
                                                         double x2,
                                                         double y2,
                                                         double x,
                                                         double y)
Retourne le point sur le segment de droite (x1,y1)-(x2,y2) qui se trouve le plus près du point (x,y) spécifié. Appellons result le point retourné par cette méthode. Il est garanti que result répond aux conditions suivantes (aux erreurs d'arrondissements près):

Parameters:
x1 - x value of the first point on the line.
y1 - y value of the first point on the line.
x2 - x value of the last point on the line.
y2 - y value of the last point on the line.
x - x value of a point close to the given line.
y - y value of a point close to the given line.
Returns:
The nearest point on the given line.
See Also:
colinearPoint(double,double , double,double , double,double , double)

colinearPoint

public static java.awt.geom.Point2D colinearPoint(java.awt.geom.Line2D line,
                                                  java.awt.geom.Point2D point,
                                                  double distance)
Retourne le point sur le segment de droite line qui se trouve à la distance distance spécifiée du point point. Appellons result le point retourné par cette méthode. Si result est non-nul, alors il est garanti qu'il répond aux conditions suivantes (aux erreurs d'arrondissements près): Si aucun point ne peut répondre à ces conditions, alors cette méthode retourne null. Si deux points peuvent répondre à ces conditions, alors par convention cette méthode retourne le point le plus près du point line.getP1().

Parameters:
line - The line on which to searh for a point.
point - A point close to the given line.
distance - The distance between the given point and the point to be returned.
Returns:
A point on the given line located at the given distance from the given point.
See Also:
nearestColinearPoint(Line2D, Point2D)

colinearPoint

public static java.awt.geom.Point2D colinearPoint(double x1,
                                                  double y1,
                                                  double x2,
                                                  double y2,
                                                  double x,
                                                  double y,
                                                  double distance)
Retourne le point sur le segment de droite (x1,y1)-(x2,y2) qui se trouve à la distance distance spécifiée du point point. Appellons result le point retourné par cette méthode. Si result est non-nul, alors il est garantit qu'il répond aux conditions suivantes (aux erreurs d'arrondissements près): Si aucun point ne peut répondre à ces conditions, alors cette méthode retourne null. Si deux points peuvent répondre à ces conditions, alors par convention cette méthode retourne le point le plus près du point (x1,y1).

Parameters:
x1 - x value of the first point on the line.
y1 - y value of the first point on the line.
x2 - x value of the last point on the line.
y2 - y value of the last point on the line.
x - x value of a point close to the given line.
y - y value of a point close to the given line.
distance - The distance between the given point and the point to be returned.
Returns:
A point on the given line located at the given distance from the given point.
See Also:
nearestColinearPoint(double,double , double,double , double,double)

fitParabol

public static java.awt.geom.QuadCurve2D fitParabol(java.awt.geom.Point2D P0,
                                                   java.awt.geom.Point2D P1,
                                                   java.awt.geom.Point2D P2,
                                                   int orientation)
                                            throws java.lang.IllegalArgumentException
Retourne une courbe quadratique passant par les trois points spécifiés. Il peut exister une infinité de courbes quadratiques passant par trois points. On peut voir les choses en disant qu'une courbe quadratique correspond à une parabole produite par une équation de la forme y=ax²+bx+c, mais que l'axe des x de cette équation n'est pas nécessairement horizontal. La direction de cet axe des x dépend du paramètre orientation spécifié à cette méthode. La valeur HORIZONTAL signifie que l'axe des x de la parabole sera toujours horizontal. La courbe quadratique produite ressemblera alors à une parabole classique telle qu'on en voit dans les ouvrages de mathématiques élémentaires. La valeur PARALLEL indique plutôt que l'axe des x de la parabole doit être parallèle à la droite joignant les points P0 et P2. Ce dernier type produira le même résultat que HORIZONTAL si P0.y==P2.y.

Parameters:
P0 - Premier point de la courbe quadratique.
P1 - Point par lequel la courbe quadratique doit passer. Il n'est pas obligatoire que ce point soit situé entre P0 et P1. Toutefois, il ne doit pas être colinéaire avec P0 et P1.
P2 - Dernier point de la courbe quadratique.
orientation - Orientation de l'axe des x de la parabole: PARALLEL ou HORIZONTAL.
Returns:
Une courbe quadratique passant par les trois points spécifiés. La courbe commencera au point P0 et se terminera au point P2. Si deux points ont des coordonnées presque identiques, ou si les trois points sont colinéaires, alors cette méthode retourne null.
Throws:
java.lang.IllegalArgumentException - si l'argument orientation n'est pas une des constantes valides.

fitParabol

public static java.awt.geom.QuadCurve2D fitParabol(double x0,
                                                   double y0,
                                                   double x1,
                                                   double y1,
                                                   double x2,
                                                   double y2,
                                                   int orientation)
                                            throws java.lang.IllegalArgumentException
Retourne une courbe quadratique passant par les trois points spécifiés. Il peut exister une infinité de courbes quadratiques passant par trois points. On peut voir les choses en disant qu'une courbe quadratique correspond à une parabole produite par une équation de la forme y=ax²+bx+c, mais que l'axe des x de cette équation n'est pas nécessairement horizontal. La direction de cet axe des x dépend du paramètre orientation spécifié à cette méthode. La valeur HORIZONTAL signifie que l'axe des x de la parabole sera toujours horizontal. La courbe quadratique produite ressemblera alors à une parabole classique telle qu'on en voit dans les ouvrages de mathématiques élémentaires. La valeur PARALLEL indique plutôt que l'axe des x de la parabole doit être parallèle à la droite joignant les points (x0,y0) et (x2,y2). Ce dernier type produira le même résultat que HORIZONTAL si y0==y2.

Parameters:
x0 - x value of the first point.
y0 - y value of the first point.
x1 - x value of the second point.
y1 - y value of the second point.
x2 - x value of the third point.
y2 - y value of the third point.
orientation - Orientation de l'axe des x de la parabole: PARALLEL ou HORIZONTAL.
Returns:
Une courbe quadratique passant par les trois points spécifiés. La courbe commencera au point (x0,y0) et se terminera au point (x2,y2). Si deux points ont des coordonnées presque identiques, ou si les trois points sont colinéaires, alors cette méthode retourne null.
Throws:
java.lang.IllegalArgumentException - si l'argument orientation n'est pas une des constantes valides.

parabolicControlPoint

public static java.awt.geom.Point2D parabolicControlPoint(double x0,
                                                          double y0,
                                                          double x1,
                                                          double y1,
                                                          double x2,
                                                          double y2,
                                                          int orientation,
                                                          java.awt.geom.Point2D dest)
                                                   throws java.lang.IllegalArgumentException
Retourne le point de contrôle d'une courbe quadratique passant par les trois points spécifiés. Il peut exister une infinité de courbes quadratiques passant par trois points. On peut voir les choses en disant qu'une courbe quadratique correspond à une parabole produite par une équation de la forme y=ax²+bx+c, mais que l'axe des x de cette équation n'est pas nécessairement horizontal. La direction de cet axe des x dépend du paramètre orientation spécifié à cette méthode. La valeur HORIZONTAL signifie que l'axe des x de la parabole sera toujours horizontal. La courbe quadratique produite ressemblera alors à une parabole classique telle qu'on en voit dans les ouvrages de mathématiques élémentaires. La valeur PARALLEL indique plutôt que l'axe des x de la parabole doit être parallèle à la droite joignant les points (x0,y0) et (x2,y2). Ce dernier type produira le même résultat que HORIZONTAL si y0==y2.

Parameters:
x0 - x value of the first point.
y0 - y value of the first point.
x1 - x value of the second point.
y1 - y value of the second point.
x2 - x value of the third point.
y2 - y value of the third point.
orientation - Orientation de l'axe des x de la parabole: PARALLEL ou HORIZONTAL.
dest - Where to store the control point.
Returns:
Le point de contrôle d'une courbe quadratique passant par les trois points spécifiés. La courbe commencera au point (x0,y0) et se terminera au point (x2,y2). Si deux points ont des coordonnées presque identiques, ou si les trois points sont colinéaires, alors cette méthode retourne null.
Throws:
java.lang.IllegalArgumentException - si l'argument orientation n'est pas une des constantes valides.

fitCircle

public static java.awt.geom.Ellipse2D fitCircle(java.awt.geom.Point2D P1,
                                                java.awt.geom.Point2D P2,
                                                java.awt.geom.Point2D P3)
Retourne un cercle qui passe par chacun des trois points spécifiés.

Parameters:
P1 - The first point.
P2 - The second point.
P3 - The third point.
Returns:
A circle passing by the given points.

circleCentre

public static java.awt.geom.Point2D circleCentre(double x1,
                                                 double y1,
                                                 double x2,
                                                 double y2,
                                                 double x3,
                                                 double y3)
Retourne la coordonnée centrale d'un cercle passant pas les trois points spécifiés. La distance entre le point retourné et n'importe quel des points (x1,y1), (x2,y2), (x3,y3) sera constante; ce sera le rayon d'un cercle centré au point retourné et passant par les trois points spécifiés.

Parameters:
x1 - x value of the first point.
y1 - y value of the first point.
x2 - x value of the second point.
y2 - y value of the second point.
x3 - x value of the third point.
y3 - y value of the third point.
Returns:
A circle passing by the given points.

toPrimitive

public static java.awt.Shape toPrimitive(java.awt.Shape path)
Tente de remplacer la forme géométrique path par une des formes standards de Java2D. Par exemple, si path ne contient qu'un simple segment de droite ou une courbe quadratique, alors cette méthode retournera un objet Line2D ou QuadCurve2D respectivement.

Parameters:
path - Forme géométrique à simplifier (généralement un objet GeneralPath).
Returns:
Forme géométrique standard, ou path si aucun remplacement n'est proposé.

getFlatness

public static double getFlatness(java.awt.Shape shape)
Returns a suggested value for the flatness argument in Shape.getPathIterator(AffineTransform,double) for the specified shape.

Parameters:
shape - The shape for which to compute a flatness factor.
Returns:
The suggested flatness factor.


Copyright © 1996-2010 Geotools. All Rights Reserved.