galaxiia.jeu
Class Outils

java.lang.Object
  extended by galaxiia.jeu.Outils

public abstract class Outils
extends Object


Field Summary
static double[] POINT_EXTERIEUR_TOUS_POLYGONES
           
static double PRECISION_MAXIMUM
           
 
Constructor Summary
Outils()
           
 
Method Summary
static double[] addition(double[] u, double[] v)
          Ajoute deux vecteurs.
static boolean confondu(double[] A, double[] B)
          Dit si deux points sont confondus.
static String conversionPointString(double[] A)
           
static boolean detectionCollision(double[] position11, double[] position12, double rayon1, double[] position21, double[] position22, double rayon2)
           
static double distance(double[] A, double[] B)
          Calcul la distance entre deux points.
static double distanceBordCarte(InformateurTerrain terrain, double[] position)
           
static double distanceCarre(double[] A, double[] B)
          Calcul la distance au carré entre deux points.
static double distanceMurPlusProche(InformateurTerrain terrain, double[] position)
           
static double distancePolygone(double[][][] segmentsPolygone, double[] point)
           
static double distanceSegment(double[][] segment, double[] point)
           
static boolean elementDansTableau(int[] tableau, int element)
           
static double[] equationDroite(double[][] segment)
          Donne l'équation d'une droite définie par un segment.
static double[] equationDroite(double[] A, double[] B)
          Calcul l'équation d'une droite passant par deux points.
static boolean estComprisEntre(double a, double min, double max)
          Dit si un nombre est compris entre deux autres.
static boolean estNul(double a)
          Dit si un nombre est considéré comme nul.
static boolean estVecteurNul(double[] v)
          Dit si un vecteur peut être considéré comme nul, d'un point de vue Mathématique.
static double[][] fermeturePolygone(double[][] positionsSommets)
          Ferme le polygone en rajoutant le premier point à la fin du tableau de points.
static int indexMinimum(double[] tableau)
          Donne l'index du minimum d'un tableau.
static double[] intersectionDroite(double[][] segment1, double[][] segment2)
           
static double[] intersectionDroite(double[] droite1, double[] droite2)
          Donne le point d'intersection de deux droites.
static double minimum(double[] tableau)
          Donne le minimum d'un tableau.
static double[] normalisation(double[] v, double normeCarre)
          Normalise un vecteur.
static double normeCarre(double[] v)
          Calcul de la norme au carré d'un vecteur.
static boolean pointDansCarre(double[][] segment, double[] A)
          Dit si un point est contenu dans un carré dont on connait une diagonale.
static boolean pointInterneMur(InformateurTerrain terrain, double[] A)
          Dit si un point est à l'intérieur d'un mur d'un terrain.
static boolean pointInternePolygone(double[][] positionsSommets, double[] A)
          Dit si un point est à l'intérieur d'un polygone.
static double[][] pointIntersectionBordCarte(double[] droite, InformateurTerrain terrain)
           
static double[][] pointsPositionnesSurUneDroiteAUneDistanceDUneAutreDroite(double[] droite2, double[] droite1, double distance)
           
static double produitScalaire(double[] u, double[] v)
          Donne le produit scalaire entre deux vecteurs.
static double produitScalaire(double[] A, double[] B, double[] C)
          Donne le produit scalaire entre deux vecteurs.
static double[] produitVecteurDouble(double[] vecteur, double k)
           
static double[] projectionOrthogonale(double[] droite, double[] point)
           
static double[] resolutionPolynomeSecondDegre(double[] constantesPolynome)
           
static boolean segmentCoupeMur(InformateurTerrain terrain, double[][] segment)
           
static boolean segmentsCroises(double[][] segment1, double[][] segment2)
           
static boolean segmentsCroisesStricts(double[][] segment1, double[][] segment2)
           
static boolean sontEgaux(double a, double b)
          Dis si deux nombres sont considérés comme égaux.
static double[] soustraction(double[] u, double[] v)
          Soustrait deux vecteurs.
static double valeurCarre(double a)
          Donne le carré d'un nombre.
static double[] vecteur(double[] A, double[] B)
          Calcul un vecteur.
static double[] vecteurNul()
          Donne un vecteur nul Mathématiquement.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

POINT_EXTERIEUR_TOUS_POLYGONES

public static final double[] POINT_EXTERIEUR_TOUS_POLYGONES

PRECISION_MAXIMUM

public static final double PRECISION_MAXIMUM
See Also:
Constant Field Values
Constructor Detail

Outils

public Outils()
Method Detail

fermeturePolygone

public static final double[][] fermeturePolygone(double[][] positionsSommets)
                                          throws NullPointerException
Ferme le polygone en rajoutant le premier point à la fin du tableau de points.

Parameters:
positionsSommets - La position des sommets du polygone.
Returns:
Le nouveau tableau avec un point supplémentaire.
Throws:
NullPointerException - Si le tableau de point passé en argument vaut null;

soustraction

public static final double[] soustraction(double[] u,
                                          double[] v)
Soustrait deux vecteurs.

Parameters:
u - Un vecteur u.
v - Un vecteur v.
Returns:
Le vecteur u - v.
Throws:
NullPointerException - Si l'un des deux vecteurs passés en argument vaut null.
IllegalArgumentException - Si l'un des deux vecteurs passés en argument n'est pas de dimension 2.

addition

public static final double[] addition(double[] u,
                                      double[] v)
Ajoute deux vecteurs.

Parameters:
u - Un vecteur u.
v - Un vecteur v.
Returns:
Le vecteur u + v.
Throws:
NullPointerException - Si l'un des deux vecteurs passés en argument vaut null.
IllegalArgumentException - Si l'un des deux vecteurs passés en argument n'est pas de dimension 2.

vecteur

public static final double[] vecteur(double[] A,
                                     double[] B)
Calcul un vecteur.

Parameters:
A - Un point A.
B - Un point B.
Returns:
Le vecteur AB, ou le vecteur nul si A et B sont considérés comme confondus.
Throws:
NullPointerException - Si l'un des points passés en argument vaut null.
IllegalArgumentException - Si l'un des points passés en argument n'est pas de taille 2.

vecteurNul

public static final double[] vecteurNul()
Donne un vecteur nul Mathématiquement.

Returns:
Un vecteur nul Mathématiquement.

equationDroite

public static final double[] equationDroite(double[] A,
                                            double[] B)
Calcul l'équation d'une droite passant par deux points.

Parameters:
A - Un point A.
B - Un point B.
Returns:
L'équation de la droite passant par A et par B.
Throws:
NullPointerException - Si l'un des points passés en argument vaut null.
IllegalArgumentException - Si l'un des points passés en argument n'est pas de taille 2, ou si les deux points sont trop proches pour établir l'équation de la droite.

normalisation

public static final double[] normalisation(double[] v,
                                           double normeCarre)
Normalise un vecteur. Attention, cette oppération est assez lente car elle effectue une racine carré.

Parameters:
v - Un vecteur v.
normeCarre - Un nombre.
Returns:
Un nouveau vecteur v à la norme demandée, ou un vecteur nul si la norme est trop faible ou le vecteur v est nul.
Throws:
NullPointerException - Si le vecteur passé en argument vaut null.
IllegalArgumentException - Si normeCarre est négative ou si le vecteur passé en argument n'est pas de taille 2.

equationDroite

public static final double[] equationDroite(double[][] segment)
Donne l'équation d'une droite définie par un segment.

Parameters:
segment - Le segment.
Returns:
L'équation de la droite passant par les deux points du segment.
Throws:
NullPointerException - Si le segment passé en argument vaut null.
IllegalArgumentException - Si le segment passé en argument n'est pas de taille convenable.

intersectionDroite

public static double[] intersectionDroite(double[] droite1,
                                          double[] droite2)
Donne le point d'intersection de deux droites.

Parameters:
droite1 - L'équation d'une droite.
droite2 - L'équation d'une autre droite.
Returns:
Le point d'intersection des deux droite ou null si elles sont parallèles.
Throws:
NullPointerException - Si l'une des équations de droite vaut null.
IllegalArgumentException - Si l'une des équations de droite n'est pas de taille 3.

distance

public static final double distance(double[] A,
                                    double[] B)
Calcul la distance entre deux points. Attention, cette méthode effectue une racine carré, elle est donc plutôt lente.

Parameters:
A - Un point A.
B - Un point B.
Returns:
La distance AB.
Throws:
NullPointerException - Si l'un des points passés en argument vaut null.
IllegalArgumentException - Si l'un des points passés en argument n'est pas de taille 2.

distanceCarre

public static final double distanceCarre(double[] A,
                                         double[] B)
Calcul la distance au carré entre deux points.

Parameters:
A - Un point A.
B - Un point B.
Returns:
La distance AB au carré.
Throws:
NullPointerException - Si l'un des points passés en argument vaut null.
IllegalArgumentException - Si l'un des points passés en argument n'est pas de taille 2.

produitScalaire

public static final double produitScalaire(double[] u,
                                           double[] v)
Donne le produit scalaire entre deux vecteurs.

Parameters:
u - Le premier vecteur.
v - Le second vecteur.
Returns:
Le produit scalaire u . v
Throws:
NullPointerException - Si l'un des vecteurs passés en argument vaut null;
IllegalArgumentException - Si l'un des vecteurs passés en argument n'est pas de taille 2.

produitScalaire

public static final double produitScalaire(double[] A,
                                           double[] B,
                                           double[] C)
Donne le produit scalaire entre deux vecteurs.

Parameters:
A - Le point A.
B - Le point B.
C - Le point C.
Returns:
Le prouduit scalaire AB . AC
Throws:
NullPointerException - Si l'un des points passés en argument vaut null.
IllegalArgumentException - Si l'un des points passés en argument n'est pas de taille 2.

valeurCarre

public static final double valeurCarre(double a)
Donne le carré d'un nombre.

Parameters:
a - Un nombre a.
Returns:
Le nombre a².

normeCarre

public static final double normeCarre(double[] v)
Calcul de la norme au carré d'un vecteur.

Parameters:
v - Un vecteur v.
Returns:
La norme au carré du vecteur v.
Throws:
NullPointerException - Si le vecteur passé en argument vaut null.
IllegalArgumentException - Si le vecteur passé en argument n'est pas de taille 2.

minimum

public static final double minimum(double[] tableau)
Donne le minimum d'un tableau.

Parameters:
tableau - Un tableau de double.
Returns:
Le minimum du tableau.
Throws:
NullPointerException - Si le tableau passé en arguement vaut null;

indexMinimum

public static final int indexMinimum(double[] tableau)
Donne l'index du minimum d'un tableau.

Parameters:
tableau - Un tableau de double.
Returns:
L'index du minimum du tableau. En cas d'une égalité, c'est l'index du premier élément qui est retourné.
Throws:
NullPointerException - Si le tableau passé en arguement vaut null;

estVecteurNul

public static final boolean estVecteurNul(double[] v)
Dit si un vecteur peut être considéré comme nul, d'un point de vue Mathématique. Un vecteur est considéré comme nul si ces deux composantes sont considérées comme nul.

Parameters:
v - Le vecteur à analyser.
Returns:
true si le vecteur v est considéré comme nul, false sinon.
Throws:
NullPointerException - Si le vecteur passé en argument vaut null.
IllegalArgumentException - Si le vecteur passé en argument n'est pas de taille 2.

detectionCollision

public static final boolean detectionCollision(double[] position11,
                                               double[] position12,
                                               double rayon1,
                                               double[] position21,
                                               double[] position22,
                                               double rayon2)

estNul

public static final boolean estNul(double a)
Dit si un nombre est considéré comme nul.

Parameters:
a - Un nombre a.
Returns:
true si a est considéré comme nul, false sinon.

sontEgaux

public static final boolean sontEgaux(double a,
                                      double b)
Dis si deux nombres sont considérés comme égaux.

Parameters:
a - Un nombre a.
b - Un nombre b.
Returns:
true si les deux nombres sont considérés comme égaux.

confondu

public static final boolean confondu(double[] A,
                                     double[] B)
                              throws NullPointerException,
                                     IllegalArgumentException
Dit si deux points sont confondus.

Parameters:
A - Un point A.
B - Un point B.
Returns:
true si ils sont confondus, false sinon.
Throws:
NullPointerException - Si l'un des points passés en argument vaut null.
IllegalArgumentException - Si l'un des points passés en argument n'est pas de taille 2.

pointInterneMur

public static final boolean pointInterneMur(InformateurTerrain terrain,
                                            double[] A)
Dit si un point est à l'intérieur d'un mur d'un terrain.

Parameters:
terrain - Le terrain.
point - Un point A.
Returns:
true si le point est à l'intérieur d'un des murs du terrain, false sinon.
Throws:
NullPointerException - Si le terrain ou le point passé en argument vaut null;
IllegalArgumentException - Si le point A n'est pas de taille 2.

estComprisEntre

public static final boolean estComprisEntre(double a,
                                            double min,
                                            double max)
Dit si un nombre est compris entre deux autres.

Parameters:
a - Un nombre a.
min - Le minimum que a doit avoir.
max - Le maximum que a doit avoir.
Returns:
true si le a est compris entre min et max.
Throws:
IllegalArgumentException - Si min et supérieur à max.

pointDansCarre

public static final boolean pointDansCarre(double[][] segment,
                                           double[] A)
Dit si un point est contenu dans un carré dont on connait une diagonale.

Parameters:
segment - La diagonale du carré.
A - Un point A.
Returns:
true si A est à l'intérieur du carré dont la diagonale est le segment, false sinon.
Throws:
NullPointerException - Si le segment ou le point passé en argument vaut null.
IllegalArgumentException - Si le segment ou le point passé en argument est de dimension incohérente.

pointInternePolygone

public static final boolean pointInternePolygone(double[][] positionsSommets,
                                                 double[] A)
Dit si un point est à l'intérieur d'un polygone.

Parameters:
positionsSommets - Le sommet du polygone fermé.
A - Le point à tester.
Returns:
true si le point est à l'intérieur du polygone.
Throws:
NullPointerException - Si l'une des données passées en argument vaut null;
IllegalArgumentException - Si le point A n'est pas de taille 2, si l'un des points du polygone est incorect ou si le polygone n'est pas fermé.

intersectionDroite

public static final double[] intersectionDroite(double[][] segment1,
                                                double[][] segment2)

segmentsCroisesStricts

public static final boolean segmentsCroisesStricts(double[][] segment1,
                                                   double[][] segment2)

segmentsCroises

public static final boolean segmentsCroises(double[][] segment1,
                                            double[][] segment2)
                                     throws NullPointerException,
                                            IllegalArgumentException
Throws:
NullPointerException
IllegalArgumentException

distancePolygone

public static final double distancePolygone(double[][][] segmentsPolygone,
                                            double[] point)
                                     throws NullPointerException,
                                            IllegalArgumentException
Throws:
NullPointerException
IllegalArgumentException

distanceSegment

public static final double distanceSegment(double[][] segment,
                                           double[] point)

projectionOrthogonale

public static final double[] projectionOrthogonale(double[] droite,
                                                   double[] point)

distanceBordCarte

public static double distanceBordCarte(InformateurTerrain terrain,
                                       double[] position)

distanceMurPlusProche

public static double distanceMurPlusProche(InformateurTerrain terrain,
                                           double[] position)

segmentCoupeMur

public static boolean segmentCoupeMur(InformateurTerrain terrain,
                                      double[][] segment)

pointIntersectionBordCarte

public static final double[][] pointIntersectionBordCarte(double[] droite,
                                                          InformateurTerrain terrain)

conversionPointString

public static final String conversionPointString(double[] A)

pointsPositionnesSurUneDroiteAUneDistanceDUneAutreDroite

public static final double[][] pointsPositionnesSurUneDroiteAUneDistanceDUneAutreDroite(double[] droite2,
                                                                                        double[] droite1,
                                                                                        double distance)

resolutionPolynomeSecondDegre

public static final double[] resolutionPolynomeSecondDegre(double[] constantesPolynome)

elementDansTableau

public static final boolean elementDansTableau(int[] tableau,
                                               int element)

produitVecteurDouble

public static final double[] produitVecteurDouble(double[] vecteur,
                                                  double k)