## Class Line

- Shape

- Line

La classe Line permet de manipuler des lignes de manière uniforme sur Artichow. Une ligne est composée de deux Point.

Les classes suivantes dérivent de Line :

- Vector

- Retourner voir la liste de toutes les classes

## Méthodes et propriétés

- protected Point $p1
- protected Point $p2
- private float $slope
- private float $origin

- public __construct(Point $p1, Point $p2, int $style := Line::SOLID, int $thickness := 1)
- public static build(int $x1, int $y1, int $x2, int $y2)
- public setX(int $x1, int $x2)
- public setY(int $y1, int $y2)
- public setLocation(Point $p1, Point $p2)
- public array getLocation()
- public float getSize()
- public float getSlope()
- public float getOrigin()
- public array getEquation()
- public float getXFrom(float $y)
- public float getYFrom(float $x)
- public bool isPoint()
- public bool isHorizontal()
- public bool isVertical()
- public bool isTopToBottom(Polygon $polygon)
- public bool isLeftToRight(Polygon $polygon)

## Documentation

- protected Point $p1
  Le premier point de la ligne.
  Remonter
- protected Point $p2
  Le second point de la ligne.
  Remonter
- private float $slope
  La pente (ou coefficient directeur) de la droite.
  Remonter
- private float $origin
  La valeur de l'ordonnée à l'origine de la droite.
  Remonter
- public __construct(Point $p1, Point $p2, int $style := Line::SOLID, int $thickness := 1)
  Déclare une nouvelle ligne des points $p1 à $p2. La ligne est de style $style (Line::SOLID pour une ligne continue, Line::DOTTED pour une ligne pointillée ou encore Line::DASHED) et d'épaisseur $thickness.
  Remonter
- public static build(int $x1, int $y1, int $x2, int $y2)
  Construit une ligne à partir des coordonnées ($x1, $y1) et ($x2, $y2)
  Remonter
- public setX(int $x1, int $x2)
  Change les coordonnées X des deux points de la ligne pour $x1 et $x2.
  Remonter
- public setY(int $y1, int $y2)
  Change les coordonnées Y des deux points de la ligne pour $y1 et $y2.
  Remonter
- public setLocation(Point $p1, Point $p2)
  Change l'emplacement de la ligne pour les points $p1 et $p2 passés en paramètre.
  Remonter
- public array getLocation()
  Retourne la position de la ligne dans un tableau à deux valeurs.

      <?php
      $line = new Line(new Point(1, 2), new Point(3, 4));
      list($p1, $p2) = $line->getLocation();
      // $p1 == new Point(1, 2)
      // $p2 == new Point(3, 4)
      ?>

  Remonter
- public float getSize()
  Retourne la taille de la ligne en pixels.
  Remonter
- public float getSlope()
  - Disponible depuis Artichow 1.0.9
  Renvoie la valeur de la pente de la ligne. Si celle-ci est verticale, la pente vaudra NULL; si elle est horizontale, la pente vaudra 0. La valeur est calculée uniquement lorsqu'elle est demandée.
  Remonter
- public float getOrigin()
  - Disponible depuis Artichow 1.0.9
  Renvoie la valeur de l'ordonnée à l'origine. Si la ligne est verticale, l'ordonnée à l'origine vaudra NULL. La valeur est calculée uniquement lorsqu'elle est demandée.
  Remonter
- public array getEquation()
  - Disponible depuis Artichow 1.0.9
  Renvoie un tableau contenant la pente et l'ordonnée à l'origine de la ligne.
  Remonter
- public float getXFrom(float $y)
  - Disponible depuis Artichow 1.0.9
  Renvoie la valeur de l'abscisse du point d'ordonnée $y situé sur la droite portant la ligne. Si la ligne est horizontale et que $y est différent de l'ordonnée à l'origine, aucun point ne pourra être trouvé et la méthode renverra NULL.
  Remonter
- public float getYFrom(float $x)
  - Disponible depuis Artichow 1.0.9
  Renvoie la valeur de l'ordonnée du point d'abscisse $x situé sur la droite portant la ligne. Si la ligne est verticale et qu'aucun point correspondant à $x ne peut être trouvé, la méthode renverra NULL.
  Remonter
- public bool isPoint()
  Retourne TRUE si la ligne peut être considérée comme un point, FALSE sinon.
  Remonter
- public bool isHorizontal()
  Retourne TRUE si la ligne est horizontale, FALSE sinon.
  Remonter
- public bool isVertical()
  Retourne TRUE si la ligne est verticale, FALSE sinon.
  Remonter
- public bool isTopToBottom(Polygon $polygon)
  - Disponible depuis Artichow 1.0.9
  Renvoie TRUE si la ligne remplit toute la hauteur du rectangle encadrant le polygone $polygon, FALSE sinon.
  Remonter
- public bool isLeftToRight(Polygon $polygon)
  - Disponible depuis Artichow 1.0.9
  Renvoie TRUE si la ligne remplit toute la largeur du rectangle encadrant le polygone $polygon, FALSE sinon.
  Remonter