## abstract Class Component

Un composant est un objet qui peut être ajouté à une Image. Les composants sont indépendants les uns des autres. La classe Component est une classe abstraite, dont doivent dériver tous les objets qui vont pouvoir être ajoutés sur une image.

Sur un composant, l'axe des abscisses rejoint l'axe des ordonnées sur le coin haut-gauche. Le coin haut-gauche du composant a donc pour coordonnées (0, 0) et le coin bas-droite (largeur, hauteur). Par exemple, sur une image de largeur 100 et de hauteur 50, un point à 50 sur l'axe des abscisses et 25 sur l'axe des ordonnées sera au centre de l'image.

Les classes suivantes dérivent de Component :

- ComponentGroup
- MathPlot
- Pie
- Plot

- Retourner voir la liste de toutes les classes

## Méthodes et propriétés

- protected Driver $driver
- public float $width
- public float $height
- public float $x
- public float $y
- public int $w
- public int $h
- public int $top
- public int $left
- protected mixed $background
- public Side $padding
- public Side $space
- protected bool $auto
- public Label $title
- public Legend $legend

- public __construct()
- public auto(bool $auto)
- public setSize(float $width, float $height)
- public setAbsSize(int $w, int $h)
- public setBackgroundColor(Color $color)
- public setBackgroundGradient(Gradient $gradient)
- public setBackgroundImage(Image $image)
- public mixed getBackground(int $type)
- public setPadding(int $left := NULL, int $right := NULL, int $top := NULL, int $bottom := NULL)
- public setSpace(int $left := NULL, int $right := NULL, int $top := NULL, int $bottom := NULL)
- public setCenter(float $x, float $y)
- public setAbsPosition(int $left, int $top)
- public init(Driver $driver)
- public finalize(Driver $driver)
- abstract public array getPosition(Driver $driver)
- abstract public drawEnvelope(Driver $driver)
- abstract public drawComponent(Driver $driver, int $x1, int $y1, int $x2, int $y2, bool $aliasing)
- protected getSpace(int $width, int $height)

## Documentation

- protected Driver $driver
  Un objet Driver pour dessiner sur l'image.
  Remonter
- public float $width
  Largeur du composant entre 0 et 1. Représente une fraction de la largeur de l'image.
  Remonter
- public float $height
  Hauteur du composant entre 0 et 1. Représente une fraction de la hauteur de l'image.
  Remonter
- public float $x
  Position du composant sur l'axe des abscisses entre 0 et 1. Représente une fraction de la largeur de l'image.
  Remonter
- public float $y
  Position du composant sur l'axe des ordonnées entre 0 et 1. Représente une fraction de la hauteur de l'image. Attention, la position 0 correspond au haut de l'image.
  Remonter
- public int $w
  Largeur du composant en pixels.
  Remonter
- public int $h
  Hauteur du composant en pixels.
  Remonter
- public int $top
  Position du composant sur l'axe des ordonnées en pixels.
  Remonter
- public int $left
  Position du composant sur l'axe des abscisses en pixels.
  Remonter
- protected mixed $background
  Fond du composant. Peut être une couleur, un dégradé ou peut être laissé à NULL pour ne spécifier aucune couleur de fond.
  Remonter
- public Side $padding
  Espace interne du composant.
  Remonter
- public Side $space
  Espace interne dans la zone de dessin effective du composant. Les valeurs doivent être données en pourcentage de la taille de la zone de dessin. Le zone de dessin est la zone dans laquelle est dessiné le composant, c'est-à-dire la zone du composant amputée des axes et de l'espace interne.
  Remonter
- protected bool $auto
  Doit-on ajuster automatiquement le composant ?
  Remonter
- public Label $title
  Le titre du composant. Si un titre est spécifié, il sera affiché sur l'image.
  Remonter
- public Legend $legend
  La légende associée au composant.
  Remonter
- public __construct()
  Construit le composant en lui affectant une taille égale à celle de l'image et en le positionnant au centre de cette image. Le composant remplit donc toute la surface de l'image.
  Remonter
- public auto(bool $auto)
  TRUE si le composant doit être automatiquement ajusté, FALSE sinon. La notion d'ajustage automatique est propre à chaque classe qui dérive de celle-ci. Par exemple, sur les histogrammes, si le composant n'est pas automatiquement ajusté, alors les barres ne seront pas centrées sur zéro mais sur leur valeur minimum.
  Remonter
- public setSize(float $width, float $height)
  Change la largeur $width et la hauteur $height du composant. Les nouvelles valeurs doivent être comprises entre 0 et 1 et correspondent à une fraction des largeur et hauteur de l'image à laquelle le composant appartient.

      <?php

      require_once "LinePlot.class.php";

      $graph = new Graph(400, 400);

      // LinePLot dérive de Component
      $plot = new LinePlot(array(1, 2, 3));

      // Le taille du composant sera 1 / 3 de celle de l'image, soit 133x133 pixels
      $plot->setSize(1 / 3, 1 / 3);

      $graph->add($plot);
      $graph->draw();

      ?>

  Remonter
- public setAbsSize(int $w, int $h)
  Donne une taille absolue au composant. La largeur $width et la hauteur $height doivent être données en pixels.
  Remonter
- public setBackgroundColor(Color $color)
  Change la couleur de fond du composant.
  Remonter
- public setBackgroundGradient(Gradient $gradient)
  Change le dégradé de fond du composant.
  Remonter
- public setBackgroundImage(Image $image)
  Change l'image de fond du composant.
  Remonter
- public mixed getBackground(int $type)
  Retourne le fond de l'image. Cela peut être une couleur, un dégradé ou encore une image. Si aucun fond n'a été spécifié, cette méthode retourne NULL.
  Remonter
- public setPadding(int $left := NULL, int $right := NULL, int $top := NULL, int $bottom := NULL)
  Change l'espace interne du composant. Les valeurs doivent être données en pixels.
  Remonter
- public setSpace(int $left := NULL, int $right := NULL, int $top := NULL, int $bottom := NULL)
  Change l'espace interne dans la zone de dessin effective du composant. Les valeurs doivent être données en pourcentage de la taille de la zone de dessin. Le zone de dessin est la zone dans laquelle est dessiné le composant, c'est-à-dire la zone du composant amputée des axes et de l'espace interne.

      <?php

      require_once "LinePlot.class.php";

      $graph = new Graph(400, 400);

      $plot = new LinePlot(array(43, 23, 65, 37));
      $plot->setSpace(10, 10, 20, 20);

      $graph->add($plot);
      $graph->draw();

      ?>

  Remonter
- public setCenter(float $x, float $y)
  Change la position du centre du composant sur l'image. Les nouvelles positions $x et $y représentent une fraction des largeur et hauteur de l'image. Attention, la position 0 pour $y place le centre du composant en haut de l'image. La position 1 le place en bas de l'image.

      <?php

      require_once "LinePlot.class.php";

      $graph = new Graph(400, 400);

      // LinePLot dérive de Component
      $plot = new LinePlot(array(1, 2, 3));

      // Le taille du composant sera 1 / 3 de celle de l'image, soit 133x133 pixels
      $plot->setSize(1 / 3, 1 / 3);
      // Place le composant en haut à gauche
      $plot->setCenter(1 / 6, 1 / 6);

      $graph->add($plot);
      $graph->draw();

      ?>

  Remonter
- public setAbsPosition(int $left, int $top)
  Change la position du composant sur l'image. Contrairement à setCenter(), cette méthode ne place pas le composant par rapport à son centre, mais par rapport à son coin haut-gauche. Les positions $left à gauche et $top pour la hauteur doivent être données en pixels. Attention, la position 0 pour $top place le composant en haut de l'image.

      <?php

      require_once "LinePlot.class.php";

      $graph = new Graph(400, 400);

      // LinePLot dérive de Component
      $plot = new LinePlot(array(1, 2, 3));

      // Le taille du composant sera 1 / 3 de celle de l'image, soit 133x133 pixels
      $plot->setSize(1 / 3, 1 / 3);
      // Place le composant en haut à gauche
      $plot->setAbsPosition(0, 0);

      $graph->add($plot);
      $graph->draw();

      ?>

  Remonter
- public init(Driver $driver)
  Initialise le composant avant son affichage.
  Remonter
- public finalize(Driver $driver)
  Finalize l'affichage du composant.
  Remonter
- abstract public array getPosition(Driver $driver)
  Retourne la position de la zone de dessin effective du composant. Les coordonnées doivent être retournées sous la forme d'un tableau de quatre valeurs. Les première et deuxième valeurs sont les positions en abscisse et en ordonnée du coin haut-gauche de la zone de dessin. Les troisième et quatrième valeurs sont les positions en abscisse et en ordonnée du coin bas-droit de la zone de dessin.
  Remonter
- abstract public drawEnvelope(Driver $driver)
  Dessine l'enveloppe autour de la zone de dessin effective du composant. Cette enveloppe comprend généralement les axes et la grille du composant.
  Remonter
- abstract public drawComponent(Driver $driver, int $x1, int $y1, int $x2, int $y2, bool $aliasing)
  Dessine effectivement le composant, c'est-à-dire le graphique. Le paramètre $aliasing est à TRUE si l'anti-aliasing est activé, FALSE sinon.
  Remonter
- protected getSpace(int $width, int $height)
  Convertit l'espace interne du composant de pourcentages en pixels, en fonction de la taille $width et de la hauteur $height, exprimées en pixels.
  Remonter