es.prodevelop.gvsig.mobile.fmap.util.graph2d
Class UtilFunctions

java.lang.Object
  extended byes.prodevelop.gvsig.mobile.fmap.util.graph2d.UtilFunctions

public class UtilFunctions
extends java.lang.Object

Author:
FJP TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Generation - Code and Comments

Constructor Summary
UtilFunctions()
           
 
Method Summary
static double absoluteAngleDistance(double angle1, double angle2)
          Devuelve la menor distancia desde angle1 a angle2.
static double angleDistance(double angle1, double angle2)
          Devuelve la distancia desde angle1 a angle2.
static java.awt.geom.Arc2D createArc(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, java.awt.geom.Point2D p3)
          Obtiene un arco a partir de 3 puntos.
static java.awt.geom.Arc2D createArc2points(java.awt.geom.Point2D center, java.awt.geom.Point2D init, java.awt.geom.Point2D end)
          Obtiene un arco a partir del centro del arco y punto inicio y punto final Suponemos un Arco definicio CCW (CounterClockWise)
static java.awt.geom.Arc2D createCircle(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, java.awt.geom.Point2D p3)
           
static double getAngle(java.awt.geom.Point2D start, java.awt.geom.Point2D end)
          Obtiene el ángulo del vector que se pasa como parámetro con el vector horizontal de izquierda a derecha
static java.awt.geom.Point2D getCenter(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, java.awt.geom.Point2D p3)
          Obtiene el centro del círculo que pasa por los tres puntos que se pasan como parámetro
static java.awt.geom.Point2D getIntersection(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, java.awt.geom.Point2D p3, java.awt.geom.Point2D p4)
          Devuelve el punto de la intersección entre las lineas p1-p2 y p3-p4.
static java.awt.geom.Point2D[] getPerpendicular(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, java.awt.geom.Point2D perp)
          Obtiene un par de puntos que definen la recta perpendicular a p1-p2 que pasa por el punto perp
static java.awt.geom.Point2D getPerpendicularPoint(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, java.awt.geom.Point2D perpPoint, double dist)
          Obtiene el punto que se encuentra a una distancia 'dist' de la recta p1-p2 y se encuentra en la recta perpendicular que pasa por perpPoint
static java.awt.geom.Point2D getPoint(java.awt.geom.Point2D p1, double an, double radio)
          Devuelve el punto a una distancia radio del punto p1 y aplicandole un ángulo an.
static java.awt.geom.Point2D getPoint(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, double radio)
          Devuelve el punto de la recta que viene dada por los puntos p1 y p2 a una distancia radio de p1.
static java.awt.geom.Point2D getUnitVector(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
          Devuelve un vector unitario en forma de punto a partir de dos puntos.
static boolean isLowAngle(java.awt.geom.Point2D antp, java.awt.geom.Point2D lastp, java.awt.geom.Point2D interp, java.awt.geom.Point2D point)
           
static void moveGeom(IGeometry geometry, double dx, double dy)
           
static void rotateGeom(IGeometry geometry, double radAngle, double basex, double basey)
           
static void scaleGeom(IGeometry geometry, java.awt.geom.Point2D basePoint, double sx, double sy)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UtilFunctions

public UtilFunctions()
Method Detail

createCircle

public static java.awt.geom.Arc2D createCircle(java.awt.geom.Point2D p1,
                                               java.awt.geom.Point2D p2,
                                               java.awt.geom.Point2D p3)

getPerpendicular

public static java.awt.geom.Point2D[] getPerpendicular(java.awt.geom.Point2D p1,
                                                       java.awt.geom.Point2D p2,
                                                       java.awt.geom.Point2D perp)
Obtiene un par de puntos que definen la recta perpendicular a p1-p2 que pasa por el punto perp

Parameters:
p1 - punto de la recta p1-p2
p2 - punto de la recta p1-p2
perp - Punto por el que pasa la recta perpendicular, debe ser distinto a p2
Returns:
Array con dos puntos que definen la recta resultante

getPerpendicularPoint

public static java.awt.geom.Point2D getPerpendicularPoint(java.awt.geom.Point2D p1,
                                                          java.awt.geom.Point2D p2,
                                                          java.awt.geom.Point2D perpPoint,
                                                          double dist)
Obtiene el punto que se encuentra a una distancia 'dist' de la recta p1-p2 y se encuentra en la recta perpendicular que pasa por perpPoint

Parameters:
p1 - Punto de la recta p1-p2
p2 - Punto de la recta p1-p2
perpPoint - Punto de la recta perpendicular
dist - Distancia del punto que se quiere obtener a la recta p1-p2
Returns:

getUnitVector

public static java.awt.geom.Point2D getUnitVector(java.awt.geom.Point2D p1,
                                                  java.awt.geom.Point2D p2)
Devuelve un vector unitario en forma de punto a partir de dos puntos.

Parameters:
p1 - punto origen.
p2 - punto destino.
Returns:
vector unitario.

getCenter

public static java.awt.geom.Point2D getCenter(java.awt.geom.Point2D p1,
                                              java.awt.geom.Point2D p2,
                                              java.awt.geom.Point2D p3)
Obtiene el centro del círculo que pasa por los tres puntos que se pasan como parámetro

Parameters:
p1 - primer punto del círculo cuyo centro se quiere obtener
p2 - segundo punto del círculo cuyo centro se quiere obtener
p3 - tercer punto del círculo cuyo centro se quiere obtener
Returns:
Devuelve null si los puntos están alineados o no son 3 puntos distintos

getIntersection

public static java.awt.geom.Point2D getIntersection(java.awt.geom.Point2D p1,
                                                    java.awt.geom.Point2D p2,
                                                    java.awt.geom.Point2D p3,
                                                    java.awt.geom.Point2D p4)
Devuelve el punto de la intersección entre las lineas p1-p2 y p3-p4.

Parameters:
p1 - punto de la recta p1-p2
p2 - punto de la recta p1-p2
p3 - punto de la recta p3-p4
p4 - punto de la recta p3-p4
Returns:
Throws:
java.lang.RuntimeException

getAngle

public static double getAngle(java.awt.geom.Point2D start,
                              java.awt.geom.Point2D end)
Obtiene el ángulo del vector que se pasa como parámetro con el vector horizontal de izquierda a derecha

Parameters:
start - punto origen del vector
end - punto destino del vector
Returns:
angulo en radianes

angleDistance

public static double angleDistance(double angle1,
                                   double angle2)
Devuelve la distancia desde angle1 a angle2. Angulo en radianes de diferencia entre angle1 y angle2 en sentido antihorario

Parameters:
angle1 - angulo en radianes. Debe ser positivo y no dar ninguna vuelta a la circunferencia
angle2 - angulo en radianes. Debe ser positivo y no dar ninguna vuelta a la circunferencia
Returns:
distancia entre los ángulos

getPoint

public static java.awt.geom.Point2D getPoint(java.awt.geom.Point2D p1,
                                             java.awt.geom.Point2D p2,
                                             double radio)
Devuelve el punto de la recta que viene dada por los puntos p1 y p2 a una distancia radio de p1.

Parameters:
p1 -
p2 -
radio -
Returns:

absoluteAngleDistance

public static double absoluteAngleDistance(double angle1,
                                           double angle2)
Devuelve la menor distancia desde angle1 a angle2.

Parameters:
angle1 - angulo en radianes. Debe ser positivo y no dar ninguna vuelta a la circunferencia
angle2 - angulo en radianes. Debe ser positivo y no dar ninguna vuelta a la circunferencia
Returns:
distancia entre los ángulos

createArc

public static java.awt.geom.Arc2D createArc(java.awt.geom.Point2D p1,
                                            java.awt.geom.Point2D p2,
                                            java.awt.geom.Point2D p3)
Obtiene un arco a partir de 3 puntos. Devuelve null si no se puede crear el arco porque los puntos están alineados o los 3 puntos no son distintos

Parameters:
p1 -
p2 -
p3 -
Returns:
Arco

createArc2points

public static java.awt.geom.Arc2D createArc2points(java.awt.geom.Point2D center,
                                                   java.awt.geom.Point2D init,
                                                   java.awt.geom.Point2D end)
Obtiene un arco a partir del centro del arco y punto inicio y punto final Suponemos un Arco definicio CCW (CounterClockWise)

Parameters:
center -
init -
end -
Returns:
Arco

getPoint

public static java.awt.geom.Point2D getPoint(java.awt.geom.Point2D p1,
                                             double an,
                                             double radio)
Devuelve el punto a una distancia radio del punto p1 y aplicandole un ángulo an. una distancia radio de p1.

Parameters:
p1 -
an -
radio -
Returns:

isLowAngle

public static boolean isLowAngle(java.awt.geom.Point2D antp,
                                 java.awt.geom.Point2D lastp,
                                 java.awt.geom.Point2D interp,
                                 java.awt.geom.Point2D point)

rotateGeom

public static void rotateGeom(IGeometry geometry,
                              double radAngle,
                              double basex,
                              double basey)

moveGeom

public static void moveGeom(IGeometry geometry,
                            double dx,
                            double dy)

scaleGeom

public static void scaleGeom(IGeometry geometry,
                             java.awt.geom.Point2D basePoint,
                             double sx,
                             double sy)